【发布时间】:2019-06-20 04:24:48
【问题描述】:
在检测圆圈之前,我将red 频道替换为green 频道。更换通道后,我将其通过模糊过滤器,然后进行霍夫变换以检测圆圈。但是当我这样做时,我收到一条糟糕的错误消息:
OpenCV(3.4.1) Error: Assertion failed (!_image.empty() && _image.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3)) && (_image.isMat() ||
_image.isUMat())) in HoughCircles, file /io/opencv/modules/imgproc/src/hough.cpp, line 1659
Traceback (most recent call last):
File "circle_light.py", line 44, in <module>
param1=param1,param2=param2,minRadius=minRadius,maxRadius=maxRadius)
cv2.error: OpenCV(3.4.1) /io/opencv/modules/imgproc/src/hough.cpp:1659: error: (-215) !_image.empty()
&& _image.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3)) && (_image.isMat() || _image.isUMat()) in function HoughCircles
我无法从中理解,因此无法理解我可能做错了什么。这是我所做的 sn-p。
import cv2
img = cv2.imread("images/{}".format("img.png"), 1)
b,g,r = cv2.split(img)
img = cv2.merge([b,g,g])
img = cv2.GaussianBlur(img,(5,5),0)
minDist = 11
param1 = 20
param2 = 20
minRadius = 10
maxRadius = 20
circles = cv2.HoughCircles(
img, cv2.HOUGH_GRADIENT, 1, minDist,
param1=param1, param2=param2, minRadius=minRadius, maxRadius=maxRadius
)
当我调用HoughCircles 函数时发生错误。我可能做错了什么?
【问题讨论】:
-
如果您有兴趣,我会在我的回答中解释错误消息,并提供更多关于为什么
cv2.HoughCircles()使用单通道输入的信息。答案很长,但这是你的错:你的问题让我很好奇:)
标签: python opencv image-processing computer-vision hough-transform