gpt4 book ai didi

algorithm - 关于如何使用 OpenCV 或其他算法删除 png 中的小废弃像素的任何想法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:08:24 25 4
gpt4 key购买 nike

我得到了这样的 png 图片:

enter image description here

蓝色代表透明。而所有的圆圈就是一个像素组。所以,我想找到最大的一个,并删除所有不与最大像素分组的小像素。在这个例子中,最大的是红色色圈,我会保留它。但是绿色和黄色太小了,所以我会把它们去掉。之后,我会有这样的事情:

enter image description here有任何想法吗?谢谢。

最佳答案

如果只考虑物体的大小,使用如下算法:标注物体mask图像的connex分量(所有物体像素为白色,透明像素为黑色)。然后计算连接组件的面积,并过滤它们。在此步骤中,您有一个标签映射和一个授权标签列表。如果有授权标签,您可以读取标签图并通过将每个像素设置为白色来覆盖 mask 图像。

OpenCV好像没有标注功能,但是cvFloodFill可以通过多次调用来做同样的事情:对于每一个未标注的白色像素,调用FloodFill,以此像素为标记。然后,您可以通过为每个新分配的像素分配其标签,将此步骤的结果存储在一个数组(图像大小)中。只要您有未标记的像素,就重复此操作。

否则你可以重新编码二进制图像的连接组件函数,这个算法是众所周知的并且易于实现(也许从 Matlab 的 bwlabel 开始)。

关于algorithm - 关于如何使用 OpenCV 或其他算法删除 png 中的小废弃像素的任何想法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18124905/

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