资源简介
用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.em
文件 732 2016-03-23 17:06 Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\Debug\barcode_module929.exe.em
文件 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\li
文件 2 2016-03-23 17:17 Opecv_一维码识别barcode_module929\barcode_module929\barcode_module929\Debug\li
............此处省略70个文件信息
相关资源
- opencv3_contrib_cmake_files
- 基于windows的蓝牙通信
- 基于windows的蓝牙扫描、连接、通讯
- 最小二乘法求圆心和半径
- Qt OpenCV 播放及Socket发送视频流
- 基于特征点匹配的三维重建OpenCV+Ope
- opencv3.4+contrib编译好的文件
- OpenCV2.4x中文参考手册
- 泊松重建代码
- opencv 精解
- 用4.3.2交叉编译好的opencv2.4.9所需依赖
- OpenCV2.3.1 win版安装包3
- 文本检测_opencv_DNN
- opencv-master.zip
- 基于OpenCV的智能视频监控系统设计源
- 基于 opencv 的车牌识别147642
- One cut in grabcut的OpenCV实现代码以及工
- boost库开发范例大全
- opencv2.4.4库(.h/.lib/.dll)
- 摄像头实时监控与报警系统Opencv
- opencv在播放视频中画框框
- 学习OpenCV(中文版).pdf 高清版本
- 基于qt实现的minidraw画板程序
- 模板匹配算法实现
- VS2013做的推箱子含源码
- VS2013 做的简单的贪吃蛇含源码
- Computer Vision with Opencv3 and Qt5.pdf
- 基于Opencv的手势识别147077
- 多功能网络媒体播放器-Qt-demo
- 坦克大战可执行程序-windows
评论
共有 条评论