gpt4 book ai didi

math - 实现脊检测

转载 作者:行者123 更新时间:2023-12-04 12:02:10 24 4
gpt4 key购买 nike

我正在尝试编写一个脊检测算法,我发现的所有来源似乎都将边缘检测与脊检测混为一谈。现在,我已经实现了 Canny 边缘检测算法,但这不是我想要的:例如,给定图像中的一条线,它会有效地将其转换为双线边缘(因为它会记录两侧的边缘)该行)-我只想让它读取一行。

wikipedia article关于脊检测有一堆数学,但这种对我作为程序员没有帮助(不是说我反对数学,但这不是我的领域,我不明白如何翻译他们的微分方程成代码)。是否有实际实现这一点的好来源?或者,就此而言,有没有好的开源实现?

编辑:这是一个简单的例子。我们从简单的一行开始:

http://img24.imageshack.us/img24/8112/linez.th.png

并运行 Canny 算法得到:

http://img12.imageshack.us/img12/1317/canny.th.png

(你可以看到这里更粗——如果你点击图片,你会看到它真的是两条相邻的线,中间有一个空白)

另外,我是用 C++ 编写的,但这并不重要。但是我想对算法进行编码,而不仅仅是写SomePackage::findRidges()并完成它。

最佳答案

也许你需要考虑清理你已经拥有的线,而不是像 Canny 一样的边缘检测。感觉你应该可以用 image morphology 做点什么,特别是我正在考虑骨架化和最终侵 eclipse 点类型的操作。正确使用这些应该从您的图像中删除任何不是“线条”的功能 - 我相信它们是在英特尔的 OpenCV 库中实现的。

您可以从使用 Canny 过滤器生成的双线恢复单线,使用一次扩张操作,然后进行 3 次侵 eclipse (我在 ImageJ 中尝试过) - 这也应该删除任何边缘。

关于math - 实现脊检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/585160/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com