SVM+HOG识别数字

本文记录了作者通过SVM和HOG方法实现数字识别的过程,期间遇到并解决了多个问题,如多main函数导致的错误、适应不同尺寸图片的参数调整,以及批量处理数据的方法。详细步骤参考了特定博客链接,并分享了处理图片数据的实用技巧。
摘要由CSDN通过智能技术生成

想实现一个SVM分类器,在网上找了好久,都不能编译,心态要崩了,下楼去跑了一会儿步,才恢复过来。最后找到了一个博客,实现成功了。

根据网上的教程,我复现了一遍,详见该博客https://blog.csdn.net/wf15725243865/article/details/80894132

这期间,我遇到了几个很蠢的问题。

1.一个项目下我编写了多个main函数,当然出错啦

2.别人博客上选取的图片是28*28的,我的图片大小是20*20的,对应的参数需要修改。

HOGDescriptor *hog=new HOGDescriptor(cvSize(20,20),cvSize(10,10),cvSize(5,5),cvSize(5,5),9);   

里面的参数依此为WinSize,BlockSize,StrideSize,CellSize,

data_mat = cvCreateMat( nImgNum, 324, CV_32FC1 );  

这一句中,第二个参数,即矩阵的列是由下面的descriptors的大小决定的,可以由descriptors.size()得到,且对于不同大小的输入训练图片,这个值是不同的,此处324=nbins*(blocksize.width/cellsize.width)*(blocksize.height/cellsize.height)*((winsize.width-blocksize.width)/blocksize.width+1)*((winsize.height-blocksize.height)/blocksize.height+1)=9*2*2*3*3

3.批量处理数据时我学到了新方法,虽然这种方法很多哈,但我这个菜鸡以前没做过不会呀。具体是在图片文件夹下运行cmd,进入命令提示符,cd f:,进入相应文件夹,输入dir /b > test.txt 可生成图片名的文件,将最后一行删掉。用notepad++软件给图片名前面加上路径,编辑>列块编辑>添加路径,即可在每一行前面加上路径,每一行后面添加可以使用如下方法:使用快捷键CTRL+F替换功能,点击正则表达式,将$(每行的结尾)替换成"需要添加的内容",将^(每行开头)替换为“想添加的内容”。间隔添加空行,可将\n替换为\n\n;我还遇到一个很蠢的问题,需要在偶数空白行添加标签,我只能先将\n替换为\n0,将0F替换为F

希望自己继续坚持吧!

具体程序如下:


//#include "stdafx.h"

#include 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值