资源简介
本项目是我用基于Opencv和C++实现的一整套车牌识别系统从定位、分割到字符识别的源代码,可直接运行使用,效果还不错。

代码片段和文件信息
#include “StdAfx.h“
#include “charseg_preprocess.h“
#include
extern bool Plate_flag;
namespace plate
{
/**
* make_border_zeros ------ mask the top two rows bottom two rows left two columns
* right two columns with zeros
*
* Parameters:
* @img ------------------- the input image which will be modified
*/
static void make_border_zeros(cv::Mat& img)
{
CV_Assert( img.depth() == CV_8UC1 );
CV_Assert( img.rows >= 2 );
CV_Assert( img.cols >= 2 );
img.rowRange( 0 2 ) = cv::Mat::zeros(2 img.cols CV_8UC1);
img.rowRange( img.rows - 2 img.rows ) =
cv::Mat::zeros(2 img.cols CV_8UC1);
img.colRange( 0 2 ) = cv::Mat::zeros(img.rows 2 CV_8UC1);
img.colRange( img.cols - 2 img.cols ) =
cv::Mat::zeros(img.rows 2 CV_8UC1);
return;
}
/**
* object_enhancement -------- enhance the seven characters in the plate
*
* Parameters:
* @img ---------------------- the input gray image characters in which will be enhanced
*/
static void object_enhancement(cv::Mat& img)
{
CV_Assert( img.channels() == 1 );
// transfer pixel value range from [0 255] to [0 100]
cv::Mat weaken_img;
img.convertTo( weaken_img CV_8UC1 0.40 0.0 );
// find the first top 40% pixel values
std::vector pixel_values;
for ( int r = 0; r < weaken_img.rows; r++ ) {
const unsigned char* prow = weaken_img.ptr(r);
for ( int c = 0; c < weaken_img.cols; c++ ) {
pixel_values.push_back( prow[c] );
}
}
std::sort( pixel_values.begin() pixel_values.end() );
std::size_t sentinel_index = cvRound( pixel_values.size() * 0.60 );
unsigned char sentinel_value = pixel_values[sentinel_index];
// only the pixels whose value are in the top 40% are enhanced
for ( int r = 0; r < weaken_img.rows; r++ ) {
const unsigned char* pweaken_img_row =
weaken_img.ptr(r);
unsigned char* pimg_row = img.ptr(r);
for ( int c = 0; c < weaken_img.cols; c++ ) {
if ( pweaken_img_row[c] >= sentinel_value ) {
pimg_row[c] = cv::saturate_cast(
pweaken_img_row[c] * 2.55 );
}
else {
pimg_row[c] = pweaken_img_row[c];
}
}
}
return;
}
/**
* img_threshold ---------- Apply a fixed-level threshold to each pixel of the image
*
* Parameters:
* @img ------------------- the input gray image
*/
static void img_threshold(cv::Mat& img)
{
CV_Assert( img
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 10625 2013-04-10 13:55 plate_recognition_20130410_beifen\charseg_preprocess.cpp
文件 645 2013-04-01 10:35 plate_recognition_20130410_beifen\charseg_preprocess.h
文件 24169 2013-04-10 13:42 plate_recognition_20130410_beifen\charseg_segment.cpp
文件 892 2013-04-01 10:33 plate_recognition_20130410_beifen\charseg_segment.h
文件 752 2013-04-10 11:38 plate_recognition_20130410_beifen\main.cpp
文件 36339 2013-07-05 12:01 plate_recognition_20130410_beifen\plate_recognition_20130410.cpp
目录 0 2013-09-01 09:37 plate_recognition_20130410_beifen\
- 上一篇:哈夫曼压缩解压算法-C语言
- 下一篇:C语言控制台窗口界面编程(修正版)
相关资源
- 车牌识别系统,VS2010实现,语言C++
- c++MFC车牌自动识别定位,只能定位和
- 车牌识别系统VC++开发
- 车牌识别系统和车型识别系统源代码
- 车牌识别c语言代码
- 基于SVM的车牌定位程序
- 一种基于Visual C++的的车牌字符分割代
- 14_车牌识别系统.zip
- 车牌识别c++源码
- OpenCV C++完整的车牌识别系统.rar
- 车牌识别 openCV mfc BP神经网络
- c语言 车牌识别
- VC++实现的车牌定位与识别系统
- VC++车牌识别系统源码带可执行程序
- 车牌识别与定位C++
- opencv 车牌识别 vs2010 mfc
- c++车牌识别
- 基于C++的基础车牌识别
- 基于opencv的C++车牌识别
- 车牌识别的mfc加opencv
- 车牌识别系统源代码
- 基于SVM与人工神经网络的车牌识别O
- 车牌识别系统C++实现
- 基于SVM与人工神经网络的车牌识别C
- 车牌牌照检测识别 VC++和opencv1.0 完整
- 基于OpenCV的车牌识别c++
- 车牌识别_C++ code_MFC.zip
- 车牌识别源码
- 基于神经网络的车牌识别系统//VC++毕
- 车牌识别C++实现
评论
共有 条评论