• 大小: 4KB
    文件类型: .cpp
    金币: 2
    下载: 1 次
    发布日期: 2021-06-18
  • 语言: C/C++
  • 标签: svm  

资源简介

svm训练图像,图片自动导入,批量导入,训练图像............

资源截图

代码片段和文件信息


#include 
#include 
#include 
#include 
#include “opencv2/imgcodecs.hpp“
#include 
#include 

#include 
#include 

using namespace std;
using namespace cv;
using namespace cv::ml;

char filename[100];
int pos_num=42;
int neg_num=51;

//计时器
double cost_time_;
clock_t start_time_;
clock_t end_time_;

int main()
{
    //--------------------- 1. Set up training data ---------------------------------------

      int   train_sample_count = pos_num+neg_num;
      int   train_sample_width=40;
  int   train_sample_height=40;
      int   train_sample_size = train_sample_width*train_sample_height;    //维度
      int labels[train_sample_count] ;
      float trainingData[train_sample_count][train_sample_size];

      for(int i = 0; i < train_sample_count; i++)
     {
       if(i< pos_num) labels[i]=1;
       else labels[i]=2;

          if(i           sprintf(filename“/home/sh/桌面/positive_images/%d.png“i);
          else
          sprintf(filename“/home/sh/桌面/negative_images/%d.png“i-pos_num);
          Mat s =imread(filename 0);
          Mat dst;

          if (!s.data)
             {
                 cout << “No Image!!!“ << endl;
                 return 0;
             }
          else
           cout<<“Finished reading image“<
           resize( s dst Size(train_sample_width train_sample_height) 0 0 INTER_LINEAR );

          for (int row=0;row< train_sample_height;row++)
          {
           uchar* ptr=dst.ptr(row);
               for (int cols=0;cols               {
                trainingData[i][row*train_sample_width+cols]=ptr[cols];
              }
          }
     }

    Mat labelsMat(train_sample_count 1 CV_32SC1 labels);
    Mat trainingDataMat(tr

评论

共有 条评论