我试图在MATLAB(特别是)中对图像中的对象进行形状分析.为此,我找到了边界像素.对于每个边界像素,我使用8邻域理论计算它的邻居.现在我正在计算一个点到它的唯一一个邻居的切线(取决于我如何选择顺时针或其他方式).如果每个像素恰好有两个邻居,我的算法工作正常.对于此图中显示的形状(顺序为9 X 15像素).
但如果一个像素的邻居超过2个,那么我的算法就会混淆.例如,如(9×15像素的顺序).
我想用顺时针或逆时针方向的相邻像素取每个边界像素的切线,如果你注意到第二个图像,这是有效的边界图像,如果我在顺时针方向移动,那么红色像素的邻居将是绿色和邻居顺时针方向的绿色为"1","1"的邻居为"2"但是我不能回到蓝色和棕色的像素,我无法访问并获取每个边界像素与其相邻像素的切线.
我已经学习了图形的节点访问算法,你可以在其中维护队列或堆栈,但在这种情况下,我不仅要访问每个像素,还要根据我正在移动的方向采用只有右邻居像素的每个像素的切线.
这是一个示例问题,类似的问题可能以其他方式发生,所以我试图为它生成一些通用算法.我将感谢你的帮助.谢谢.