龍龖龘龖龍 2023-10-16 22:24 采纳率: 0%
浏览 25
已结题

关于#python#的问题:激光十字线检测(相关搜索:自适应)

目前在识别激光十字线中心时遇到了困难
激光十字线是这个样子,在中心线周围会有光晕

img


想要达到的结果是下面这样,识别四个交点,然后计算围成的形心作为最后的结果

img


但是在做的过程中使用了自适应阈值进行二值化得到如下结果

img


后续处理就没有了头绪

最开始的版本是进行二值化

img


膨胀腐蚀

img


使用cv2.ximgproc.thinning函数进行图像细化

img


接着进行霍夫直线检测,但是效果不理想,请问各位有没有好的思路可以传授一下

  • 写回答

13条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2023-10-16 22:26
    关注
    获得0.75元问题酬金

    引自强大而免费的微信小程序:皆我百晓生。如有帮助,还望采纳。


    针对激光十字线识别的问题,你可以尝试以下的处理步骤:

    1. 图像预处理:

      • 使用高斯平滑来降噪,减少光晕的干扰。
      • 将图像转换为灰度图像。
    2. 自适应阈值二值化:

      • 使用自适应阈值二值化方法,如cv2.adaptiveThreshold()函数,来将图像二值化。调整自适应阈值二值化方法的参数,以适应不同图像中光晕的情况。
    3. 轮廓检测:

      • 使用cv2.findContours()函数来检测图像中的轮廓。
      • 根据轮廓的形状、面积等特征,筛选出可能是十字线的轮廓。
    4. 过滤轮廓:

      • 根据轮廓的几何特征,如边数、凸包等,过滤掉不符合要求的轮廓。
      • 根据轮廓的层次结构,筛选出构成交点的子轮廓。
    5. 计算形心:

      • 对于符合要求的轮廓(构成交点的子轮廓),使用cv2.moments()函数计算轮廓的形心。
    6. 绘制结果:

      • 将计算得到的形心绘制在图像上,以显示最终的结果。

    此外,还有一些其他的方法可以尝试:

    • 使用霍夫曼圆变换(cv2.HoughCircles()函数)来检测激光十字线中心的圆形。
    • 使用形态学操作(如开操作)来进一步处理二值图像,消除干扰。

    需要根据具体的图像情况和需求,调节参数、尝试不同的方法,才能得到较好的结果。

    评论

报告相同问题?

问题事件

  • 系统已结题 10月24日
  • 创建了问题 10月16日