練習で数字が描かれた画像を外接矩形で認識するプログラムをOpenCVで作ろうとしたのですが、
Traceback (most recent call last): File "number_recognition.py", line 16, in <module> x, y, w, h = cv2.boundingRect(cnt) cv2.error: OpenCV(4.0.0) /Users/travis/build/skvark/opencv-python/opencv/modules/imgproc/src/shapedescr.cpp:741: error: (-215:Assertion failed) npoints >= 0 && (depth == CV_32F || depth == CV_32S) in function 'pointSetBoundingRect'
というエラーが出てきてしまい、うまくできません。どこか間違っているのでしょうか。
プログラムは↓の通りです。回答よろしくお願いします。
import sys import numpy as np import cv2 im = cv2.imread('./image/numbers100.png') gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY) blur = cv2.GaussianBlur(gray, (5, 5), 0) thresh = cv2.adaptiveThreshold(blur, 255, 1, 1, 11, 2) contours = cv2.findContours( thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[1] for cnt in contours: x, y, w, h = cv2.boundingRect(cnt)#エラー発生 if h < 10: continue cv2.rectangle(im, (x, y), (x+w, y+h), (0,0,255), 2) cv2.imwrite('./image/numbers100-cnt2.png', im)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/20 00:10