繁体   English   中英

Python OpenCV 霍夫圆返回无

[英]Python OpenCV Hough Circles returns None

在将 Hough Circles 合并到我正在尝试编写的跟踪程序的主要代码中之前,我试图找出 Hough Circles,但我似乎无法从圈子中得到任何东西,但None 我使用孟加拉国旗作为我的形象,因为它很简单而且很容易被发现。 这是我的代码:

import numpy as np
import cv2


img = cv2.imread('Capture.PNG')

grayput = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

circles = cv2.HoughCircles(grayput, cv2.cv.CV_HOUGH_GRADIENT, 1, 20, param1 =50, param2 =10, minRadius=10, maxRadius=40)
print (circles)

    # need circles 
if circles is not None:
    # convert the coord. to integers
    circles = np.round(circles[0, :]).astype("int")

    # loop over the (x, y) coordinates and radius of the circles
    for (x, y, r) in circles:
        # draw the circle in the output image
        cv2.circle(img, (x, y), r, (0, 0, 0), 4)


cv2.imwrite("image.PNG",img)

以下代码将为您提供非 None圈子:

import numpy as np
import cv2

img = cv2.imread("../images/opencv_logo.png", 0)
img = cv2.medianBlur(img,5)
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
cv2.imshow("grayscale", cimg)
cv2.waitKey(0)

circles = cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,20,
                                    param1=50,param2=30,minRadius=0,maxRadius=0)
print (circles)

确实,输出是:

[[[  45.5         133.5          16.50757408]
  [  97.5          45.5          16.80773544]
  [ 147.5         133.5          16.32482719]]]


注意:该代码段使用以下内容作为其输入图像:

在此处输入图片说明

通过反复试验,我能够将 param1 和 param2 操纵到 cv2.HoughCircle output 返回 numpy.ndarray 的位置。 如果不满足 HoughCircle param1 和/或 param2 阈值,它似乎返回 None 。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM