用相机拍摄图片,怎么计算某一部分的实际面积

葫芦岛项目中,相机对钢板表面进行拍照,相机离钢板的距离为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;
strBox.Format("缺陷有效面积%f,缺陷测量面积%f\n 像素点总数%ld,边框像素总数%d",parea,rcarea,pcount,area);
AfxMessageBox(strBox);

你可能感兴趣的:(C++学习)