teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

修正

2020/08/20 08:23

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -2,4 +2,26 @@
2
2
 
3
3
 
4
4
  エラーに書いてあるとおりではないでしょうか。
5
- ∞ のように内部に交差を持つ輪郭は判定できないというエラーです。
5
+ ∞ のように内部に交差を持つ輪郭は判定できないというエラーです。
6
+
7
+ ## 追記
8
+
9
+ 貼っていただいた画像をグレースケールで読み込んで、そのあとの処理を質問記載の通り行ってもエラーになる現象が再現しません。
10
+
11
+ ```python
12
+ import cv2
13
+ import numpy as np
14
+
15
+ canny = cv2.imread("sample.jpg", cv2.IMREAD_GRAYSCALE)
16
+
17
+ # 凸性欠陥検出
18
+ ret, thresh = cv2.threshold(canny, 127, 255, 0)
19
+
20
+ contours, hierarchy = cv2.findContours(
21
+ thresh.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE
22
+ )
23
+
24
+ cnt = contours[0]
25
+ hull = cv2.convexHull(cnt, returnPoints=False)
26
+ defects = cv2.convexityDefects(cnt, hull)
27
+ ```