资源简介

用opencv对条码进行识别

资源截图

代码片段和文件信息

#include  
#include
#include “BarCodeRec.h“
#include “cv.h“
#include “highgui.h“
#include “string.h“
#include 
#include 
#include 




using namespace cv; 
using namespace std;
using namespace barcode;

char* Barcode(char* ImageName);//总的封装接口
double otsu(const IplImage *src_image); //大津法求阈值
double Kittler( IplImage *imge );
void OnPicSb(IplImage *imge);
BOOL PreProcess(IplImage *imge);
BOOL Recognize();
int JudgNum(int w1 int w2 int w3 int w4 double mx);

/////////////////////////////////////////////////////////////////////////////
char* Barcode(char* ImageName)
{
// TODO: Add your command handler code here
IplImage* pImg; //声明IplImage指针

// Matlab风格的cvLoadImage 函数的另一种调用
IplImage *img = cvLoadImage(ImageName1);
if(!img)//载入失败
{
printf(“Can not load image %s /n“ImageName);
return NULL;
}
if(!img->imageData)//载入的图像数据是否正确
return NULL;

/*IplImage *gray = NULL;
IplImage *binary = NULL;
gray = cvCreateImage(cvGetSize(img) IPL_DEPTH_8U 1);//转化成灰度图
cvCvtColor(img gray CV_BGR2GRAY);
binary = cvCreateImage(cvGetSize(gray) IPL_DEPTH_8U 1);//创建二值图
*/

cvNamedWindow(“image“CV_WINDOW_AUTOSIZE );//创建窗口,窗口名字为image
cvShowImage(“image“img);//在刚创建的image窗口中载入图像
//创建一个与img相同大小的图像img1
IplImage *img1 = cvCreateImage(cvGetSize(img)IPL_DEPTH_8U1);
//色彩空间转换,将源彩色图像img转化成目标灰色图像imag1
cvCvtColor(imgimg1CV_BGR2GRAY); //灰度化

//二值化
IplImage *img_thre = cvCreateImage(cvGetSize(img1)IPL_DEPTH_8U1);
// IplImage *img3 = cvCreateImage(cvGetSize(img1)IPL_DEPTH_8U1);
/*void cvThreshold( const CvArr* src CvArr* dst double threshold
       double max_value int threshold_type );
  void cvAdaptiveThreshold( dst dst 255 CV_ADAPTIVE_THRESH_MEAN_C
       CV_THRESH_BINARY 9 -10);*/
cvThreshold( img1 img_thre otsu(img1)255 CV_THRESH_BINARY);
// cvThreshold( img1 img_thre Kittler(img1)255 CV_THRESH_BINARY);

IplImage* out_smooth = cvCreateImage(cvGetSize(img_thre)  
IPL_DEPTH_8Uimg_thre->nChannels);   

    cvSmooth(img_threout_smoothCV_MEDIAN3img_thre->nChannels);
//识别
// OnPicSb(out_smooth);
PreProcess(out_smooth);
Recognize();

cvNamedWindow(“ThreImage“CV_WINDOW_AUTOSIZE);//创建窗口,窗口名字GrayImage
cvShowImage(“ThreImage“img_thre);//载入转化后的图像

cvNamedWindow(“SmoothImage“CV_WINDOW_AUTOSIZE);//创建窗口,窗口名字GrayImage
cvShowImage(“SmoothImage“out_smooth);//载入转化后的图像

cvWaitKey(0);
cvReleaseImage(&img);
cvReleaseImage(&img1);
cvReleaseImage(&img_thre);
cvReleaseImage(&out_smooth);
cvDestroyAllWindows( );
return 0;


}

double otsu(const IplImage *src_image) //大津法求阈值
{
double sum = 0.0;
double w0 = 0.0;
double w1 = 0.0;
double u0_temp = 0.0;
double u1_temp = 0.0;
double u0 = 0.0;
double u1 = 0.0;
double delta_temp = 0.0;
double delta_max = 0.0;

//src_image灰度级
int pixel_count[256]={0};
float pixel_pro[256]={0};
double threshold = 0.0;
uchar* data = (

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

     文件     366054  2013-10-09 10:12  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\001.bmp

     文件     412086  2013-10-09 10:13  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\002.bmp

     文件      74754  2013-10-09 10:11  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\003.bmp

     文件     297386  2013-10-09 10:13  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\004.bmp

     文件     449334  2013-10-09 10:11  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\005.bmp

     文件    1134390  2013-10-09 10:11  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\006.bmp

     文件    2088594  2008-12-12 19:14  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\007.bmp

     文件     122427  2013-10-09 11:40  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\a.txt

     文件          0  2013-10-09 12:47  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\b.txt

     文件      16149  2016-03-23 17:17  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\BarCodeRec.cpp

     文件       1117  2013-10-09 10:57  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\BarCodeRec.h

     文件       1480  2013-10-08 10:41  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\barcode_module929.idc

     文件       4614  2016-03-23 17:07  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\barcode_module929.vcxproj

     文件       1071  2013-10-03 22:00  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\barcode_module929.vcxproj.filters

    .......       143  2013-09-29 23:01  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\barcode_module929.vcxproj.user

     文件     210951  2016-03-23 17:17  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\Debug\BarCodeRec.obj

     文件       1794  2013-10-10 09:12  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\Debug\barcode_module929.Build.CppClean.log

     文件        667  2013-10-10 09:12  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\Debug\barcode_module929.exe.embed.manifest

     文件        732  2016-03-23 17:06  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\Debug\barcode_module929.exe.embed.manifest.res

     文件        381  2016-03-23 17:17  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\Debug\barcode_module929.exe.intermediate.manifest

     文件         75  2016-03-23 17:17  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\Debug\barcode_module929.lastbuildstate

     文件       3642  2016-03-23 17:17  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\Debug\barcode_module929.log

     文件        713  2016-03-23 17:06  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\Debug\barcode_module929.vcxprojResolveAssemblyReference.cache

     文件          0  2016-03-23 17:06  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\Debug\barcode_module929.write.1.tlog

     文件        224  2013-10-10 09:12  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\Debug\barcode_module929_manifest.rc

     文件       1686  2016-03-23 17:17  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\Debug\cl.command.1.tlog

     文件      71930  2016-03-23 17:17  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\Debug\CL.read.1.tlog

     文件        868  2016-03-23 17:17  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\Debug\CL.write.1.tlog

     文件          2  2016-03-23 17:17  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\Debug\link-cvtres.read.1.tlog

     文件          2  2016-03-23 17:17  Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\Debug\link-cvtres.write.1.tlog

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

评论

共有 条评论