• 大小: 11.98MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-27
  • 语言: 其他
  • 标签: XCF  

资源简介

一个基于OpenCV的车牌识别系统,支持识别车牌并且定位车牌区域

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
using namespace cv;
using namespace std;
int cols_start = 0 cols_end = 0;//记录车牌开始、结束列
int rows_start = 0 rows_end = 0;//记录车牌开始、结束行
const int row_thresh = 28;//判断一行是不是车牌有效值的阈值
const int col_thresh = 2;//判断一列是不是车牌有效值的阈值
int row[200];//存放含有车牌有效信息的第j行,把所有有效行放在一个数组里,统一管理,便于判断
int col[30];//存放含有车牌有效信息的第j列

//计算一维高斯的权值数组
double *getOneGuassionArray(int size double sigma);
void MyGaussianBlur(Mat &srcImage Mat &dst int size);
//******************灰度转换函数*************************  
//第一个参数image输入的彩色RGB图像的引用;  
//第二个参数imageGray是转换后输出的灰度图像的引用;  
//*******************************************************
void ConvertRGB2GRAY(const Mat &image Mat &imageGray);

//******************Sobel卷积因子计算X、Y方向梯度和梯度方向角********************  
//第一个参数imageSourc原始灰度图像;  
//第二个参数imageSobelX是X方向梯度图像;  
//第三个参数imageSobelY是Y方向梯度图像;  
//第四个参数pointDrection是梯度方向角数组指针  
//*************************************************************  
void SobelGradDirction(Mat &imageSource Mat &imageSobelX Mat &imageSobelY);

//OTSU算法函数实现
int OTSU(Mat &srcImage);

void find_UpandDown_row(Mat_ dstimage Mat src);//查找车牌的上边线和下边线
void find_LeftandRight_col(Mat_ dstimage Mat src);//查找车牌的左边线和右边线
void find_ROI(Mat src);//查找车牌区域
int main()
{
Mat srcImage = imread(“5.jpg“);
if (!srcImage.data)
{
printf(“could not load image...\n“);
return -1;
}
imshow(“srcImage“ srcImage);
//高斯滤波
Mat GuassionMat;
MyGaussianBlur(srcImage GuassionMat 3);
imshow(“GuassionMat“ GuassionMat);
//转化为灰度图
Mat srcGray;
ConvertRGB2GRAY(GuassionMat srcGray);
imshow(“srcGray“ srcGray);
//X方向的Soble边缘检测
Mat imageSobelX imageSobelY;
SobelGradDirction(srcGray imageSobelX imageSobelY);
imshow(“imageSobelX“ imageSobelX);
//二值化
//调用二值化函数得到最佳阈值
int otsuThreshold = OTSU(imageSobelX);
cout << otsuThreshold << endl;//输出最佳阈值

Mat otsuResultImage = Mat::zeros(imageSobelX.rows imageSobelX.cols CV_8UC1);//创建一张一个通道的空的图像

  //利用得到的阈值进行二值操作
for (int i = 0; i < imageSobelX.rows; i++)
{
for (int j = 0; j < imageSobelX.cols; j++)
{
if (imageSobelX.at(i j) > otsuThreshold)
{
otsuResultImage.at(i j) = 255;
}
else
{
otsuResultImage.at(i j) = 0;
}
}
}
imshow(“otsuResultImage“ otsuResultImage);
find_UpandDown_row(otsuResultImage srcImage);
find_LeftandRight_col(otsuResultImage srcImage);
find_ROI(srcImage);
waitKey(0);
return 0;
}

double *getOneGuassionArray(int size double sigma)
{
double sum = 0.0;

int kerR = size / 2;


double *arr = new double[size];
for (int i = 0; i < size; i++)
{


arr[i] = exp(-((i - kerR)*(i - kerR)) / (2 * sigma*sigma));
sum += arr[i];

}

for (int i = 0; i < size; i++)
{
arr[i] /= sum;
cout << arr[i] << endl;
}
return arr;
}




void MyGaussianBlur(Mat &srcImage Mat &dst int size)
{
CV_Assert(srcImage.channels() || srcImag

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件    5366750  2018-11-14 18:34  Rec 0001.mp4

    ..A..H.     30720  2018-11-14 18:35  ConsoleApplication5\.vs\ConsoleApplication5\v14\.suo

     文件    1812301  2018-11-14 15:50  ConsoleApplication5\ConsoleApplication5\1.jpg

     文件      12461  2018-11-14 16:52  ConsoleApplication5\ConsoleApplication5\15软A关宇晖.cpp

     文件      14048  2018-11-14 16:47  ConsoleApplication5\ConsoleApplication5\2.jpg

     文件      19179  2018-11-14 16:50  ConsoleApplication5\ConsoleApplication5\3.jpg

     文件      13197  2018-11-14 16:51  ConsoleApplication5\ConsoleApplication5\4.jpg

     文件      40517  2018-11-14 16:52  ConsoleApplication5\ConsoleApplication5\5.jpg

     文件       7354  2018-11-14 18:17  ConsoleApplication5\ConsoleApplication5\ConsoleApplication5.vcxproj

     文件        956  2018-11-14 18:17  ConsoleApplication5\ConsoleApplication5\ConsoleApplication5.vcxproj.filters

     文件     365725  2018-11-14 18:34  ConsoleApplication5\ConsoleApplication5\x64\Debug\15软A关宇晖.obj

     文件        852  2018-11-14 18:34  ConsoleApplication5\ConsoleApplication5\x64\Debug\ConsoleA.E7404383.tlog\CL.command.1.tlog

     文件      15384  2018-11-14 18:34  ConsoleApplication5\ConsoleApplication5\x64\Debug\ConsoleA.E7404383.tlog\CL.read.1.tlog

     文件        968  2018-11-14 18:34  ConsoleApplication5\ConsoleApplication5\x64\Debug\ConsoleA.E7404383.tlog\CL.write.1.tlog

     文件        245  2018-11-14 18:34  ConsoleApplication5\ConsoleApplication5\x64\Debug\ConsoleA.E7404383.tlog\ConsoleApplication5.lastbuildstate

     文件       2534  2018-11-14 18:34  ConsoleApplication5\ConsoleApplication5\x64\Debug\ConsoleA.E7404383.tlog\link.command.1.tlog

     文件       5506  2018-11-14 18:34  ConsoleApplication5\ConsoleApplication5\x64\Debug\ConsoleA.E7404383.tlog\link.read.1.tlog

     文件        948  2018-11-14 18:34  ConsoleApplication5\ConsoleApplication5\x64\Debug\ConsoleA.E7404383.tlog\link.write.1.tlog

     文件       1638  2018-11-14 18:34  ConsoleApplication5\ConsoleApplication5\x64\Debug\ConsoleApplication5.Build.CppClean.log

     文件       1613  2018-11-14 18:34  ConsoleApplication5\ConsoleApplication5\x64\Debug\ConsoleApplication5.log

     文件     470016  2018-11-14 18:34  ConsoleApplication5\ConsoleApplication5\x64\Debug\vc140.idb

     文件     757760  2018-11-14 18:34  ConsoleApplication5\ConsoleApplication5\x64\Debug\vc140.pdb

     文件       1339  2018-11-14 15:43  ConsoleApplication5\ConsoleApplication5.sln

     文件   13791232  2018-11-14 18:35  ConsoleApplication5\ConsoleApplication5.VC.db

     文件     134144  2018-11-14 18:34  ConsoleApplication5\x64\Debug\ConsoleApplication5.exe

     文件     676308  2018-11-14 18:34  ConsoleApplication5\x64\Debug\ConsoleApplication5.ilk

     文件    1363968  2018-11-14 18:34  ConsoleApplication5\x64\Debug\ConsoleApplication5.pdb

     文件    1754591  2018-11-14 18:30  15软件A关宇晖_计算机视觉_课程设计报告.doc

     目录          0  2018-11-14 18:34  ConsoleApplication5\ConsoleApplication5\x64\Debug\ConsoleA.E7404383.tlog

     目录          0  2018-11-14 15:43  ConsoleApplication5\.vs\ConsoleApplication5\v14

............此处省略11个文件信息

评论

共有 条评论

相关资源