为了便于论证,我们假设这两个图像具有相同数量的黑色像素。
我想计算黑色像素的“浓度”。 IE。图像 1 比图像 2 具有更高的“索引”,因为黑色像素比图像 2 中的更加“分组”或集中。
直觉上我希望指标或函数已经存在。我做了一些搜索,但找不到我要找的东西。
应用到实际示例中,我将使用 kmeans 将颜色数减少到 15 左右,并将该计算应用于每种颜色。我不认为直方图会有帮助,因为我假设相同数量的黑色像素(如果我错了,请纠正我)。
我能想到的一种方法是:
1. 过滤颜色
2.使用轮廓来定义 Blob
3. 计算每种颜色 Blob 的大小和数量
4. 量化每种颜色的可比指标
我不是图像库方面的专家,所以如果您能提供一些关于如何实现它的指导,那就太好了。
有什么建议吗?
非常感谢!
最佳答案
我认为您正在走向 Granulometry 领域由巴黎一家矿业公司开发,用于确定岩石中矿物颗粒的大小,从而确定采矿是否可行。
无论如何,历史已经足够了。如果您使用磁盘作为结构元素对每个图像执行“形态学闭合”,并逐渐增加半径,您将获得图像中存在的 Blob 大小分布的度量.
现在没有时间编写 Python,但下图并排显示了您的图像,并用红色竖条将它们分开。在视频的每个连续帧中,我将圆盘形结构元素的半径增加 1 个像素。第一帧的半径为1,最后一帧的半径为39:
希望您能看到较大、较集中的形状比较小的形状停留的时间更长。
关于python - 如何测量图像中的颜色接近度/浓度? (首选Python解决方案),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52170588/