图像面积?
请问如何计算一个不规则封闭图形的面积,最好能详细一点,先谢拉。 问题点数:50、回复次数:5Top
1 楼95533(鼠标垫)回复于 2002-10-18 15:35:43 得分 5
用极限做啊,把他分成小的方块来球,然后方块数趋向无穷大。
这好象是数学问题了,和bcb无关呀Top
2 楼jishiping(JSP 季世平)回复于 2002-10-19 18:25:51 得分 10
很简单啊。不规则封闭图形,就是由很多点连起来的多边形了。将这些点组成
的图形划分成多个梯形,所有的面积加起来就可以了,注意有正负。
float CalArea(POINT pt[], int nPoint)
{
POINT *pt2;
float Area = 0.0;
for(int n=1; n<=nPoint; n++,pt++) {
pt2 = n<nPoint ? pt+1 : pt-(nPoint-1);
Area += (pt2.x-pt.x)*(pt2.y+pt.y)*0.5;
}
return fabs(Area);
}Top
3 楼WuH(山)回复于 2002-10-22 12:17:46 得分 25
UP
如果封閉圖形不是由多邊形組成的呢﹖比如徒手繪的一個封閉圖形。
另外﹐該圖形有可能是凸多邊形﹐也可能是凹多邊形。
我想﹐能否掃描每行的像素來算﹖
然后對每行有圖像的像素區進行繪總
Top
4 楼WuH(山)回复于 2002-10-22 12:21:46 得分 0
對了﹐
我覺得那個思路還可以解決一個封閉圖形內部有孔的圖形Top
5 楼Huy(银狐)回复于 2002-10-22 13:41:25 得分 10
用FloodFill将该封闭区域填充,再统计像素个数就行了。Top




