将白色像素区域合并为单个区域opencv c ++

Posted

技术标签:

【中文标题】将白色像素区域合并为单个区域opencv c ++【英文标题】:unite white pixels region into a single region opencv c++ 【发布时间】:2011-12-14 11:06:01 【问题描述】:

我正在使用 opencv,我需要从许多区域开始获取单个白色像素区域,如图所示:

我想要得到的是一个单一的白色像素区域。可以是某些区域必须丢弃,但又是另一点。 现在我想知道是否有办法联合所有区域,即使在非凸多边形中也是如此,因为它可以在以后完成。

【问题讨论】:

如果您添加编程语言的标签,您的问题将获得更好的可见性。 这总是一个平方区域吗? 一旦您排除了异常值,它将始终平方。我尝试了 cvfindcontours,但它只在该图像中找到 10 个轮廓,因此该函数看不到某些区域 我没有得到你想要达到的目标。你想把中间的白块和其他块分开吗?还是您想要由白色块周围的所有单个像素勾勒出的区域? 我必须创建一个对所有点进行分组的区域,在这种情况下,除了右边框上的两个点 【参考方案1】:

我知道这可能不是最好的方法,但这是一种方法。

正如您所说,您感兴趣的区域将始终是平方的。我建议你看看 OpenCV 附带的 Square Detector 应用程序。

如果您正在寻找演示,check this answer。

【讨论】:

我会看看,只是一个简单的问题。即使相对于图像边界倾斜,它也能找到一个正方形? 你说的是一个有一些倾斜/旋转的正方形吗?是的。 @andrea 顺便说一句,如果看一下this question,其中一张图片显示了一个区域,该区域周围绘制了一个红色方块。该区域也通过这种技术被检测到,并且它被旋转了。 :)【参考方案2】:

为什么不计算像素的凸包?据我所知,这包含在 opencv 中。

【讨论】:

以上是关于将白色像素区域合并为单个区域opencv c ++的主要内容,如果未能解决你的问题,请参考以下文章

将多字节数组图像数据合并为一个字节数组数据,并将WriteAllBytes合并为单个图像输出

Opencv c ++检测并裁剪图像上的白色区域

如何用matlab计算二值化图中白色区域的像素点个数

opencv进阶1

opencv 怎么把两张图片合并到一起?

将灰度图像中的像素转换为黑色(OpenCV)会导致意外结果?