如何使用概率霍夫变换检测线

时间:2019-08-21 19:22:08

标签: python opencv computer-vision hough-transform

我试图使用OpenCV中的HoughLinesP(概率霍夫线变换)获取铣刀刀片所形成的线的坐标,但到目前为止,我无法使它起作用。

我尝试了以下方法:

import cv2
import matplotlib.pyplot as plt
import numpy as np

img = cv2.imread('image.bmp')

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

edges = cv2.Canny(gray, 150, 220)

lines = cv2.HoughLinesP(edges, 6, np.pi / 60, 5)

lined = img.copy()

for x1, y1, x2, y2 in lines[0]:
    cv2.line(lined, (x1, y1), (x2, y2), (0, 0, 255), 2)

您(几乎)可以在这里看到: matplotlib image

HoughLinesP返回的线段不会延伸到整个刀片的长度。

这是Canny边缘检测输出,以及我正在关注的区域。对我来说,像素似乎是一条直线。霍夫变换功能不应该返回刀片形成的线段吗?

enter image description here

有人对我将如何改善线段的检测有想法吗?

谢谢

原始图片: original image

0 个答案:

没有答案