问题描述
- 关于车牌识别的新人问题 5C
- 本人新手,最近学习车牌识别,我把字符分割后想生成新的文件方便下一步实验,但是生成的roi是在循环里进行的,保存的文件名会被覆盖,不知道如何处理。望指教。
下面是我字符分割的代码
IplImage*img3=cvCreateImage(cvGetSize(img0) img0->depth0);
IplImage*img4=cvCreateImage(cvGetSize(img0) IPL_DEPTH_8U0);cvThreshold( img2 img3 210 255 CV_THRESH_BINARY );//二值化
IplConvKernel * myModel2;
myModel2=cvCreateStructuringElementEx( 3512CV_SHAPE_RECT ); //自定义矩形模板
cvDilate(img3img4myModel21);//膨胀
CvMemStorage* storage1 = cvCreateMemStorage (0);
CvSeq* contour1 = 0;FillInternalContours(img4190); ////////////轮廓填充
cvFindContours (img4 storage1 &contour1 sizeof(CvContour) CV_RETR_LIST CV_CHAIN_APPROX_SIMPLE);double maxarea1=50;
int idx = 0;char szName[56] = {0};
for (; contour1 != 0; contour1 = contour1->h_next)
{
double tmparea1=fabs(cvContourArea(contour1));
if(tmparea1 < maxarea1)
{
cvSeqRemove(contour10); //删除面积小于设定值的轮廓
continue;
}
CvRect rect1 = cvBoundingRect( contour1 0 ); ////////////////////////切割// cvRectangle( img2 cvPoint( rect1.x rect1.y )cvPoint( rect1.x + rect1.width rect1.y + rect1.height ) cvScalar(02550) 0 );IplImage* imgNo = cvCreateImage(cvSize(rect1.widthrect1.height) IPL_DEPTH_8U 1); cvSetImageROI(img3 rect1); cvCopyImage(img3 imgNo); cvResetImageROI(img3); sprintf(szNamewnd_%d"" idx++); cvNamedWindow(szNameCV_WINDOW_AUTOSIZE); cvShowImage(szName imgNo); cvReleaseImage(&imgNo);
}
解决方案
你的文件名的生成规则是什么呢?
分割后,会有多个文件,每个文件应该有一个独立的名称才对,这样对不会出现覆盖的现象。
解决方案二:
http://www.codesoso.net/Record/102402_5106_21.html
这里有很大车牌识别,源代码,可以多下载几个看看。