- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用图中所示的符号在 matlab 上实现 Freeman Chain Code [4 adjacency]:
我的代码为我测试过的多个小矩阵提供了正确的链码。但是,当我在我的实际图像文件上运行代码时,我遇到了一些连接组件的无限 while 循环。我的意思是无限循环,它不会只在两点之间循环,而是会继续遍历组件而不会到达起点。
我会在这里解释这个方法。
我的连通分量是4邻接的,所有像素在矩阵中都被标记为“标签”。
我从组件最左上角的第一个像素 (x,y) 开始,并使用以下规则遍历:我最初的遍历 (xT,yT) 是从左到右的。 horDir = 0,因为 0 代表右边。
while(true)
if (horDir == 0)
go UP, or RIGHT, or DOWN, or LEFT (adjust x,y)
if (went LEFT)
horDir = 2
else
go DOWN, or LEFT, or UP, or RIGHT (adjust x,y)
if (went LEFT)
horDir = 0
if (xT,yT == x,y)
break;
当我决定在任何位置移动时,我确保我的最后一个移动不是相反的,以避免无限循环。例如,如果我通过 0 移动到达 (x,y),我的代码确保我在检查 1 和 3 移动后进行 2 移动,所以我认为这不是导致我进入无限循环的原因。
如有任何见解,我们将不胜感激。如果需要,我可以发布我的完整代码,但是阅读起来会非常乏味。
最佳答案
按照所示的算法in this answer to a somewhat related question ,在 my blog here 上有进一步描述.
它执行 8 连接链代码,但很容易将该代码调整为 4 连接链。
关于algorithm - 弗里曼链码无限循环[4-邻接],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47001899/
问题是:如何使用 networkx 计算图的特征向量集中度? (例如,不是针对单个节点,而是针对比较节点的整个图,使用 Freeman 的方法来执行此操作)。 我需要比较许多不同的图表,我希望使用四种
我是一名优秀的程序员,十分优秀!