Opencv2.4.9源码分析——Cascade Classification(三).docVIP

Opencv2.4.9源码分析——Cascade Classification(三).doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Opencv2.4.9源码分析——Cascade Classification(三)

Opencv2.4.9源码分析——Cascade Classification(三) 下面我们以车牌识别为例,具体讲解OpenCV的级联分类器的用法。在这里我们只对蓝底白字的普通车牌进行识别判断,对于其他车牌不在考虑范围内。而且车牌是正面照,略微倾斜可以,倾斜程度太大也是不在识别范围内的。 我们通过不同渠道共收集了1545幅符合要求的带有车牌图像的照片(很遗憾,我只能得到这么多车牌照片,如果能再多一些就更好了!),通过ACDSee软件手工把车牌图像从照片中剪切出来,并统一保存为jpg格式。为便于后续处理,我们把文件名按照数字顺序命名,如图8所示。然后我们把这些车牌图像保存到pos文件夹内。 图8 蓝底白字车牌图像 需要注意的是,在这里我们没有必要把车牌图像缩放成统一的尺寸(即正样本图像的大小),更没有必要把它们转换成灰度图像,这些工作完全可以由系统完成。我们只需要告诉系统车牌图像文件、车牌的位置,以及车牌的尺寸大小即可。 为了高效的完成上述工作,我们编写了以下代码: [cpp] view plain copy 在CODE上查看代码片派生到我的代码片 #include opencv2/core/core.hpp #include opencv2/highgui/highgui.hpp #include opencv2/imgproc/imgproc.hpp #include iostream #include fstream #include string using namespace cv; using namespace std; int main( int argc, char** argv ) { ofstream postxt(pos.txt,ios::out); //创建pox.txt文件 if ( !postxt.is_open() ) { coutcan not creat pos txt file!; return false; } //N表示车牌图像的总数,c表示最终可以利用的车牌样本图像的数量 int N = 1545, c = 0; int width, height, i; String filename; Mat posimage; for(i=0;iN;i++) //遍历所有车牌图像 { filename = to_string(i) + .jpg; //得到当前车牌图像的文件名 posimage = imread(pos\\ + filename); //打开当前车牌图像 if ( posimage.empty() ) { coutcan not open + filename + file!endl; continue; } width = posimage.size().width; //当前车牌图像的宽 height = posimage.size().height; //当前车牌图像的高 //如果当前车牌图像的宽小于60,或高小于20,则剔除该车牌图像 if(width 60 || height 20) { coutfilename + too small!endl; continue; } //把当前车牌图像的信息写入pos.txt文件内 postxtpos/ + filename + 1 0 0 + to_string(width) + + to_string(height)endl; c++; //累计 } coutc; //终端输出c值 postxt.close(); //关闭pos.txt文件 return 0; } 执行完该程序后,在终端输出得到的c值为1390,这说明有155(1545-1390)个车牌图像由于尺寸过小而被剔除。另外,在当前目录下我们还得到了pos.txt文件,该文件正是系统所需要

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档