机器视觉项目一:小孔判定与最短距识别

本文介绍了一个使用VC++编写的机器视觉项目,通过图像处理技术(如中值滤波、一阶微分、二值化等)来识别图像中的小孔并计算勺子最窄处的宽度。关键步骤包括区域分割、边缘检测和距离计算,最终求得最短距离为31个像素点,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

Question:以下两幅图像,判断出哪个有孔,并计算出图中勺子的最窄处的宽度?

代码下载:http://www.pudn.com/downloads386/sourcecode/graph/texture_mapping/detail1655727.html


我用vc++编写的识别框架如下:

1.运行界面打开图像:

2.点击区域分割与提取:


3.进行多次中值滤波,然后进行一次一阶微分运算,运算结果放大两倍,然后去25二值化得到边界图:


然后计算最后操那个图的像素总值,2.bmp显示结果为接近6000;求得最短就离为31个像素点,利用length=nmin/28.346这个即可求出距离。


关键代码:

/*----Threshold----二值化处理------------------------

image_in 输入图像数据指针

image_out 输出图像数据指针

xsize   图像宽度

ysize   图像高度

thresh  阈值(0-255)

mode    处理方法(1,2)

--------------------------------------------------*/

 

void Threshold(BYTE *image_in,BYTE*image_out,int xsize,int ysize,int thresh,int mode)

       {

              inti,j;

              for(j=0;j<ysize;j++)

              {

                     for(i=0;i<xsize;i++)

                     {

                            switch(mode)

                            {

                            case2:

                                   if(*(image_in+i+j*xsize)<=thresh)

                                          *(image_out+i+j*xsize)=HIGH;

                                   else

                                          *(image_out+i+j*xsize)=LOW;

                                   break;

                            default:

                                   if(*(image_in+i+j*xsize)>=thr

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值