资源简介
本人最近练手做的小项目,在CSDN上也参考了很多代码,积分花了不少可是大多都没用上!要么是版本不对劲,要么是完全读不懂,所以自己上传了!代码包括车牌定位,车牌倾斜校正,字符分割。字符的识别部分未做完。
代码片段和文件信息
#include
#include
#include
#include
using namespace std;
using namespace cv;
# define PI 3.1415926
#include “hough_find_line.cpp“
int verifySizes(Rect mMat input);
int main()
{
Mat img_gray;
Mat input=imread(“41.jpg“);
cvtColor(input img_gray CV_BGR2GRAY);
blur(img_gray img_gray Size(55));
//**************************************************第一部分——车牌定位***************************//
// 突出垂直边缘
Mat img_sobel;
Sobel(img_gray img_sobel CV_8U 1 0 3 1 0 BORDER_DEFAULT);
//imshow(“Sobel“ img_sobel);
// 阈值化处理形态学处理
Mat img_threshold;
threshold(img_sobel img_threshold 0 255 CV_THRESH_OTSU+CV_THRESH_BINARY);
////imshow(“Threshold“ img_threshold);
Mat gauss_diffthreshAgain_diff;
GaussianBlur(img_thresholdgauss_diffSize(99)3.0);//对二值图像高斯滤波
//imshow(“gauss_diff“gauss_diff);
threshold(gauss_diffthreshAgain_diff29255CV_THRESH_BINARY);//再次阈值化取二值
//imshow(“threshAgain_diff“threshAgain_diff);
Mat mor_close;
Mat mor_open;
Mat element5(88CV_8UScalar(1));
Mat element = getStructuringElement(MORPH_RECT Size(244) );
morphologyEx(threshAgain_diff mor_close CV_MOP_CLOSE element);//闭运算
//imshow(“closed“mor_close);
morphologyEx(mor_closemor_openMORPH_OPENelement5);//开运算
//imshow(“open“mor_open);
// 利用findContours函数寻找车牌可能的轮廓
vector< vector< Point> > contours;
findContours(mor_open
contours // 轮廓的数组
CV_RETR_EXTERNAL // 获取外轮廓
CV_CHAIN_APPROX_NONE); // 获取每个轮廓的每个像素
// 排除非车牌的可能轮廓
vector >::iterator itc= contours.begin();
vector rects;
while (itc!=contours.end())
{
// minAreaRect函数计算最小包围旋转矩形
Rect mr= boundingRect(Mat(*itc));
if( !verifySizes(mrimg_gray)){
itc= contours.erase(itc);
}else{
++itc;
rects.push_back(mr);
}
}
// 画出轮廓
cv::Mat result;
input.copyTo(result);
cv::drawContours(resultcontours
-1 // draw all contours
cv::Scalar(00255) // in blue
1); // with a thickness of 1
//imshow(“resu“result);
//提取出车牌
Mat imgroi;
vector::iterator it=rects.begin();
imgroi = input(*it);
//imshow(“Plate“imgroi);
//**************************************************第二部分——字符分割***************************//
Mat imgroi_gray;
cvtColor(imgroiimgroi_grayCV_BGR2GRAY);
//imshow(“imgroi_gray“imgroi_gray);
Mat imgroi_gray_thre;
threshold(imgroi_grayimgroi_gray_thre 0 255 CV_THRESH_OTSU+CV_THRESH_BINARY);
imshow(“imgroi_gray_thre“imgroi_gray_thre);
erode(imgroi_gray_threimgroi_gray_threcv::Mat());
//****************************倾斜校正
cv::Mat contours2;
Canny(imgroi_graycontours2125350);
LineFinder finder;
finder.setMinVote(70);
finder.setLineLengthAndGap (10025);
vector lines=finder.findLines (contours2);
int n=lines.size();
double * d=new double[n];
int k=0;
Vec4i Maxline=finder.findMaxline(linesndk);
Point pt1(M
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 184566 2015-05-14 10:35 anpr2\anpr2\11.jpg
文件 248517 2015-05-12 21:14 anpr2\anpr2\41.jpg
文件 8827 2015-05-18 15:25 anpr2\anpr2\anpr2.cpp
文件 3269 2015-05-14 16:47 anpr2\anpr2\anpr2.vcxproj
文件 1042 2015-05-14 16:47 anpr2\anpr2\anpr2.vcxproj.filters
文件 143 2015-05-13 22:07 anpr2\anpr2\anpr2.vcxproj.user
文件 500 2015-05-18 13:13 anpr2\anpr2\Debug\anpr2.Build.CppClean.log
文件 381 2015-05-18 13:48 anpr2\anpr2\Debug\anpr2.exe.intermediate.manifest
文件 70 2015-05-18 13:48 anpr2\anpr2\Debug\anpr2.lastbuildstate
文件 3716 2015-05-18 13:48 anpr2\anpr2\Debug\anpr2.log
文件 555384 2015-05-18 13:48 anpr2\anpr2\Debug\anpr2.obj
文件 707 2015-05-18 13:38 anpr2\anpr2\Debug\anpr2.vcxprojResolveAssemblyReference.cache
文件 0 2015-05-18 13:13 anpr2\anpr2\Debug\anpr2.write.1.tlog
文件 1230 2015-05-18 13:48 anpr2\anpr2\Debug\cl.command.1.tlog
文件 26260 2015-05-18 13:48 anpr2\anpr2\Debug\CL.read.1.tlog
文件 1074 2015-05-18 13:48 anpr2\anpr2\Debug\CL.write.1.tlog
文件 49906 2015-05-18 13:13 anpr2\anpr2\Debug\hough_find_line.obj
文件 3160 2015-05-18 13:48 anpr2\anpr2\Debug\li
文件 6916 2015-05-18 13:48 anpr2\anpr2\Debug\li
文件 822 2015-05-18 13:48 anpr2\anpr2\Debug\li
文件 462 2015-05-18 13:48 anpr2\anpr2\Debug\mt.command.1.tlog
文件 318 2015-05-18 13:48 anpr2\anpr2\Debug\mt.read.1.tlog
文件 318 2015-05-18 13:48 anpr2\anpr2\Debug\mt.write.1.tlog
文件 461824 2015-05-18 13:48 anpr2\anpr2\Debug\vc100.idb
文件 569344 2015-05-18 13:48 anpr2\anpr2\Debug\vc100.pdb
文件 1984 2015-05-15 11:51 anpr2\anpr2\hough_find_line.cpp
....... 0 2009-08-31 02:32 anpr2\anpr2\line_finder.h
文件 11620352 2015-05-18 15:25 anpr2\anpr2.sdf
文件 882 2015-05-13 22:07 anpr2\anpr2.sln
..A..H. 14336 2015-05-18 15:25 anpr2\anpr2.suo
............此处省略14个文件信息
相关资源
- 车牌识别完整版 基于OPENCV3 完全实现
- 车牌识别字符识别图片集
- 基于OpenCV的视频车牌识别
- 车牌识别毕业设计,不错的参考
- 基于STM32车牌识别程序_带管理计费.
- 基于STM32程序的车牌识别
- 基于SVM与ANN的车牌识别
- 基于DSP和FPGA的车牌识别系统设计和实
- 基于车牌识别技术的停车场管理系统
- 车牌识别系统44196
- 车牌识别系统vc源码基于opencv
- 基于深度学习的车牌识别
- 车牌识别源代码
- 用OpenCV作的一个车牌识别程序,可以
- 车牌识别含有十几张可识别车牌图片
- LABVIEW设计程序_车牌识别系统
- 数字和英文字母识别
- 基于车牌识别的课程设计全
-
opencv车牌识别xm
l文件 - opencv车牌识别系统可直接运行
- QT OPENCV车牌识别 识别结果输出到Tex
- yolo3-tiny plate.rar
- 安卓端车牌识别
- 车牌识别.zip
- 车牌识别字符数据集.zip
- 车牌识别数据集全 省+数字+字母
- 车牌识别Hyperlpr
- 车牌识别opencv
- 车牌识别系统的性能评测图像库
- 车牌识别程序一整套上次那个资源传
评论
共有 条评论