error: (-215:Assertion failed) !_image.empty() && _image.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3)) && (_image.isMat() || _image.isUMat()) in function 'cv::HoughCircles'
出現在用Python cv2 實現霍夫圓檢測過程中
原代碼
img = cv2.imread("pipe.jpg")
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1, 5)
出現這種錯誤,原因是沒有正確導入圖像
可能原因:
- 圖片路徑不正確
- 路徑或文件名有中文
- 文件數量或格式不符
這裏的原因是第三點,經過試驗,霍夫圓檢測文件輸入應爲灰度圖,所以有以下兩種方式:
cv2.imread時flag=0
img = cv2.imread("pipe.jpg", 0)
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1, 5)
或者進行灰度轉換
img = cv2.imread("pipe.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1, 5)