如何测量图像中的颜色接近度/浓度? (首选python解决方案)

问题描述 投票:1回答:1

考虑下面的2张图片: 图1: a few big black things

图2: lots of smaller black things

为了论证,让我们说这两个图像具有相同数量的黑色像素。

我想计算黑色像素的“浓度”。即图像1具有比图像2更高的“索引”,因为黑色像素比图像2更“分组”或集中。

直观地说,我希望已经存在一个度量或函数。我做了一些搜索,但找不到我要找的东西。

应用于实际示例,我将使用kmeans将颜色数量减少到大约15,并将该计算应用于每种颜色。我不认为直方图会有所帮助,因为我假设有相同数量的黑色像素(如果我错了,请纠正我)。

我能想到的一种方法是: 1.过滤颜色 2.使用轮廓定义blob 3.计算每种颜色的斑点大小和数量 4.量化为每种颜色的可比度量 我不是影像库的专家,所以如果你能提供一些如何实现它的指导,那就太好了。

有什么建议?

非常感谢!

python image colors
1个回答
2
投票

我认为你正朝着Granulometry的领域前进,由一家巴黎矿业公司开发,以确定岩石中矿物颗粒的大小,以确定采矿是否可行。

无论如何,有足够的历史。如果您使用磁盘作为结构元素对每个图像执行“形态学关闭”,逐渐增加半径,您将获得图像中存在的斑点大小分布的度量。

没时间编写Python,但下图显示了您的图像并排显示红色垂直条以分隔它们。在视频的每个连续帧中,我将圆盘形结构元素的半径增加1个像素。第一帧的半径为1,最终帧的半径为39:

enter image description here

希望你能看到更大,更集中的形状比较小的形状更长。

© www.soinside.com 2019 - 2024. All rights reserved.