移动侦测

Moving detection

我正在使用以下代码来检测圆圈:

gray = cv2.GaussianBlur(gray, (5, 5), 0);
gray = cv2.medianBlur(gray, 5)

kernel = np.ones((2, 2), np.uint8)
gray = cv2.erode(gray, kernel, iterations=1)

gray = cv2.dilate(gray, kernel, iterations=1)
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1, 200,
                           param1=100, param2=50, minRadius=0, maxRadius=150)


if circles is not None:
    # Convert the (x,y) coordinate and radius of the circles
    circles = np.round(circles[0, :]).astype("int")

    # Loop over the  (x,y) coordinate and radius of the circles
    for (x, y, r) in circles:
        # Draw the circle in the output
        cv2.circle(fancy_frame, (x+x1, y+y1), r, (0, 255, 0), 4)

但是,当我检测到时,圆圈在跳动。我该如何解决这个问题?有没有haar或者svm可以检测到?

这是我得到的输出:

[![输出][1]][1]

我想检测实时视频中的所有圆圈

您的代码看起来不错,很可能您只需要调整一下 HoughCircles parameters

首先降低 dp 参数,它应该会给你更多的检测。我 运行 houghcircles.py 来自图像上的 OpenCV 示例文件夹,它检测到其余大部分圆圈:

$ python houghcircles.py your_image.png

圆的 Hough 检测计算量很大,因此可能很难实时 运行。此外,您图像上的 "circles" 远非完美,这对算法来说并不容易。考虑训练神经网络来检测这些特征。