You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python+OpenCV查找红灰边界黑点位置并判断边界朝向角度

OpenCV对应功能清单

1. 颜色区域分割相关功能

  • 颜色空间转换:cv2.cvtColor(),建议将默认BGR格式转为HSV格式,降低光照对颜色识别的干扰
  • 颜色阈值筛选:cv2.inRange(),分别配置红色、灰色的HSV阈值范围,生成两类区域的二值掩码

2. 边界提取相关功能

  • 轮廓查找:cv2.findContours(),分别提取红色、灰色区域的轮廓,两类区域的公共轮廓即为目标边界
  • 位运算:cv2.bitwise_and(),用于后续过滤非边界区域的黑点

3. 黑点检测相关功能

  • 二值化处理:cv2.threshold(),设置阈值提取图像中的黑色像素点
  • 特征点筛选:如果黑点有固定形态,也可使用cv2.goodFeaturesToTrack()做角点检测,或直接遍历边界区域像素判断像素值即可

4. 边界角度判断相关功能

  • 梯度计算:cv2.Sobel()/cv2.Scharr()计算边界点的x、y方向梯度,配合cv2.phase()直接输出梯度角度,角度接近0°/180°为水平边界,接近90°/270°为垂直边界
  • 直线拟合:cv2.fitLine(),取目标点附近的一小段边界像素拟合直线,通过直线方向向量计算边界角度
核心实现逻辑
  1. 用cv2.imread()加载目标图像
  2. 转换图像到HSV空间,调用cv2.inRange()分别得到红色、灰色区域的二值掩码
  3. 调用cv2.findContours()提取两类区域的轮廓,取重叠部分生成目标边界掩码
  4. 二值化原图提取所有黑色像素,和边界掩码做位与运算,过滤掉灰色区域内部的黑点,得到边界上的目标黑点坐标
  5. 对每个黑点位置,调用梯度计算或直线拟合接口得到对应边界的角度

内容的提问来源于stack exchange,提问作者simone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:18:03