资源简介
vs2015+opencv3.1实现车牌的识别,其中用到了图像分割技术,有比较好的学习参考价值,对opencv新手很有帮助
代码片段和文件信息
/**********************************************************************************\
车牌识别总思路
一:载入图像,初步处理,并二值化; //二值化
二:寻找含有车牌有效信息的区域 //定位
1:找上行位置
2;找下行位置
3:找左列位置
4:找右列位置
三:提取ROI并归一化处理 //ROI
四:分割字符并画白线显示分割区域 //分割
五:定位每个字符的区域并独立显示 //显示
\***************************************************************************************/
#include
#include
#include
#include
using namespace std;
#define T 27 //判断一行是不是车牌有效信息的阈值
#define T1 2 //判断一列是不是车牌有效信息的阈值
#define S(imagexy) ((uchar*)(image->imageData + image->widthStep*(y)))[(x)]
//S(imagexy)指该图像(x,y)像素点的像素值[(x)]是数组,类似于a[i]
IplImage *src;
IplImage *pImg8u = NULL; //灰度图
IplImage *pImg8uSmooth = NULL; //高斯滤波后的图
IplImage *pImgCanny = NULL; //二值化的图
IplImage *pImg8uROI = NULL; //感兴趣的图片
IplImage *pImgResize = NULL; //归一化的灰度图
IplImage *pImgCharOne = NULL;
IplImage *pImgCharTwo = NULL;
IplImage *pImgCharThree = NULL;
IplImage *pImgCharFour = NULL;
IplImage *pImgCharFive = NULL;
IplImage *pImgCharSix = NULL;
IplImage *pImgCharSeven = NULL;
int i j;
int row_start row_end; //用来记录车牌开始,结束行
int col_start col_end; //用来记录车牌开始,结束列
int row[120]; //row[]存放含有有效车牌信息的第j行,把所有有效行放一个数组里面,统一管理,有利于判断。
int col[340]; //存放每个字符双边界(列)的位置
int k = 0; //含有有效车牌信息的行数
int nCharWidth = 45; //每个字符的列,也就是宽度
int nSpace = 12; //字符之间的间隙
int nWidth = 409; //(40990)分别为感兴趣图像的宽度与高度
int nHeight = 90;
void find_UpAndDown_row(IplImage *src_son_row);
//定义一个子函数,找到图片中含有车牌有效信息的最上行和最下行
void find_LeftAndRight_col(IplImage *src_son_col);
//定义一个子函数,找到图片中含有车牌有效信息的最左列和最右列
void find_ROI(IplImage *before_ROI IplImage *after_ROI);
//定义一个子函数find_ROI,找到图片中只含有目标区域的部分
void cut_and_drawLine(IplImage *befour_cut_image);
//定义一个子函数cut_and_drawLine,对含有车牌有效信息的图片分割出字符,并画出分割线
void show_every_char(IplImage *showChar);
//定义一个子函数show_every_char,显示出所有分割出来的字符
void main()
{
src = cvLoadImage(“D:/车牌.jpg“ -1);
pImg8uSmooth = cvCreateImage(cvGetSize(src) IPL_DEPTH_8U 1);
pImg8u = cvCreateImage(cvGetSize(src) IPL_DEPTH_8U 1);
pImgCanny = cvCreateImage(cvGetSize(src) IPL_DEPTH_8U 1);
cvCvtColor(src pImg8u CV_RGB2GRAY); //灰度化
cvSmooth(pImg8u pImg8uSmooth CV_GAUSSIAN 3 0 0); //高斯滤波
cvCanny(pImg8uSmooth pImgCanny 100 200 3); //二值化
cvDilate(pImgCanny pImgCanny 0 1);
cvErode(pImgCanny pImgCanny 0 1);
cvNamedWindow(“cvcanny“ 1);
cvShowImage(“cvcanny“ pImgCanny);
row_start = 0;
row_end = 0;
col_start = 0;
col_end = 0;
cout << “图片的高度值(即像素的行数)为:“ << pImgCanny->height << endl;
cout << “图片的宽度值(即像素的列数)为:“ << pImgCan
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-09-12 12:30 车牌识别\
目录 0 2017-06-10 20:18 车牌识别\.vs\
目录 0 2017-06-10 20:18 车牌识别\.vs\opencv-001\
目录 0 2017-06-10 20:18 车牌识别\.vs\opencv-001\v14\
文件 32256 2017-07-11 10:09 车牌识别\.vs\opencv-001\v14\.suo
目录 0 2017-09-12 12:30 车牌识别\opencv-001\
文件 1312 2016-08-10 14:39 车牌识别\opencv-001.sln
文件 50020352 2017-07-11 10:09 车牌识别\opencv-001.VC.db
文件 13495 2017-06-10 21:24 车牌识别\opencv-001\main.cpp
文件 7451 2017-04-17 21:59 车牌识别\opencv-001\opencv-001.vcxproj
文件 1067 2017-04-17 21:59 车牌识别\opencv-001\opencv-001.vcxproj.filters
文件 95061 2016-06-15 22:54 车牌识别\opencv-001\test.jpg
目录 0 2017-06-10 20:18 车牌识别\opencv-001\x64\
目录 0 2017-09-12 12:30 车牌识别\opencv-001\x64\Debug\
文件 104503 2017-06-10 21:18 车牌识别\opencv-001\x64\Debug\main.obj
文件 1273 2017-04-22 08:57 车牌识别\opencv-001\x64\Debug\opencv-001.Build.CppClean.log
文件 867 2017-06-10 21:18 车牌识别\opencv-001\x64\Debug\opencv-001.log
目录 0 2017-09-12 12:30 车牌识别\opencv-001\x64\Debug\opencv-001.tlog\
文件 1390 2017-06-10 21:18 车牌识别\opencv-001\x64\Debug\opencv-001.tlog\CL.command.1.tlog
文件 30878 2017-06-10 21:18 车牌识别\opencv-001\x64\Debug\opencv-001.tlog\CL.read.1.tlog
文件 524 2017-06-10 21:18 车牌识别\opencv-001\x64\Debug\opencv-001.tlog\CL.write.1.tlog
文件 6966 2017-06-10 21:18 车牌识别\opencv-001\x64\Debug\opencv-001.tlog\li
文件 8596 2017-06-10 21:18 车牌识别\opencv-001\x64\Debug\opencv-001.tlog\li
文件 510 2017-06-10 21:18 车牌识别\opencv-001\x64\Debug\opencv-001.tlog\li
文件 208 2017-06-10 21:18 车牌识别\opencv-001\x64\Debug\opencv-001.tlog\opencv-001.lastbuildstate
文件 510976 2017-06-10 21:18 车牌识别\opencv-001\x64\Debug\vc140.idb
文件 757760 2017-06-10 21:18 车牌识别\opencv-001\x64\Debug\vc140.pdb
文件 669 2017-04-17 21:58 车牌识别\stdafx.h
目录 0 2017-06-10 20:18 车牌识别\x64\
目录 0 2017-09-12 12:30 车牌识别\x64\Debug\
文件 72704 2017-06-10 21:18 车牌识别\x64\Debug\opencv-001.exe
............此处省略2个文件信息
- 上一篇:msp430使用OLED实现数字钟.zip
- 下一篇:Feret人脸分类数据库
相关资源
- FFmpeg+qt实现的播放器工程
- 颜色识别中各颜色阈值快速查找小程
- 直线的四种裁剪算法
- 程序员的自我修养 装载,链接,库
- 一个基于easypr的车牌识别demo
- 车牌识别系统opencv版
- QT Creator快速入门(第3版 高清PDF)
- 车牌识别系统的功能评测子库2
- 车牌识别系统的功能评测子库1
- VS2015编译的OpenCV4.1.2
- 基于余数系统的sm2白盒数字签名
- Qt Creator快速入门(第三版)
- opencv3.1.0安装包
- 海康CH-HCNetSDKV5.3.6.30sdk_Win32_Win64.zip
- 编译opencv3.1需要的opencv_ffmpeg_64.dll-o
- opencv3.1.0+contrib
- 《QT5开发及》教程配套
- 西电-面向对象课件褚华老师所著
- 基于DirectX的简单GUI界面制作
- Game development and simulation with Unreal te
- Visual Studio 2017 符号文件
- bmp格式图片缩小
- 猫版马里奥VC工程源代码Visual Studio
- 基于MongoDB电子考试系统项目实践
- 计算机算法设计与分析第三版.pdf
- gsl-2.6.7z
- cplusplus.com 离线版 2016年5月8日
- OpenCV By Example (OpenCV3)
- 数据结构实用教程(第2版).pdf 主编
- Exe守护程序
评论
共有 条评论