资源简介
openCV 车牌分割:对图像的读入,二值化,分割

代码片段和文件信息
#include
#include
#include
#include
using namespace std;
#pragma comment(lib“cv.lib“)
#pragma comment(lib“cxcore.lib“)
#pragma comment(lib“highgui.lib“)
#define T 27
#define T1 2
#define S(imagexy) ((uchar*)(image->imageData + image->widthStep*(y)))[(x)] //S
void main()
{
IplImage *src;
IplImage *pImg8u=NULL; //灰度图
IplImage *pImg8uSmooth=NULL; //高斯滤波后的图
IplImage *pImgCanny=NULL; //二值化的图
IplImage *pImgHist=NULL; //直方图
int hist_size=155;
float range_0[]={0256};
float *ranges[]={range_0};
int ijbin_w;
float max_valuemin_value;
int min_dxmax_dx;
int row_startrow_end;//用来记录车牌开始,结束行
int col_startcol_end;//用来记录车牌开始,结束列
int count=0;//用来记录行或列的白点个数
src=cvLoadImage(“12.bmp“-1);
pImg8uSmooth=cvCreateImage(cvGetSize(src)IPL_DEPTH_8U1);
pImg8u=cvCreateImage(cvGetSize(src)IPL_DEPTH_8U1);
pImgCanny=cvCreateImage(cvGetSize(src)IPL_DEPTH_8U1);
cvCvtColor(srcpImg8uCV_RGB2GRAY); //灰度化
cvSmooth(pImg8upImg8uSmoothCV_GAUSSIAN300);//高斯滤波
cvCanny(pImg8uSmoothpImgCanny1002003); //二值化
/*cvDilate(pImgCannypImgCanny01);
cvErode(pImgCannypImgCanny01);*/
row_start=0;
row_end=0;
col_start=0;
col_end=0;
int row[120];
int col[340];
int k;
k=0;
bool flag=false;
for(j=0;jheight;j++) //找到上行开始
{
count=0;
for(i=0;iwidth-1;i++)
{
if(S(pImgCannyij)!=S(pImgCannyi+1j)) //统计行跳数
count++;
if(count>T)
{
row[k]=j;
k++;
break;
}
}
}
for(i=0;i {
if((row[i]==row[i+1]-1)&&(row[i+1]==row[i+2]-1)){
row_start=row[i];
break;
}
}
cout<<“the start row:“< cvLine(pImg8ucvPoint(0row_start)cvPoint(src->widthrow_start)cvScalar(25500)180);
for(i=k-1;i>row_start;i--) //从下边开始,3行连续时认为是起始行
{
if((row[i]==row[i-1]+1)&&(row[i-1]==row[i-2]+1)){
row_end=row[i];
break;
}
}
cout<<“the end row:“< cvLine(pImg8ucvPoint(0row_end)cvPoint(src->widthrow_end)cvScalar(25500)180);
flag=false;
for(i=10;iwidth;i++) //找到左列开始
{
count=0;
for(j=row_start;j {
if(S(pImgCannyij)==255)
count++;
if(count>T1)
{
col_start=i;
flag=true;
break;
}
}
if(flag) break;
}
cout<<“the start col:“< cvLine(pImg8ucvPoint(col_startrow_start)cvPoint(col_startrow_end)cvScalar(25500)180);
flag=false;
for(i=pImgCanny->width-10;i>col_start;i--) //找到右列开始
{
count=0;
for(j=row_start;j {
if(S(pImgCannyij)==255)
count++;
if(count>T1)
{
col_end=i;
flag=true;
break;
}
}
if(flag) break;
}
cout<<“the end col:“< cvLine(pImg8ucvPoint(col_endrow_start)cvPoint(col_endrow_end)cvScalar(25500)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3648 2009-09-28 14:02 车牌识别\车牌识别\车牌识别.vcproj
文件 1427 2009-10-12 22:21 车牌识别\车牌识别\车牌识别.vcproj.01554C3E9EC245B.Administrator.user
文件 9728 2009-10-12 13:56 车牌识别\车牌识别\cvCarRecog.cpp
文件 6566 2009-10-12 13:56 车牌识别\车牌识别\Debug\BuildLog.htm
文件 207872 2009-10-12 13:56 车牌识别\车牌识别\Debug\vc90.idb
文件 249856 2009-10-12 13:56 车牌识别\车牌识别\Debug\vc90.pdb
文件 62239 2009-10-12 13:56 车牌识别\车牌识别\Debug\cvCarRecog.obj
文件 621 2009-10-12 13:56 车牌识别\车牌识别\Debug\车牌识别.exe.intermediate.manifest
文件 67 2009-10-12 13:56 车牌识别\车牌识别\Debug\mt.dep
文件 121078 2009-04-23 14:15 车牌识别\车牌识别\1.bmp
文件 518454 2009-04-15 14:57 车牌识别\车牌识别\9.bmp
文件 344778 2009-04-23 14:17 车牌识别\车牌识别\7.bmp
文件 17747 2009-10-10 09:51 车牌识别\车牌识别\1.jpg
文件 18489 2009-10-10 09:53 车牌识别\车牌识别\2.jpg
文件 39546 2009-10-10 09:53 车牌识别\车牌识别\3.jpg
文件 34002 2009-10-10 09:53 车牌识别\车牌识别\4.jpg
文件 33063 2009-10-10 09:54 车牌识别\车牌识别\5.jpg
文件 4140 2009-10-10 08:42 车牌识别\车牌识别\6.jpg
文件 12110 2009-10-10 09:55 车牌识别\车牌识别\8.jpg
文件 38292 2009-10-10 09:54 车牌识别\车牌识别\7.jpg
文件 169014 2009-10-10 10:07 车牌识别\车牌识别\11.bmp
文件 100242 2009-10-10 10:14 车牌识别\车牌识别\12.bmp
文件 120482 2009-10-10 10:14 车牌识别\车牌识别\13.bmp
文件 2378752 2009-10-12 22:21 车牌识别\车牌识别.ncb
文件 902 2009-09-28 13:54 车牌识别\车牌识别.sln
..A..H. 11264 2009-10-12 22:21 车牌识别\车牌识别.suo
文件 441548 2009-10-12 13:56 车牌识别\Debug\车牌识别.ilk
文件 560128 2009-10-12 13:56 车牌识别\Debug\车牌识别.pdb
文件 48128 2009-10-12 13:56 车牌识别\Debug\车牌识别.exe
目录 0 2009-09-28 14:02 车牌识别\车牌识别\Debug
............此处省略6个文件信息
相关资源
- 基于OpenCV的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencv实现的sift算法源码,包含了图像
- openCV 上的小波变换
- 基于OPENCV的车牌识别系统设计
- 617张国内车牌60-17bmp图片用于OpenCV正样
- hog特征提取,c版本代码
- 基于Qt5.8+OpenCV3.2的Basler多相机触发开
- 基于Opencv实现的图像纠偏
- ImageWatch2019.vsix
评论
共有 条评论