gpt4 book ai didi

Python:计算不规则等高线内的面积

转载 作者:太空宇宙 更新时间:2023-11-03 23:18:09 28 4
gpt4 key购买 nike

我正在尝试计算 python 2.7 中等高线内的面积。如下图所示为不规则区域:

contour_line

基本上,我将轮廓的路径保存在以下路径中,然后加载它:

AoI_saved=np.load('C:\Users\Roberta\Desktop\Analysis\Pilot2\AoI\AoI_Lev1_'+pict[:-4]+'.npy')

我可以将一个、两个或多个轮廓保存在同一个文件中。对于等高线定义的每个区域,我必须计算面积。我从来没有做过这样的事情,所以我尝试按照一些教程进行操作,但没有成功。我尝试了以下操作:

n_AoI = len(AoI_saved)
for aa in range(n_AoI):
path = (AoI_saved[0][aa].vertices[:,0],AoI_saved[0][aa].vertices[:,1])
print path
area = cv2.contourArea(path)
print area

这里是路径的输出:

(array([ 731.        ,  732.        ,  733.        , ...,  730.        ,
730.07987317, 731. ]), array([ 445.94074347, 445.88346572, 445.83340569, ..., 446.0051031 ,
446. , 445.94074347]))

我收到以下错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-6-e982ceaa0723> in <module>()
170 coord = np.array(zip(path[0], path[1]))
171
--> 172 area = cv2.contourArea(path)
173 print area
174

TypeError: contour is not a numerical tuple

我试着改变代码如下:

n_AoI = len(AoI_saved)
for aa in range(n_AoI):
path = (AoI_saved[0][aa].vertices[:,0],AoI_saved[0][aa].vertices[:,1])
coord = np.array(zip(path[0], path[1]))
print coord
area = cv2.contourArea(coord)
print area

坐标输出:

[[[ 731.          445.94074347]
[ 732. 445.88346572]
[ 733. 445.83340569]
...,
[ 730. 446.0051031 ]
[ 730.07987317 446. ]
[ 731. 445.94074347]]]

这里是新的错误:

error                                     Traceback (most recent call last)
<ipython-input-14-354ae41b1566> in <module>()
170 coord = np.array(zip(path[0], path[1]))
171
--> 172 area = cv2.contourArea(coord)
173 print area
174

error: ..\..\..\..\opencv\modules\imgproc\src\contours.cpp:1904: error: (-215) contour.checkVector(2) >= 0 && (contour.depth() == CV_32F || contour.depth() == CV_32S) in function cv::contourArea

我的一个问题是我不太清楚 cv2.contourArea 的参数是什么?

计算面积形状最简单的方法是什么?

最佳答案

使用 shapely 计算多边形面积的工作示例:

from shapely import geometry

# a square
poly = geometry.Polygon(((0,0),(0,1),(1,1),(1,0)))

print(poly.area)

前面的代码会打印:

1.0

它是多边形的无单位面积。

关于Python:计算不规则等高线内的面积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35681563/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com