Windows の python 2.7.3 で opencv 2.4.3 を使用すると、興味深いエラーが発生します。drawContours を使用しようとすると、最初に輪郭をピクル/アンピクルしない限り、「TypeError: 輪郭データ タイプ = 5 はサポートされていません」というエラーが表示されます。
これは機能しません (「TypeError: 等高線データ型 = 5 はサポートされていません」というメッセージが表示されます):
noBg = cv2.blur(src, (5,5))
noBg = cv2.inRange(noBg, np.array([80, 0, 200], np.uint8), np.array([255, 50, 255], np.uint8))
noBg = np.invert(noBg)
contours, hierarchy = cv2.findContours(noBg, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(src, contours, -1, (0,255,0), 3)
しかし、これはうまくいきます:
noBg = cv2.blur(src, (5,5))
noBg = cv2.inRange(noBg, np.array([80, 0, 200], np.uint8), np.array([255, 50, 255], np.uint8))
noBg = np.invert(noBg)
contours, hierarchy = cv2.findContours(noBg, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
tmp = cPickle.dumps(contours)
contours = cPickle.loads(tmp)
cv2.drawContours(src, contours, -1, (0,255,0), 3)
他の誰かがこの動作を見たことがありますか、それとも明らかな何かが欠けていますか? 私はpython/opencvが初めてなので、そうかもしれません。
編集:これを私の Mac でテストしたところ、どちらの場合も問題なく動作しました。たぶんWindowsの問題でしょうか?