0

我正在尝试在模拟显示器的视频中检测时钟指针并提取它指向​​的值。为此,我将 Python 与 OpenCV 一起使用。

我基本上做的是:

  1. 我正在使用高斯模糊来降低当前图像中的噪点。
  2. 我使用 Canny Edge Detection 过滤边缘
  3. 我应用概率霍夫线变换

它的代码:

def detect_clock_hand(img, center):
    # Convert to gray
    gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)

    # Apply gaussian blur
    blur = cv2.GaussianBlur(gray, (11, 11), 0, 0)

    # Apply sobel edge detection
    edges = cv2.Canny(blur, 30, 40)

    # Apply HoughTransform
    lines = cv2.HoughLinesP(edges, 10, np.pi / 180, 5, 15, 50)

    #Filter lines in a given radius
    filtered_edges = util.filter_edges(lines, center)

我玩了很多参数来改善结果。当前状态如下所示:

  1. 精明的 精明的

  2. 霍夫 霍夫线变换P

如您所见,结果只是标记了时钟指针的一部分。从 Canny Edge Detection 我可以看出,这部分并不是一个“好”的部分。我想知道我是否错误地使用了霍夫变换,或者边缘检测实际上没有我想象的那么好。由于我是图像处理的新手,我会很感激任何建议。

4

0 回答 0