霍夫直线检测python 不调用opencv
时间: 2023-10-16 16:09:42 浏览: 160
霍夫直线检测是一种计算机视觉算法,用于在图像中检测出直线。虽然OpenCV库中提供了HoughLines函数来实现霍夫直线检测,但是你也可以使用其他Python图像处理库来实现该算法,例如Pillow、scikit-image等。
以下是使用scikit-image库实现霍夫直线检测的示例代码:
```python
from skimage.transform import probabilistic_hough_line
from skimage.feature import canny
from skimage.io import imread, imshow
import matplotlib.pyplot as plt
# 读取灰度图像
image = imread("image.jpg", as_gray=True)
# 边缘检测
edges = canny(image, sigma=2.0, low_threshold=0.55, high_threshold=0.8)
# 霍夫直线变换
lines = probabilistic_hough_line(edges, threshold=30, line_length=5, line_gap=3)
# 绘制直线
fig, ax = plt.subplots()
ax.imshow(image, cmap=plt.cm.gray)
for line in lines:
p0, p1 = line
ax.plot((p0[0], p1[0]), (p0[1], p1[1]), '-r')
plt.show()
```
在上面的代码中,我们首先使用scikit-image的canny函数进行边缘检测,然后使用probabilistic_hough_line函数进行霍夫直线变换,最后使用matplotlib绘制检测出的直线。
阅读全文