我有几个轮廓由我的图像中的几个黑色区域组成。与这些黑色区域直接相邻的是一些不属于我的轮廓的较亮区域。我想将这些更亮的区域添加到我的黑色区域,并因此在OpenCv中扩展我的轮廓。
有没有方便的方法来扩展轮廓?我考虑过从用cv::Sobel
创建的渐变图像中查看亮度变化,并延伸至渐变再次变化,这意味着像素的强度将返回到图像的黑色区域和明亮区域。在OpenCv中扩展轮廓
谢谢!
下面是示例图像。第一张图片显示的是原始图像,第二张提取的轮廓使用Canny & findContours,最后一张Sobel-Gradient强度图像的同一区域。 我想要在Contour的第一个图像中包含明亮的边界。
更新:我现在已经使用了一些形态学操作上Sobelgradients并添加周围的轮廓(见下图)。下一步可能是找到相邻的一对红色轮廓,但看起来非常像浪费游戏时间,实际上不得不搜索直接相邻的轮廓。任何更好的想法?
更新2:我现在的解决办法是寻找仿型梯度(红色)轮廓围绕我(紫色)的轮廓边界框,并挑选一个正确方向&大小。这适用于梯形轮廓,其中形态操作关闭如图3所示的“上升”和“下降”梯度区域。但对于上图中点亮区域更宽的情况,这仍然是一个不好的解决方案。任何想法仍然非常感谢,谢谢!
请提供样本图片! –
好的,在我的问题中添加了一些图片和说明。 – moatilliatta