前提・実現したいこと
pythonのopencvを使用してhoughの円検出を行っています
8000枚ほどの画像を処理しているのですが2000枚処理した当たりで以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージ
ValueError: cannot select an axis to squeeze out which has size not equal to one
該当のソースコード
python
1import glob 2import cv2 3import numpy as np 4 5files = glob.glob("./train/images/3/train_OBJ/*.png") 6 7for i, f in enumerate(files): 8 img = cv2.imread(f) 9 out = np.copy(img) 10 11 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 12 13 circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, cv2.HOUGH_GRADIENT,1,30,param1=50,param2=100,minRadius=15,maxRadius=0) 14 15 if circles is not None: 16 circles = circles.squeeze(axis=0) 17 for cx, cy, r in circles: 18 cv2.circle(out, (cx, cy), r, (0, 255, 0), 2) 19 cv2.circle(out, (cx, cy), 2, (0, 0, 255), 2) 20 break 21 22 23 cv2.imwrite("./test/hough_3/3_{}.png".format(i),out)
試したこと
python
1import glob 2import cv2 3 4files = glob.glob("./train/images/3/train_OBJ/*.png") 5for i, f in enumerate(files): 6 img = cv2.imread(f) 7 cv2.imwrite("./test/OBJ_3/3_{}.png".format(i),img) 8print("end")
以上のコードを実行したところ正常に終了したので読み込みは出来ていると思います
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
circle.shapeで表示してみたところエラーが起きているところが(4,1)となっていて2つしか値が入ってないです
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー