资源简介
可用于识别部分工件图像上的数字,主要先进行图像平滑、用canny算子进行边缘检测、再通过数字模板匹配来识别。
代码片段和文件信息
#include “stdio.h“
#include “highgui.h“
#include “cv.h“
IplImage* makemoban( IplImage *pimg int n )
{
IplImage* gongjian0 = cvCreateImage( cvSize( pimg->width pimg->height ) IPL_DEPTH_8U 1);
IplImage* gongjian1 = cvCreateImage( cvSize( pimg->width pimg->height ) IPL_DEPTH_8U 1);
IplImage* gongjian2 = cvCreateImage( cvSize( pimg->width pimg->height ) IPL_DEPTH_8U 1);
IplImage* gongjian4 = cvCreateImage( cvSize( 55 30 ) IPL_DEPTH_8U 1);
IplImage* gongjian11 = cvCreateImage( cvSize( 23 30 ) IPL_DEPTH_8U 1);
IplImage* gongjian22 = cvCreateImage( cvSize( 17 30 ) IPL_DEPTH_8U 1);
IplImage* gongjian33 = cvCreateImage( cvSize( 15 30 ) IPL_DEPTH_8U 1);
IplImage* dst1 = cvCreateImage( cvSize( 23 30 ) IPL_DEPTH_8U 1);
IplImage* dst2 = cvCreateImage( cvSize( 17 30 ) IPL_DEPTH_8U 1);
IplImage* dst3 = cvCreateImage( cvSize( 15 30 ) IPL_DEPTH_8U 1);
IplImage* moban0 = cvCreateImage( cvSize( 30 50 ) IPL_DEPTH_8U 1);
IplImage* dst;
cvCvtColor( pimg gongjian0 CV_BGR2GRAY);
int ijj1i1;
int yxy1x1;
int t = 0;
typedef struct strlarge
{
int zb_x ;
int zb_y ;
int val ;
}point;
strlarge max_pixel;
max_pixel.val = 0;
int qp;
int x11x22x33y11y22y33;
cvSmooth( gongjian0 gongjian1 CV_GAUSSIAN 3 3 3 );
cvReleaseImage( &gongjian0 );
cvCanny( gongjian1 gongjian2 200 100 3);
cvReleaseImage( &gongjian1 );
int xx;
for( xx = 0; xx < 3; xx++)
{
for( j = 0; j < gongjian2->height; j++)
for( i = 0; i < gongjian2->width; i++)
{
if( i == 0 || j == 0 || i == gongjian2->width - 1 || j == gongjian2->height - 1)
{
((uchar *)gongjian2->imageData + j * gongjian2->widthStep)[i] = 0;
continue;
}
if( ((uchar *)gongjian2->imageData + j * gongjian2->widthStep)[i] == 255 )
{
int s = 0;
for( j1 = 0; j1 < 3; j1++)
for( i1 = 0; i1 < 3; i1++ )
if( ((uchar *)gongjian2->imageData + (j + j1 - 1) * gongjian2->widthStep )[i + i1 - 1] == 255 )
s++;
if( s < 3 )
((uchar *)gongjian2->imageData + j * gongjian2->widthStep)[i] = 0;
}
}
}
for( y = 0; y <= gongjian2->height - 30; y++)
for( x = 0; x <= gongjian2->width - 55; x++)
{
int sum = 0;
for( y1 = 0; y1 < 30; y1++)
for( x1 = 0; x1 < 55; x1++)
sum = sum + ((uchar *)gongjian2->imageData + (y + y1) * gongjian2->widthStep)[x + x1];
if( sum > max_pixel.val )
{
max_pixel.val = sum;
max_pixel.zb_y = y;
max_pixel.zb_x = x;
}
}
for( q = max_pixel.zb_y; q < max_pixel.zb_y + 30; q++)
for( p = max_pixel.zb_x; p < max_pixel.zb_x + 55; p++)
((uchar *)gongjian4->imageData + (q - max_pixel.zb_y) * gongjian4->widthStep)[p - max_pixel.zb_x] =
((uchar *)gongjian2->imageData + q * gongjian2->widthStep)[p];
cvReleaseImage( &gongjian2 );
for( y11 = 0; y11 < 30; y11++)
for( x11 = 0; x11 < 23; x11++)
((uchar *)gongjian11->imageData + y11 * gongjian11->widthSt
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 16350 2010-03-20 12:17 7\canny.cpp
文件 4049 2010-03-04 09:06 7\canny.dsp
文件 535 2010-03-04 09:06 7\canny.dsw
文件 66560 2010-04-06 22:00 7\canny.ncb
文件 48640 2010-04-06 22:00 7\canny.opt
文件 244 2010-03-30 09:30 7\canny.plg
文件 40398 2010-03-04 22:49 7\ch10.bmp
文件 41554 2010-03-04 22:47 7\ch5.bmp
文件 39906 2010-03-04 22:48 7\ch8.bmp
文件 200741 2010-03-20 12:17 7\Debug\canny.exe
文件 30610 2010-03-20 12:17 7\Debug\canny.obj
文件 517120 2010-03-20 12:17 7\Debug\canny.pdb
文件 0 2010-03-10 12:57 7\Debug\canny.sbr
文件 14690 2010-03-04 09:06 7\Debug\Image_1.BMP
文件 14690 2010-03-04 09:06 7\Debug\Image_10.BMP
文件 14690 2010-03-04 09:06 7\Debug\Image_2.bmp
文件 14690 2010-03-04 09:06 7\Debug\Image_3.BMP
文件 14690 2010-03-04 09:06 7\Debug\Image_4.BMP
文件 14690 2010-03-04 09:06 7\Debug\Image_5.BMP
文件 14690 2010-03-04 09:06 7\Debug\Image_6.BMP
文件 14690 2010-03-04 09:06 7\Debug\Image_7.BMP
文件 14690 2010-03-04 09:06 7\Debug\Image_8.BMP
文件 14690 2010-03-04 09:06 7\Debug\Image_9.BMP
文件 102400 2010-03-20 12:17 7\Debug\vc60.pdb
文件 14690 2010-03-04 09:06 7\Image_1.BMP
文件 14690 2010-03-04 09:06 7\Image_10.BMP
文件 14690 2010-03-04 09:06 7\Image_2.bmp
文件 14690 2010-03-04 09:06 7\Image_3.BMP
文件 14690 2010-03-04 09:06 7\Image_4.BMP
文件 14690 2010-03-04 09:06 7\Image_5.BMP
............此处省略9个文件信息
- 上一篇:铂电阻温度测量系统的设计
- 下一篇:Tone-Reservation
相关资源
- 小波模极大值边缘检测
- 带式输送机托辊红外图像分割与定位
- 基于libsvm的图像分割代码
- 综合Canny法与小波变换的边缘检测方法
- 基于朴素贝叶斯分类法的图像分割
- 复杂背景与天气条件下的棉花叶片图
- 舌图像分割
- 图像分割方法在遥感图像分析中的应
- 基于彩色图像的Canny边缘检测算法
-
Accurate subpixel edge location ba
sed on pa - 图像分割算法研究区域分割,数学形
- 基于图切算法的交互式图像分割技术
- 纹理图像分割论文+代码
- Dence CRF 条件随机场图像分割
- FPGA边缘检测
- 图像分割-章毓晋
- 改进的自适应阈值Canny边缘检测
- Matalb图像分割边缘检测算子比较
- 交互式图像分割——算法与系统
- ITK入门教程_医学图像分割与配准_高清
- FPGA实现sobel图像边缘检测,VGA显示
- 机器视觉教材包括边缘检测二值图像
- 边缘和轮廓提取代码
- Canny算子分割遥感影像
- 分水岭图像分割算法C++程序源代码
- 基于形态学的图像分割 图片版
- CrackForest数据集
- 使用Visual Studio+OpenCV进行的Susan算子边
- 基于粒子群优算法的最大熵多阈值图
- 二型模糊彩色图像的边缘检测方法研
评论
共有 条评论