寻找非二值图像的轮廓

3
我正试图理解计算图像轮廓的概念,有许多不同类型的算法存在。有人说应该在边缘检测之后应用轮廓。有信息表明可以在灰度图像上计算轮廓,而其他人则说只能在二进制图像上计算。我想了解彩色图像上轮廓跟踪的过程,并希望理解更一般的概念:
1. 是否需要从要检查的自然图像中首先"剪切"出对象?
2. 图像需要是二进制的,其中对象是轮廓格式吗?
3. 将图像转换为二进制图像时,会损失许多数据,如何补偿这一点?
4. 对象如何在自然场景中被识别?
如果有任何文档或个人知识的链接,将不胜感激!我似乎找不到关于这些概念的太多信息。此外,如果有一个具有优秀文档的特定轮廓算法,那么一个链接将非常有帮助。谢谢!

在轮廓提取中,目标是找到一些“目标轮廓”,其中包括几个任务,其中一个基本任务是在二进制图像中查找连接组件(以及其他连接组件内的连接组件),这是由cv :: findContours执行的任务。因此,您的任务是以某种方式对图像进行二值化,使得所需的轮廓与其余部分分离开来。这可能听起来像是您必须自己解决更困难的工作(如何分离图像中的对象),但findContours仍然是一个强大的工具。 - Micka
1个回答

2

我终于意识到,我混淆了两个密切相关的概念,导致了一些混乱。边界跟踪和轮廓查找是有区别的。在边界跟踪中,我发现需要跟踪的对象必须是二进制图像。如果对象是自然场景的一部分,则应将其从自然场景中分离出来并单独处理。在跟踪边界后,结果就是对象的轮廓(只有图像的轮廓而没有其他内容)。至于对象内的边缘,一些边界跟踪算法会考虑边缘,而另一些则不会。这只是找到轮廓的一种方法。

我的目标是创建一个包含丢失边界的图像的轮廓(解决计算机视觉和完形原理中闭合原则的问题)。边界跟踪无法解决这个问题。相反,我看了看主动轮廓模型(蛇),它将根据图像中的能量允许创建新的边界并勾画现有边界。这满足了我的目标,既能找到图像的轮廓,又能封闭打开的边界。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接