车牌识别技术详解六--基于Adaboost+haar训练的车牌检测

一、准备样本:

正样本:样本处理和选择非常有技巧,我的标准是框住整个车牌留出边框,这样既保留了车牌原有的字符特征,字符组特征还有车牌的边框特征。其中双行车牌我只取底下面的一行。并且检测样本最好不要预处理,输入源给出什么图形就用什么图形。具体的抠图方式可以参考我其他博客车牌识别技术详解三--字符检测的正负样本得取(利用鼠标画框抠图)



负样本:负样本选择同样非常有技巧性。尽量采集车牌使用环境下的背景图片,并且需要包含一部分车牌字符但是非正样本的取在车牌周围的负样本。




二、HAAR特征:

可视化haar特征

haarFeatureVision

改动:
(1)global.h里面
extern IplImage * showHaarFeatureImg;

(2)global.cpp里面
IplImage * showHaarFeatureImg;

(3)SimpleClassifier.cpp里面改动
#define haarFeatureVison 1
void SimpleClassifier::ReadFromFile(ifstream& f)
{
	f>>thresh>>parity>>type;
	f>>x1>>x2>>x3>>x4>>y1>>y2>>y3>>y4;
	f.ignore(256,'\n');
	assert(parity == 0 || parity == 1);
//	assert(type>=0 && type<=4);

	if(haarFeatureVison){//haarFeatureVison
		showHaarFeatureImg = cvLoadImage("showHaarFeature.bmp",1);
		if(type == 0){
			std::cout<<x1<<" "<<x2<<" "<<x3<<" "<<x4<<" "<<y1<<" "<<y2<<" "<<y3<<" "<<y4<<std::endl;
			CvPoint A = cvPoint(y1,x1);
			CvPoint B = cvPoint(y1,x2);
			CvPoint C = cvPoint(y1,x3);
			CvPoint D = cvPoint(y3,x1);
			CvPoint E = cvPoint(y3,x2);
			CvPoint F = cvPoint(y3,x3);

			cvRectangle(showHaarFeatureImg, A,cvPoint(E.x,E.y-1),CV_RGB(0,0,0), CV_FILLED);	
			cvRectangle(showHaarFeatureImg, B,cvPoint(F.x,F.y-1),CV_RGB(200,200,200), CV_FILLED);	
	
			cvNamedWindow("haarFeatureVison",0);
			cvShowImage("haarFeatureVison",showHaarFeatureImg);
		//	cvWaitKey(0);
		}

		if(type == 5){
			std::cout<<x1<<" "<<x2<<" "<<x3<<" "<<x4<<" "<<y1<<" "<<y2<<" "<<y3<<" "<<y4<<std::endl;
			CvPoint A = cvPoint(y1,x1);
			CvPoint B = cvPoint(y4,x1);
			CvPoint C = cvPoint(y1,x2);
			CvPoint D = cvPoint(y2,x2);
			CvPoint E = cvPoint(y3,x2);
			CvPoint F = cvPoint(y4,x2);
			CvPoint G = cvPoint(y1,x3);
			CvPoint H = cvPoint(y2,x3);
			CvPoint I = cvPoint(y3,x3);
			CvPoint J = cvPoint(y4,x3);
			CvPoint K = cvPoint(y1,x4);
			CvPoint L = cvPoint(y4,x4);
			

			cvRectangle(showHaarFeatureImg, D,cvPoint(I.x-1, I.y-1),CV_RG
  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值