opencv - 查找非二进制图像的轮廓

标签 opencv contour image-segmentation

我目前正在努力思考计算图像轮廓的想法。存在许多不同类型的算法。有人说应该在边缘检测之后应用轮廓。有信息表明可以在灰度图像上计算轮廓,而其他人则说只能在二值图像上计算轮廓。我正在寻找在彩色图像上进行轮廓追踪的过程。我想了解更一般的概念:

是否先从要检查的自然图像中“切出”一个对象?

如果对象是剪影格式,图像是否需要是二进制的?

将图像转换为二值图像时可能会丢失大量数据,如何补偿?

在自然场景的栖息地中物体是如何被识别的?

任何指向文档或个人知识的链接都将不胜感激!我似乎找不到关于这些概念的太多信息。此外,如果有一个特定的轮廓算法具有出色的文档,那么链接将非常有帮助。谢谢!

最佳答案

我终于意识到我将两个密切相关的概念混在一起,这引起了一些困惑。边界追踪和寻找轮廓是有区别的。在边界追踪中,我发现是的,要追踪的对象需要是二值图像。如果对象是自然场景的一部分,则应将其从自然场景中移除并单独处理。追踪边界后,结果就是对象的轮廓(只是图像的轮廓,仅此而已)。至于对象内的边缘,一些边界跟踪算法会考虑边缘,而另一些则不会。这只是寻找轮廓的一种方法。

我的目标是创建包含缺失边界的图像轮廓(解决计算机视觉问题和封闭的格式塔原则)。边境追踪不会解决这个问题。相反,我查看了一个事件轮廓模型(蛇),它允许创建新边界并根据图像内的能量勾勒出现有边界。这满足了我找到图像轮廓以及关闭打开的边界的目标。

关于opencv - 查找非二进制图像的轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36683493/

相关文章:

algorithm - 查找两个图像之间的图像子集

python - OpenCV如何平滑轮廓,降低噪声

matlab - 如何在分水岭图像分割中使用Kinect深度数据

c++ - 以下哪个质心是图像中物体的质心?

image-processing - 最佳分割算法

algorithm - 从二进制卷中分离对象

c - 为什么 opencv 中的 FindContours 函数会找到两个轮廓而不是图像中的一个轮廓,如下所示?

python - 通过外部按钮管理摄像机

C++ OpenCV cvMAT 回放

python - 找到图像中物体和背景颜色几乎相同的轮廓