前提・実現したいこと
画像の円を検出した場合にその場所をクリックするために下記のコードを書いたところ、円を検出した(リストに円の座標が入っている)時にエラーが出てしまいます。
どうすれば解決できるでしょうか?ご教授よろしくお願いします。
発生している問題・エラーメッセージ
ValueError Traceback (most recent call last) ~\AppData\Local\Temp/ipykernel_17244/989428965.py in <module> 9 boms = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, dp=0.6, minDist=50, param1=100, param2=100, minRadius=35, maxRadius=40) 10 #円があれば円をクリック ---> 11 if not boms: 12 pass 13 else: ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
該当のソースコード
Physon
1import cv2 2import pyautogui as pg 3 4#画像読み込み 5img = cv2.imread("img/playscreen.png") 6 7#グレイスケールに変換 8gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 9 10#円の座標抽出 11boms = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, dp=0.6, minDist=50, param1=100, param2=100, minRadius=35, maxRadius=40) 12 13#円があれば円をクリック 14if not boms: 15 pass 16else: 17 for b in boms[0, :]: 18 pg.moveTo(b[0], b[1]) 19 pg.click()
#試したこと
自分で作ったリストで試したところ動いたので、cv2.HoughCirclesに原因があるのだと思います。
回答4件
あなたの回答
tips
プレビュー