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