#include <string>
#include <iostream>
#include <vector>
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include "opencv2/imgcodecs.hpp"
#include <opencv2/highgui.hpp>
#include <opencv2/ml.hpp>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
using namespace cv::ml;
int SVM_TEST()
{
//训练2组数据,每组4帧
int labels[8] = { -1, -1, -1, -1, 1, 1, 1, 1 };
Mat labelsMat(8, 1, CV_32SC1, labels);
//样本宽高
int smpW = 540;
int smpH = 360;
//将样本的值逐像素赋给训练图像
Mat trainMat(8, smpW * smpH, CV_32FC1);
for (int i = 0; i < 2; i++)
{
for (int j = 1; j < 5; j++)
{
string path = format("E:\\video\\tmp\\Img\\%d%d.bmp", i, j);
Mat img = imread(path, 0);
//Canny(img, img, 50, 100);
int index1 = i * 4 + j - 1;
float * trainData = trainMat.ptr<float>(index1);
for (int
opencv 学习之 SVM / ANN 图片分类(OPENCV3.2)
最新推荐文章于 2024-08-15 19:32:28 发布
在VS2017环境下使用OpenCV3.2进行图像分类,相比于OpenCV2,操作方式有所变化,特别是在特征文件加载环节,需直接加载而非先创建再加载,否则可能导致内存错误。SVM与KNN模型中标签类型为CV_32SC1,而ANN的标签类型为CV_32FC1,这是需要注意的区别。
摘要由CSDN通过智能技术生成