Python OpenCV实现角点检测与水平连线绘制

陆景行
陆景行
发布时间:2026-10-14| 2人浏览过
原创

本文介绍如何利用Python和OpenCV库实现图像角点检测及基于角点的水平连线功能。通过goodFeaturesToTrack算法提取角点坐标,计算最大最小Y值,并绘制两条水平直线。代码完整展示了从读取图像、灰度转换到角点标记及连线绘制的完整流程,适用于图像特征处理场景。

原始图像展示

首先展示原始输入图像,作为后续处理的基准素材。

角点检测与标记

接下来执行角点检测步骤。利用代码片段中的逻辑,通过cv2.goodFeaturesToTrack函数在灰度图上提取特征点。代码将检测到的角点数量限制为100个,质量因子设为0.01,最小距离设为10。随后,通过np.int0将浮点坐标转换为整数,并重塑为二维数组格式。最后,遍历每个角点坐标(x, y),使用cv2.circle在原图上以绿色实心圆标记这些角点位置,半径为10像素。


points = cv2.goodFeaturesToTrack(gray, 100, 0.01, 10)
points = np.int0(points).reshape(-1,2)

for point in points:
  x, y = point.ravel()
  cv2.circle(img, (x, y), 10, (0, 255, 0), -1)

基于角点的水平连线绘制

完成角点标记后,进行连线操作。参考中的代码实现,首先从检测到的角点集合中提取Y坐标的最小值y1和最大值y2。接着,使用cv2.line函数绘制两条水平直线:一条位于y1高度,另一条位于y2高度。线条从图像左侧x=0处延伸至右侧x=1000处,颜色为绿色,线宽设置为3,线条类型指定为8(抗锯齿)。这一步骤旨在连接角点分布的上下边界。


cv2.line(img, (0, y1), (1000, y1), (0, 255, 0), thickness=3, lineType=8)
cv2.line(img, (0, y2), (1000, y2), (0, 255, 0), thickness=3, lineType=8)

完整代码实现

以下是完整的实现代码,整合了图像读取、灰度转换、角点检测、标记绘制以及水平连线功能。代码由提供,包含必要的import语句及注释信息。运行该代码将显示处理后的图像,并按下任意键关闭窗口。


""" 
@author: qq群686070107
""" 
import cv2
import numpy as np
img=cv2.imread("1.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
points = cv2.goodFeaturesToTrack(gray, 100, 0.01, 10)
points = np.int0(points).reshape(-1,2)

for point in points:
  x, y = point.ravel()
  cv2.circle(img, (x, y), 10, (0, 255, 0), -1)


y1 = min(points[:,1])
y2 = max(points[:,1])

## small and big enough 
cv2.line(img, (0, y1), (1000, y1), (0, 255, 0), thickness=3, lineType=8)
cv2.line(img, (0, y2), (1000, y2), (0, 255, 0), thickness=3, lineType=8)

cv2.imshow("img", img)
cv2.waitKey(0)

至此,关于Python OpenCV角点检测及连线功能的实现代码介绍完毕。如需了解更多相关技术内容,建议查阅本站往期文章或继续浏览后续更新。感谢支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。