检测非闭合边沿

本文首先介绍边缘检测的一般思路,然后总结一下遇到一些问题时切实可行的解决方案。
  • 在进行传统、简单的边沿检测任务时,可以采取以下思路:
  1. 灰度化
  2. 均值滤波
  3. 二值化
  4. Canny边沿检测
  5. 腐蚀膨胀去除噪声
  6. 查找轮廓
  7. moment求边沿的矩
  8. 根据moment求出质心,可以作为边沿像素坐标(根据实际需求灵活应变)。
  • 根据以上流程,一般可以完成,然而以上第6步,OpenCV自带的函数只能统计闭合的轮廓,万一要检测的轮廓非闭合,那从这一部就开始失效了。我这里是因为边沿上下贯穿整个待检测的ROI,导致的非闭合。

  • 怎么办呢?想了很久。既然只能查找闭合的轮廓,那就把上下两头都用黑色堵上,中间岂不就是一个闭合区域了。

  • 效果展示:可以看出来,白色边沿上下是黑的(本来是贯穿上下,造成非闭合),已经求出中心坐标并且用圆形标注。
    在这里插入图片描述

你可能感兴趣的:(计算机视觉,opencv,边缘检测)