opencv数字识别更新


更新后的,之前的有错误
资源截图
代码片段和文件信息
#include “opencv2/highgui/highgui.hpp“  
#include “opencv2/imgproc/imgproc.hpp“  
#include   
#include 
  
using namespace std;  
using namespace cv;  

class Picture{
protected:
int dex; //第几张测试图片
double threshold; //模板匹配判断是否匹配的阈值
char* path; //读取测试图像的路径
Mat source; //用作源图像
Mat srcResult; //用来显示
int scanWindowW; //扫描窗宽度
int scanWindowH; //扫描窗高度
int sourceW sourceH; //原图像宽度高度
int window_xwindow_y; //当前扫描窗口左上角坐标
int countnumbers; //当前已经识别出的数字个数

int adaptiveBiSize; //自适应二值化均衡窗口大小
int adaptiveBiParam; //自适应二值化计算系数
int medianBlurSize; //中值滤波窗口大小

vector numresult; //存储识别结果
vector templatVec; //存储模板图像
int index[8]; //记录模板图像的下标索引


public:
Picture(int i=1){
dex = i;
threshold = 0.48;
path=(char *)malloc(100*sizeof(char)); //init char*
sprintf(path“test\t%d.bmp“dex);
scanWindowW = 38;
scanWindowH = 35;
countnumbers = 1;
index[0]=0; //训练样本下标索引
index[1]=1;
index[2]=2;
index[3]=3;
index[4]=4;
index[5]=6;
index[6]=8;
index[7]=9;
// 自适应二值化和中值滤波参数
adaptiveBiSize = 11;
adaptiveBiParam= 19;
medianBlurSize = 3;

}
void loadImage(){
//读入待测试图像并保存为灰度图
Mat mat = imread(path);

if(!mat.data)  
{  
cout << “打开图像失败“<< endl;  
exit(0);  
}
namedWindow(“original“);
imshow(“original“mat);
Mat mergeImg; //合并后的图像
Mat matgray; //灰度图
//用来存储各通道图片的向量
vector splitBGR(mat.channels());
//分割通道,存储到splitBGR中
split(matsplitBGR);
//对各个通道分别进行直方图均衡化
for(int i=0; i equalizeHist(splitBGR[i]splitBGR[i]);
//合并通道
merge(splitBGRmergeImg);
//rgb图像转成灰度图
cvtColor(mergeImgmatgrayCV_RGB2GRAY);
source = matgray;

}
virtual void loadTemplate(){
for (int i=0;i<8;i++){
char path[100];
sprintf(path“train\%d.bmp“index[i]);
Mat tmp = imread(path0);
templatVec.push_back(tmp);
/*namedWindow(“Template“);
imshow(“Template“templatVec[i]);*/
waitKey(0);
//模板图像二值化
//自适应二值化
adaptiveThreshold(templatVec[i] templatVec[i] 255 CV_ADAPTIVE_THRESH_MEAN_C CV_THRESH_BINARY 31 7);
//滤波
medianBlur( templatVec[i] templatVec[i] 3);

}
};
void preProcess(){          //自适应二值化&中值滤波
Mat out;
//自适应二值化
adaptiveThreshold(source source 255 CV_ADAPTIVE_THRESH_MEAN_C CV_THRESH_BINARY adaptiveBiSize adaptiveBiParam); 
//中值滤波
namedWindow(“binary“);
imshow(“binary“source);
waitKey(0);
medianBlur( source out medianBlurSize);
namedWindow(“medianblur“);
imshow(“medianblur“out);
waitKey(0);
source = out;
srcResult = out;  //用来显示
}
Mat scanWindow(int window_xint window_y){
return source(Rect(window_xwindow_yscanWindowWscanWindowH));
} //返回扫描窗
bool match(Mat src){
int srcWsrcHtemplatW templatH curtemplatWcurtemplatHresultH resultW; 
Mat templatresult;
srcW = src.cols;  
srcH = src.rows;
double current

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-08-10 09:02  请勿泄露个人信息或外传
     目录           0  2015-06-14 10:27  请勿泄露个人信息或外传 emplate
     目录           0  2015-06-14 10:27  请勿泄露个人信息或外传 emplateDebug
     文件     1012736  2014-10-01 17:17  请勿泄露个人信息或外传 emplateDebugopencv_calib3d2410.dll
     文件     1970688  2014-10-01 17:20  请勿泄露个人信息或外传 emplateDebugopencv_calib3d2410d.dll
     文件     1214976  2014-10-01 17:18  请勿泄露个人信息或外传 emplateDebugopencv_contrib2410.dll
     文件     2644992  2014-10-01 17:21  请勿泄露个人信息或外传 emplateDebugopencv_contrib2410d.dll
     文件     2150400  2014-10-01 17:13  请勿泄露个人信息或外传 emplateDebugopencv_core2410.dll
     文件     3708928  2014-10-01 17:19  请勿泄露个人信息或外传 emplateDebugopencv_core2410d.dll
     文件      165376  2014-10-01 17:17  请勿泄露个人信息或外传 emplateDebugopencv_createsamples.exe
     文件      742400  2014-10-01 17:16  请勿泄露个人信息或外传 emplateDebugopencv_features2d2410.dll
     文件     1612288  2014-10-01 17:20  请勿泄露个人信息或外传 emplateDebugopencv_features2d2410d.dll
     文件    10535057  2013-11-19 11:00  请勿泄露个人信息或外传 emplateDebugopencv_ffmpeg2410.dll
     文件      527360  2014-10-01 17:14  请勿泄露个人信息或外传 emplateDebugopencv_flann2410.dll
     文件     1218560  2014-10-01 17:19  请勿泄露个人信息或外传 emplateDebugopencv_flann2410d.dll
     文件      432128  2014-10-01 17:17  请勿泄露个人信息或外传 emplateDebugopencv_gpu2410.dll
     文件      928256  2014-10-01 17:20  请勿泄露个人信息或外传 emplateDebugopencv_gpu2410d.dll
     文件      164352  2014-10-01 17:17  请勿泄露个人信息或外传 emplateDebugopencv_haartraining.exe
     文件     2161152  2014-10-01 17:15  请勿泄露个人信息或外传 emplateDebugopencv_highgui2410.dll
     文件     3803136  2014-10-01 17:20  请勿泄露个人信息或外传 emplateDebugopencv_highgui2410d.dll
     文件     1933312  2014-10-01 17:14  请勿泄露个人信息或外传 emplateDebugopencv_imgproc2410.dll
     文件     3425280  2014-10-01 17:19  请勿泄露个人信息或外传 emplateDebugopencv_imgproc2410d.dll
     文件     1263104  2014-10-01 17:17  请勿泄露个人信息或外传 emplateDebugopencv_legacy2410.dll
     文件     2789888  2014-10-01 17:20  请勿泄露个人信息或外传 emplateDebugopencv_legacy2410d.dll
     文件      510464  2014-10-01 17:14  请勿泄露个人信息或外传 emplateDebugopencv_ml2410.dll
     文件     1086976  2014-10-01 17:19  请勿泄露个人信息或外传 emplateDebugopencv_ml2410d.dll
     文件      562688  2014-10-01 17:18  请勿泄露个人信息或外传 emplateDebugopencv_nonfree2410.dll
     文件     1159168  2014-10-01 17:20  请勿泄露个人信息或外传 emplateDebugopencv_nonfree2410d.dll
     文件      679936  2014-10-01 17:15  请勿泄露个人信息或外传 emplateDebugopencv_objdetect2410.dll
     文件     1606144  2014-10-01 17:20  请勿泄露个人信息或外传 emplateDebugopencv_objdetect2410d.dll
     文件     2136064  2014-10-01 17:17  请勿泄露个人信息或外传 emplateDebugopencv_ocl2410.dll
............此处省略706个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)