使用opencv缩小走廊和路径

使用opencv缩小走廊和路径,opencv,javacv,Opencv,Javacv,我有最好的描述为迷宫的图像。重要的特点是它们有我称之为走廊或路径的东西 我试图在不完全封闭任何走廊/路径的情况下缩小这些走廊/路径。我对加工后的走廊的宽度没有严格的要求,我只需要把它们缩小一点。然而,我永远无法完全关闭一个 这是一张未经处理的图像 这是一张在应用高斯模糊后的图像 cvSmooth(img,img,CV_-GAUSSIAN,9) 结果非常好,但我不知道在传入的图像中我的走廊有多宽,它们不一定有这样的直的规则角度的墙,也不一定有一致的走廊宽度,因此这种简单的解决方案肯定会完全阻塞

我有最好的描述为迷宫的图像。重要的特点是它们有我称之为走廊或路径的东西

我试图在不完全封闭任何走廊/路径的情况下缩小这些走廊/路径。我对加工后的走廊的宽度没有严格的要求,我只需要把它们缩小一点。然而,我永远无法完全关闭一个

这是一张未经处理的图像

这是一张在应用高斯模糊后的图像
cvSmooth(img,img,CV_-GAUSSIAN,9)

结果非常好,但我不知道在传入的图像中我的走廊有多宽,它们不一定有这样的直的规则角度的墙,也不一定有一致的走廊宽度,因此这种简单的解决方案肯定会完全阻塞一些走廊

我曾考虑过一次模糊一点,在图像上运行寻路算法以确保我没有关闭走廊,但我认为这太慢了


所以,我正在寻找一种快速的方法来缩小走廊,而不会有完全封闭走廊的风险。

你可以试试这两种

  • 在图像上使用3 X 3的遮罩进行膨胀
    Mat::ones(3,3,CV_8UC1)
    。膨胀比高斯模糊工作得更快…通过膨胀,您知道您已将图像加宽了一个像素级
  • 要检查白色路径区域的连接性,可以使用连接的组件标签…使用一次扫描连接的组件进行更快的标签
  • 您还可以使用白色路径的轮廓来检查连通性。。。 这就是我现在所能想到的
    谢谢,我现在正在计算轮廓。