如果连接两个像素,检查二进制图像的最简单方法是什么? (在Matlab中)

时间:2017-03-30 10:23:56

标签: matlab image-processing binary-image

考虑这个二进制图像:

0 1 0 0 0
0 1 0 0 0
0 1 1 0 0
0 0 0 0 0
0 0 0 1 0

我正在寻找一个带有两个坐标作为参数的函数,以及一个布尔返回值,如果两个像素连接(通过4或8连接),则表示如下:

f([1,2],[3,3]) - >真实的;
f([1,2],[5,4]) - >假;

我知道,必须有一个简单的算法,Matlab中有一些函数,它们可以做更多的事情(bwdist,bwconncomp),但我正在寻找一种更简单的方法。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您的替代方案是从一个像素填充填充,然后检查另一个像素,标记所有连接的组件并检查标签,或进行A *寻路。如果大多数对靠近在一起但是大型形状,A *可能会产生最快的结果,它也是三种方法中最复杂的。

Matlab内置了标签连接组件。这不是一个特别复杂的算法。如果你检查我的二进制图像处理库,你可以在C中找到所有三种方法的实现。

https://github.com/MalcolmMcLean/binaryimagelibrary