OpenCv3.0+SVM的使用心得(二)
来源:互联网 发布:aj1高仿淘宝店 编辑:程序博客网 时间:2024/05/29 16:48
主要有4点总结:
1.
读取txt的内容(文件路径),按行输出。下面语句中,pictures.txt中是文件夹中的文件(图片)列表,samplePath是文件夹路径(string格式)。string和char类型可以使用‘+’连接。
char positiveImgName[256];fream f;f.open("D:\\pictures.txt",ios::in);while (!f.eof()){ f.getline(positiveImgName,256,'\n'); string picturePath=samplePath+positiveImgName;}
2.
对于某些样本照片,可能大小不如我们所愿,因此要对其进行截取。
我们可以从Mat类型中提取矩形区域:
cv::Mat bigImage=cv::Mat::zeros(cv::Size(660,350));cv::Mat smallImage=cv::Mat(bigImage,cv::Rect(0,0,110,70));
但是,需要注意这么做并没有复制图像数据,仅仅为同样的image data创建了另一个wrapper。如果需要复制数据,需要用:
cv::Mat smallImage = cv::Mat(bigImage, cv::Rect(0,0,110,70)).clone();
如果需要图像中多个不同大小的部分,需要将图像用网格划分,比如:
cv::Size smallSize(110,70);std::vector<Mat> smallImages;for (int y = 0; y < bigImage.rows; y += smallSize.height){ for (int x=0; x < bigImage.cols; x += smallSize.width) { cv::Rect rect =cv::Rect(x,y,smallSize.width, smallSize.height); smallImages.push_back(cv::Mat(bigImage, rect)); }}
在图像处理中,样本的处理需要使用第二中复制数据的方式。
3.
使用dir\b>picture.lst命令行获取一个文件夹内所有文件的文件名,会在文档的最后多产生一个空行。
4.
训练出来的SVM classifier的support vector是以Mat类型进行存储,其rows是根据svm的参数而变化的,如果是二分类分类器,应该是1*n的大小。如果和规划的不一致,去查看训练数据是否有误(是否有些label未赋值等)。
0 0
- OpenCv3.0+SVM的使用心得(二)
- OpenCv3.0+SVM的使用心得(二)
- OpenCv3.0+SVM的使用心得(一)
- OpenCv3.0+SVM的使用心得(一)
- opencv3.1 svm(支持向量机)使用心得
- opencv3.3 svm的使用
- opencv3.0-支持向量机(svm)使用介绍
- opencv3.1中svm的使用范例
- OpenCV3中使用SVM
- 模式识别之(一)SVM的opencv3.0实现
- OpenCV3.0或OpenCV3.1的SVM操作
- OpenCV3.0或OpenCV3.1的SVM操作
- OpenCV3.0或OpenCV3.1的SVM操作
- OpenCV3.0或OpenCV3.1的SVM操作
- OpenCV3.0 中SVM的使用方法
- opencv3.0.0的安装(Mac)与svm新变化
- SVM多分类器的实现(Opencv3,C++)
- opencv3 SVM
- 纯css制作的漂亮好看的进度条
- 正确解决 Invalid module format
- 手机产品设计禁忌
- C语言笔记之头文件与链接(一)
- Linux内存点滴:用户进程内存空间
- OpenCv3.0+SVM的使用心得(二)
- 深入浅出UML类图(二)
- LeetCode # 3Sum #
- postgresql时间戳转字符串
- nyoj 17 单调递增最长子序列
- 走在互联网的大陆上:一、几款流行的JSON库效率分析
- VC多文档MFC程序的背景色不能时时刷新
- 补丁VS错误
- 你所不知道的html5与html中的那些事(三)