OpenCVで画像の凸性欠陥を取得したい
↓ こちらのサイトを参考に、画像の凸性欠陥を得るコードを書いてみましたが、エラーが発生してしまいます。
エラー内容もよくわからず、何をどうすればいいのやら困っています。
お詳しい方、ご回答よろしくお願いします。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "<stdin>", line 1, in <module> cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-n4ekh6o5\opencv\modules\imgproc\src\convhull.cpp:360: error: (-5:Bad argument) The convex hull indices are not monotonous, which can be in the case when the input contour contains self-intersections in function 'cv::convexityDefects'
該当のソースコード
python
1import cv2 2import numpy as np 3 4img = cv2.imread("sample.jpg") 5gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 6canny = cv2.Canny(gray, 200, 400) # <-- 輪郭のみに変換 7 8# 凸性欠陥検出 9ret, thresh = cv2.threshold(canny, 127, 255, 0) 10contours, hierarchy= cv2.findContours(thresh.copy(),cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) 11cnt = contours[0] 12hull = cv2.convexHull(cnt, returnPoints = False) 13defects = cv2.convexityDefects(cnt, hull) # <-- エラー箇所
補足情報(FW/ツールのバージョンなど)
Windows10
Python 3.8.3
OpenCV 4.4.0.40
NumPy 1.19.1
回答1件
あなたの回答
tips
プレビュー