葫芦岛项目中,相机对钢板表面进行拍照,相机离钢板的距离为70cm,拍摄的一幅钢板图片实际面积为
39*54,即2120平方厘米,(这个可以把米尺放在钢板上,可以得出拍摄到的钢板长为54厘米,宽为39厘米)
照片的分辨率为1280*960,(1280/960 和 54/39 的结果是接近相等的~~)
现在把一块白纸放在钢板上,要计算白纸的面积
(或者在钢板上画一个白色圆圈,计算圆圈的面积)
具体做法如下:
利用图像处理的方法,识别出白纸的边沿,找出边沿内所有像素点的个数pCount,
那么白纸的面积为Area=pCount*2120/(1280*960)
画白色圆圈也是一样的道理,关键是要识别出边沿~~
原理:
一幅图片像素点的总数是固定的,1280*960
所以只要找出缺陷点的像素个数, 缺陷点像素个数 / (1280*960) *(54*39) ,就能计算出缺陷面积
下面是一段代码:
parea=((float)pcount/(1280*960))*2120;
rcarea=((float)area/(1280*960))*2120;
CString strBox;
("缺陷有效面积%f,缺陷测量面积%f\n 像素点总数%ld,边框像素总数%d",parea,rcarea,pcount,area);
AfxMessageBox(strBox);