对图像进行霍夫变换代码示例
时间: 2024-10-17 16:11:55 浏览: 45
对图像进行霍夫变换的具体代码因语言和库的不同而有所差异,这里以Python的OpenCV库为例,提供一个基本的直线检测的霍夫变换代码片段:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg', 0) # 图像灰度化
# 设置霍夫线参数
rho = 1 # 检测直线的离散距离间隔
theta = np.pi / 180 # 角度分辨率,360度分解成多少份
threshold = 50 # 投票计数阈值,超过这个值就认为找到一条线
min_line_length = 50 # 线段长度最小值
max_line_gap = 10 # 连接线段的最大间隙
# 执行霍夫变换
lines = cv2.HoughLinesP(img, rho, theta, threshold, np.array([]), minLineLength=min_line_length, maxLineGap=max_line_gap)
# 如果找到线条
if lines is not None:
for line in lines:
x1, y1, x2, y2 = line[0]
cv2.line(img, (x1, y1), (x2, y2), (0, 0, 255), 2) # 绘制检测到的线
# 显示原始图像和处理后的图像
cv2.imshow("Original", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码首先读取图像并将其转换为灰度模式,然后设置霍夫变换的参数,接着进行线检测,并在原始图像上绘制出检测到的直线。最后显示原始图像和处理过的图像。
阅读全文