hough变换PYTHON代码
时间: 2024-12-28 09:19:50 浏览: 7
### Hough 变换 Python 代码实现
对于图像处理中的几何形状检测,Hough变换是一个非常有效的工具。此方法能够识别图像内的直线、圆形以及其他形态的结构。
在Python中利用OpenCV库可以方便地执行Hough变换操作。下面展示了一个具体的实例,通过`cv2.HoughLinesP()`函数来检测并描绘图片中存在的线段[^3]:
```python
import cv2
import numpy as np
# 加载原始图像文件
img = cv2.imread('example_image.jpg')
# 将彩色图转换成灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 使用Canny算子提取边缘特征
edges = cv2.Canny(gray, 50, 150, apertureSize=3)
# 调用HoughLinesP函数寻找可能存在的线段
min_line_length = 100 # 设置最短线长度阈值
max_line_gap = 10 # 设定允许的最大断开距离
lines = cv2.HoughLinesP(edges,
rho=1,
theta=np.pi / 180,
threshold=100,
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), color=(0, 255, 0), thickness=2)
# 输出带有标记线条的新图像
cv2.imwrite('output_with_lines.png', img)
```
上述脚本首先读取了一张名为`example_image.jpg`的照片,并将其颜色空间由BGR转为灰阶表示形式;接着运用了Canny算法获取边界信息作为后续分析的基础数据源;最后借助于概率霍夫变换(`cv2.HoughLinesP`)定位到了符合条件的线段,并以绿色实线的形式标注出来保存至新创建的PNG格式文档内。
阅读全文