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)

ここで、contour は、輪郭点を含む 2D numpy 配列にすることができます。

詳細については、 http: //docs.opencv.org/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html で OpenCV のドキュメントを 参照してください。

于 2013-07-02T09:06:45.903 に答える