资源简介
使用svm和BP神经网络进行车牌的OCR识别
代码片段和文件信息
/*****************************************************************************
* Number Plate Recognition using SVM and Neural Networks
******************************************************************************
* by David Mill醤 Escriv? 5th Dec 2012
* http://blog.damiles.com
******************************************************************************
* Ch5 of the book “Mastering OpenCV with Practical Computer Vision Projects“
* Copyright Packt Publishing 2012.
* http://www.packtpub.com/cool-projects-with-opencv/book
*****************************************************************************/
#include “DetectRegions.h“
void DetectRegions::setFilename(string s)
{
filename=s;
}
DetectRegions::DetectRegions()
{
showSteps=false;
saveRegions=false;
}
bool DetectRegions::verifySizes(RotatedRect mr)
{
float error = (float)0.4;
//Spain car plate size: 52x11 aspect 47272
float aspect = (float)4.7272;
//Set a min and max area. All other patchs are discarded
int min = (int)(15*aspect * 15); // minimum area
int max = (int)(125 * aspect * 125); // maximum area
//Get only patchs that match to a respect ratio.
float rmin= aspect-aspect*error;
float rmax= aspect+aspect*error;
int area = (int)(mr.size.height * mr.size.width);
float r= (float)mr.size.width / (float)mr.size.height;
if(r<1)
r= (float)mr.size.height / (float)mr.size.width;
if(( area < min || area > max ) || ( r < rmin || r > rmax ))
{
return false;
}
else
{
return true;
}
}
Mat DetectRegions::histeq(Mat in)
{
Mat out(in.size() in.type());
if(in.channels()==3){
Mat hsv;
vector hsvSplit;
cvtColor(in hsv CV_BGR2HSV);
split(hsv hsvSplit);
equalizeHist(hsvSplit[2] hsvSplit[2]);
merge(hsvSplit hsv);
cvtColor(hsv out CV_HSV2BGR);
}else if(in.channels()==1){
equalizeHist(in out);
}
return out;
}
vector DetectRegions::segment(Mat input)
{
vector output;
//convert image to gray
Mat img_gray;
cvtColor(input img_gray CV_BGR2GRAY);
blur(img_gray img_gray Size(55));
//Finde vertical lines. Car plates have high density of vertical lines
Mat img_sobel;
Sobel(img_gray img_sobel CV_8U 1 0 3 1 0 BORDER_DEFAULT);
if(showSteps)
imshow(“Sobel“ img_sobel);
//threshold image
Mat img_threshold;
threshold(img_sobel img_threshold 0 255 CV_THRESH_OTSU+CV_THRESH_BINARY);
if(showSteps)
imshow(“Threshold“ img_threshold);
//Morphplogic operation close
Mat element = getStructuringElement(MORPH_RECT Size(17 3) );
morphologyEx(img_threshold img_threshold CV_MOP_CLOSE element);
if(showSteps)
imshow(“Close“ img_threshold);
//Find contours of possibles plates
vector< vector< Point> > contours;
findContours(img_threshold
contours // a vector of contours
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 293009 2012-12-29 04:28 车牌检测\opencv_3.0模板\3028BYS.JPG
文件 393261 2012-12-29 04:28 车牌检测\opencv_3.0模板\3154FFY.JPG
文件 319706 2012-12-29 04:28 车牌检测\opencv_3.0模板\3266CNT.JPG
文件 281617 2012-12-29 04:28 车牌检测\opencv_3.0模板\3732FWW.JPG
文件 851 2012-12-29 04:28 车牌检测\opencv_3.0模板\CMakeLists.txt
文件 2184 2016-11-16 14:07 车牌检测\opencv_3.0模板\Debug\opencv_3.0模板.log
文件 1254 2016-11-16 14:07 车牌检测\opencv_3.0模板\Debug\opencv_3.0模板.tlog\cl.command.1.tlog
文件 31766 2016-11-16 14:07 车牌检测\opencv_3.0模板\Debug\opencv_3.0模板.tlog\CL.read.1.tlog
文件 886 2016-11-16 14:07 车牌检测\opencv_3.0模板\Debug\opencv_3.0模板.tlog\CL.write.1.tlog
文件 2 2016-11-16 14:07 车牌检测\opencv_3.0模板\Debug\opencv_3.0模板.tlog\li
文件 2 2016-11-16 14:07 车牌检测\opencv_3.0模板\Debug\opencv_3.0模板.tlog\li
文件 2 2016-11-16 14:07 车牌检测\opencv_3.0模板\Debug\opencv_3.0模板.tlog\li
文件 169 2016-11-16 14:07 车牌检测\opencv_3.0模板\Debug\opencv_3.0模板.tlog\opencv_3.0模板.lastbuildstate
文件 0 2016-11-16 14:07 车牌检测\opencv_3.0模板\Debug\opencv_3.0模板.tlog\unsuccessfulbuild
文件 691200 2016-11-16 14:07 车牌检测\opencv_3.0模板\Debug\vc120.idb
文件 716800 2016-11-16 14:07 车牌检测\opencv_3.0模板\Debug\vc120.pdb
文件 201819 2016-11-16 14:07 车牌检测\opencv_3.0模板\Debug\模板.obj
文件 8143 2017-03-12 21:35 车牌检测\opencv_3.0模板\DetectRegions.cpp
文件 1170 2017-03-11 21:52 车牌检测\opencv_3.0模板\DetectRegions.h
文件 365670 2012-12-29 04:28 车牌检测\opencv_3.0模板\DSC_0562.jpg
文件 386667 2012-12-29 04:28 车牌检测\opencv_3.0模板\DSC_0566.jpg
文件 2670 2017-03-17 15:15 车牌检测\opencv_3.0模板\evalOCR.cpp
文件 1043456 2016-12-12 21:20 车牌检测\opencv_3.0模板\libfacedetect-x64.dll
文件 4191 2017-12-07 15:48 车牌检测\opencv_3.0模板\main.cpp
文件 10539 2017-03-17 13:50 车牌检测\opencv_3.0模板\OCR.cpp
文件 1973 2017-03-16 19:00 车牌检测\opencv_3.0模板\OCR.h
文件 3392688 2012-12-29 04:28 车牌检测\opencv_3.0模板\OCR.xm
文件 9644 2017-12-07 15:51 车牌检测\opencv_3.0模板\opencv_3.0模板.vcxproj
文件 2287 2017-03-12 21:22 车牌检测\opencv_3.0模板\opencv_3.0模板.vcxproj.filters
文件 165 2016-12-13 19:21 车牌检测\opencv_3.0模板\opencv_3.0模板.vcxproj.user
............此处省略69个文件信息
- 上一篇:自主泊车算法
- 下一篇:红外弱小目标测试集合
相关资源
- AdaBoost人脸检测程序
- 挥拳动作OpenCV识别
- SIFT算法实现及代码详解239444
- 基于opencv与opengl实现增强现实
- 利用opencv实现疲劳检测
- QT+Opencv2+VS2012 使用多线程显示网络摄
- opencv3.4.1 编译库,可在Qt直接使用
- opencv3.4+contrib vs2017 debug x64 编译好的库
- VS+OPENCV+ZBAR一维,二维码识别[包含中
- 基于OpenCV的车牌识别
- OpenCV_world330.lib
- win32平台的opencv3.4.2
- 基于HAAR特征SVM分类器训练模型,包含
- OpenCV2.1安装包
- 深入理解OpenCV:实用计算机视觉项目
- 学习OpenCV(中文版)pdf文档+源码
- 学习opencv 中文版及源码
- opencv-3.3.1 for vs2013
- 基于HOG特征与SVM的车辆检测方法研究
- OpenCV3.2编译文件
- QtOpencvImageGUI
- OpenCV实现多目三维重建
- LBP/HOG/SIFT/SURF特征SVM的trainAuto范例
- opencv2.4.13lib_x86_x64_vs2013
- 形状匹配find_scaled_shape_model
- OpenCV 3.3_x86_minGW_world
- Opencv-stitcher基本原理参考文献
- 基于BP神经网络的数字识别系统源代码
- opencv调用海康威视摄像头源代码内大
- 配合单文档调用opencv的代码
评论
共有 条评论