2016-09-13 1 views
10

私はfindContoursから得た輪郭の単純な領域計算をしようとしています。 マイOpenCVのバージョンは3.1.0openCV 3のcontourAreaとの互換性問題

私のコードがあるさ:

cc = cv2.findContours(im_bw.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) 
cv2.contourArea(cc[0]) 

error: 'C:\\builds\\master_PackSlaveAddon-win32-vc12-static\\opencv\\modules\\imgproc\\src\\shapedescr.cp...: error: (-215) npoints >= 0 && (depth == CV_32F || depth == CV_32S) in function cv::contourArea\n' 

カントは、私はそのはちょうど私がfindContoursがcontourArea

のタイプと一致する結果を期待altough型キャストを感じている、それを解決するように見えます

感謝:)

EDIT:結局のところ、私はfindContours

im2, cc, hierarchy = cv2.findContours(im_bw.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) 
の第二引数を取る必要がありますOpenCVの3 APIのバージョンで
+0

持っていますcc [0]が空であるかどうかを確認しましたか? –

+2

もっと掘り出した後に見つけました。findContoursの第2引数を取得する必要があります。 – YNWA

答えて

16

cv2.findContours()戻り3 objects

  • 画像
  • 輪郭
  • 階層

つまり、あなたの文を書き換える必要があるとして:

image, contours, hierarchy = cv2.findContours(im_bw.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) 
+0

保存した私の夜、tks! –