cv2库的hough直线检测代码
时间: 2024-09-27 21:06:48 浏览: 31
`cv2`库中的Hough变换是一种用于检测图像中线条的数学方法,特别适合边缘检测后的二值图像。在Python的OpenCV中,`cv2.HoughLinesP()`函数常用于进行Hough线检测。以下是一个简单的例子,展示了如何使用这个函数找到图像中的直线:
```python
import cv2
import numpy as np
# 读取图像
image = cv2.imread('image_path.jpg', 0) # 将彩色图像转换为灰度图像
# 进行边缘检测(例如Canny算子)
edges = cv2.Canny(image, low_threshold=50, high_threshold=150)
# 使用霍夫变换寻找直线
lines = cv2.HoughLinesP(edges, rho=1, theta=np.pi/180, threshold=100,
minLineLength=100, maxLineGap=20)
# 如果有检测到线条
if lines is not None:
for line in lines:
x1, y1, x2, y2 = line[0]
cv2.line(image, (x1, y1), (x2, y2), (0, 255, 0), 2) # 红色表示检测出的直线
else:
print("No lines detected.")
# 显示原始图像和检测结果
cv2.imshow('Original Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,`rho`是距离增量,`theta`是角度分辨率,`threshold`是投票阈值,`minLineLength`和`maxLineGap`分别指定了最小长度和最大空隙。
阅读全文