fix are calc for polygon
@@ -84,11 +84,12 @@ class MakeShrinkMap(object):
return polygons, ignore_tags
def polygon_area(self, polygon):
- # return cv2.contourArea(polygon.astype(np.float32))
- edge = 0
- for i in range(polygon.shape[0]):
- next_index = (i + 1) % polygon.shape[0]
- edge += (polygon[next_index, 0] - polygon[i, 0]) * (
- polygon[next_index, 1] - polygon[i, 1])
-
- return edge / 2.
+ """
+ compute polygon area
+ """
+ area = 0
+ q = polygon[-1]
+ for p in polygon:
+ area += p[0] * q[1] - p[1] * q[0]
+ q = p
+ return area / 2.0
