2

我有轮廓列表(到达),轮廓是封闭的,我必须计算它们之间的区域。我试过 scipy.integrate,但它给了我错误。我有大约 200 个轮廓,必须计算所有轮廓的面积,简单的方法吗?任何想法?谢谢!

reached = [ contour for contour in prodcontours[prodwell.name] if contour.latest_time_on_contour()<tau ]
area = trapz(reached, dx=well.radius)

更新

for tau in years :
for contour in reached:
    ctr = np.array(contour)
    area =cv2.contourArea(ctr)

   TypeError: <unknown> data type = 15 is not supported

这是什么意思?或者如何为 200 个轮廓重写这个,而不为每个轮廓输入坐标

 contour = numpy.array([[[0,0]], [[10,0]], [[10,10]], [[5,4]]])
 area = cv2.contourArea(contour)

编辑1:顺便说一句,我的轮廓是复数,可能是那个问题?

编辑2:是的,因为我的轮廓是复数

4

1 回答 1

1

您可以使用 OpenCV 库。

area = cv2.contourArea(contour)

其中轮廓可以是包含轮廓点的 2D numpy 数组。

您可以在http://docs.opencv.org/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html阅读 OpenCV 文档以 了解更多详细信息。

于 2013-07-02T09:06:45.903 回答