资源简介
基于OpenCV2.4.7的车牌识别系统。
Author:LinJianmin
代码片段和文件信息
// LPRmain.cpp : 快速车牌识别系统的主文件
// 本文件是系统的车牌定位和字符分割部分的代码,本系统引用的是OpenCV2.4.7,IDE是VS2012
// Author:LinJianmin
// Email: jianmin1990@outlook.com
// University:Huaqiao University
// Date: 2014-1
#include “LPR.h“
int main()
{
//////////////////////////////////////////////////////////////////////////////////////////////
//第一部分:图像采集/图像载入(本系统直接读取图像)
//若采用camera采集示例如下:
/* VideoCapture cap(0);
if (!cap.isOpened())
{
return -1;
}
Mat car_frame;
cap >> car_frame;
*/
//图像载入
Mat car_img;
car_img = imread(“E:\\LPR\\car.bmp“);
if (!car_img.data)
{
cout<<“Please check the input image“< }
/////////////////////////////////////////////////////////////////////////////////////////////////
// 第二部分:车牌定位
//转变成灰度图像
Mat gray;
cvtColor(car_imggrayCV_BGR2GRAY);
//高斯滤波器滤波去噪(可选)
/* int ksize = 3;
Mat g_gray;
Mat G_kernel = getGaussianKernel(ksize0.3*((ksize-1)*0.5-1)+0.8);
filter2D(grayg_gray-1G_kernel);
//Sobel算子(x方向和y方向)
Mat sobel_xsobel_y;
Sobel(g_graysobel_xCV_16S103);
Sobel(g_graysobel_yCV_16S013);
Mat abs_xabs_y;
convertScaleAbs(sobel_xabs_x);
convertScaleAbs(sobel_yabs_y);
Mat grad;
addWeighted(abs_x0.5abs_y0.50grad);
Mat img_bin;
threshold(gradimg_bin0255CV_THRESH_BINARY |CV_THRESH_OTSU);
*/
//二值化
Mat gray_bi;
threshold(graygray_bi0255CV_THRESH_OTSU);
//灰度拉伸
// Mat equ_img;
// equalizeHist(gray_biequ_img);
float num[256] p[256]p1[256];
memset(num0sizeof(num));// 清空三个数组
memset(p0sizeof(p));
memset(p10sizeof(p1));
long wMulh = gray_bi.cols * gray_bi.rows;
for (int i = 0; i < gray_bi.cols; i++)
{
for (int j = 0; j < gray_bi.rows; j++)
{
int v = gray_bi.at(ji);
num[v]++;
}
}
for (int i = 0; i < 256; i++)//存放图像各个灰度级的出现概率
{
p[i] = num[i] / wMulh;
}
for (int i = 0; i < 256; i++)//求存放各个灰度级之前的概率和
{
for (int k = 0; k <= i; k++)
{
p1[i]+=p[k];
}
}
for (int x = 0; x < gray_bi.cols; x++)
{
for (int y = 0; y < gray_bi.rows; y++)
{
int v = gray_bi.at(yx);
gray_bi.at(yx) = p1[v]*255 + 0.5;
}
}
//边缘增强
Mat gray_c;
Canny(gray_bigray_c501503);
//水平投影和垂直投影
int imgR[400] = {0};
bool tag = false;
int imgTop =0;int imgBottom = 0;
int img_h1img_h2;
for (int ht = 0; ht < gray_c.rows; ht++)
{
for (int wt = 0; wt < gray_c.cols; wt++)
{
if (gray_c.at(htwt) != 0)
{
imgR[ht]++;
}
}
if ( (!tag)&& imgR[ht] > 10)
{
img_h1 = ht;
tag = true;
}
if (tag && imgR[ht] <10)
{
img_h2 =ht;
tag = false;
}
if (img_h2-img_h1<50 && img_h2 - img_h1 >25)
{
imgTop = img_h1;
imgBottom = img_h2;
break;
}
}
int imgR_w[300] = {0};
int img_w1 = 0;
int img_w2 = 0;
int imgRight = 0;
int imgLeft = 0;
bool tag2 = false;
for (int wt_new = 2; wt_new < gray_c.cols; wt_new++)
{
for (int ht_new = imgTop; ht_new < img
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-01-05 21:12 LicensePlateRecognition1\
目录 0 2014-01-05 21:12 LicensePlateRecognition1\Debug\
目录 0 2014-01-04 16:06 LicensePlateRecognition1\LicensePlateRecognition1\
目录 0 2014-01-04 16:05 LicensePlateRecognition1\LicensePlateRecognition1\Debug\
文件 12868 2014-01-04 16:05 LicensePlateRecognition1\LicensePlateRecognition1\Debug\CL.read.1.tlog
文件 444 2014-01-04 16:05 LicensePlateRecognition1\LicensePlateRecognition1\Debug\CL.write.1.tlog
文件 254203 2014-01-04 16:05 LicensePlateRecognition1\LicensePlateRecognition1\Debug\LPRmain.obj
文件 65 2014-01-04 16:05 LicensePlateRecognition1\LicensePlateRecognition1\Debug\LicensePlateRecognition1.lastbuildstate
文件 2092 2014-01-04 16:05 LicensePlateRecognition1\LicensePlateRecognition1\Debug\LicensePlateRecognition1.log
文件 0 2014-01-04 16:05 LicensePlateRecognition1\LicensePlateRecognition1\Debug\LicensePlateRecognition1.unsuccessfulbuild
文件 686 2014-01-04 16:05 LicensePlateRecognition1\LicensePlateRecognition1\Debug\cl.command.1.tlog
文件 2 2014-01-04 16:05 LicensePlateRecognition1\LicensePlateRecognition1\Debug\li
文件 2 2014-01-04 16:05 LicensePlateRecognition1\LicensePlateRecognition1\Debug\li
文件 2 2014-01-04 16:05 LicensePlateRecognition1\LicensePlateRecognition1\Debug\li
文件 625664 2014-01-04 16:05 LicensePlateRecognition1\LicensePlateRecognition1\Debug\vc110.idb
文件 1208320 2014-01-04 16:05 LicensePlateRecognition1\LicensePlateRecognition1\Debug\vc110.pdb
文件 516 2014-01-05 20:37 LicensePlateRecognition1\LicensePlateRecognition1\LPR.h
文件 5623 2014-01-05 21:11 LicensePlateRecognition1\LicensePlateRecognition1\LPRmain.cpp
文件 8540 2014-01-04 16:06 LicensePlateRecognition1\LicensePlateRecognition1\LicensePlateRecognition1.vcxproj
文件 1061 2014-01-04 16:05 LicensePlateRecognition1\LicensePlateRecognition1\LicensePlateRecognition1.vcxproj.filters
目录 0 2014-01-04 16:06 LicensePlateRecognition1\LicensePlateRecognition1\x64\
目录 0 2014-01-05 20:37 LicensePlateRecognition1\LicensePlateRecognition1\x64\Debug\
文件 12824 2014-01-05 20:37 LicensePlateRecognition1\LicensePlateRecognition1\x64\Debug\CL.read.1.tlog
文件 460 2014-01-05 20:37 LicensePlateRecognition1\LicensePlateRecognition1\x64\Debug\CL.write.1.tlog
文件 285683 2014-01-05 20:37 LicensePlateRecognition1\LicensePlateRecognition1\x64\Debug\LPRmain.obj
文件 63 2014-01-05 20:37 LicensePlateRecognition1\LicensePlateRecognition1\x64\Debug\LicensePlateRecognition1.lastbuildstate
文件 2187 2014-01-05 20:37 LicensePlateRecognition1\LicensePlateRecognition1\x64\Debug\LicensePlateRecognition1.log
文件 672 2014-01-05 20:37 LicensePlateRecognition1\LicensePlateRecognition1\x64\Debug\cl.command.1.tlog
文件 2 2014-01-05 20:37 LicensePlateRecognition1\LicensePlateRecognition1\x64\Debug\li
文件 2 2014-01-05 20:37 LicensePlateRecognition1\LicensePlateRecognition1\x64\Debug\li
文件 2 2014-01-05 20:37 LicensePlateRecognition1\LicensePlateRecognition1\x64\Debug\li
............此处省略39个文件信息
相关资源
- 车牌识别系统vc源码基于opencv
- 基于深度学习的车牌识别
- 车牌识别源代码
- 用OpenCV作的一个车牌识别程序,可以
- 车牌识别含有十几张可识别车牌图片
- LABVIEW设计程序_车牌识别系统
- 数字和英文字母识别
- 基于车牌识别的课程设计全
-
opencv车牌识别xm
l文件 - opencv车牌识别系统可直接运行
- QT OPENCV车牌识别 识别结果输出到Tex
- yolo3-tiny plate.rar
- 安卓端车牌识别
- 车牌识别.zip
- 车牌识别字符数据集.zip
- 车牌识别数据集全 省+数字+字母
- 车牌识别Hyperlpr
- 车牌识别opencv
- 车牌识别系统的性能评测图像库
- 车牌识别程序一整套上次那个资源传
- 利用EmguCV3.20完成的准确的车牌定位方
- 端到端的中文车牌识别
- 车牌识别训练集
- VC OpenCV车牌识别
- 毕业设计基于Opencv的车牌识别系统
- 基于OpenCV的车牌识别系统
- 车牌识别-opencv
- 车牌_汉字_字母_数字训练集
- 基于OpenCV的车牌识别
- 基于机器学习的车牌识别研究
评论
共有 条评论