Matlab - 如何测量二进制图像中黑色的色散?

时间:2013-05-14 20:09:32

标签: image matlab pixels

我正在比较在白色背景上随机洒落的小颜色颗粒的RGB图像。我当前的方法涉及将图像导入Matlab,转换为二进制图像,设置阈值并强制其上方的所有像素为白色。接下来,我正在计算黑色像素的百分比。在将图像相互比较时,%黑色像素的测量值很大;但是,它没有考虑颗粒分散的程度。尽管来自两个不同图像的%黑色可能是相同的,但是图像可能远非相似。例如,假设我有两个图像要比较。两者都显示%黑色像素为15%。在一张图片中,黑色像素随机分布在整个图像中。另一方面,一堆黑色像素位于一个角落,在图像的其余部分非常稀疏。

我可以在Matlab中使用什么来数值量化黑色像素的“展开”是为了比较两个图像?

我还没能把我的大脑包围在这个,并需要一些帮助。非常感谢您的想法/答案。

2 个答案:

答案 0 :(得分:1)

找到一个非常相似的问题的答案 - > https://stats.stackexchange.com/a/13274

基本上,您可以使用从中心点到每个黑色像素的平均距离作为色散的度量。

答案 1 :(得分:0)

我的想法是基于理想加法理论/热力学中使用的平均自由路径()

首先,您必须使用类似bwconncomp。

之类的东西来分离前景对象

平均自由路径是根据您所在地区中心之间的平均距离计算出来的。因此,对于n个区域,您将采用所有n / 2 *(n-1)对,计算所有距离并对它们求平均值。如果平均距离很大,那么你的粒子就会很好地散布。如果它很小,你的物体就会很近。 您可能希望将结果均值乘以n并将其除以边长以获得无量纲数。 (与图像大小无关,与粒子数无关)