我有多个带有 1 个波段/通道的图像。这是一个 RGB 图像,然后我只有蓝色波段/通道。换句话说,多个一维数据集,或多个一维数组。
我想统计比较每对图像,其中一对意味着两个连续的图像。
每个图像包含大约50,000 个像素或值。这意味着一个可以有 50,345 个值和其他 50,433 个值,因此值的数量没有显着差异,但并不总是相同,因此任何基于相等数组的方法在这里都不够用。这也意味着坐标中的像素,图像(或数组)#1 中的 x,y 不必对应于图像#2 中相同位置的像素。
让我们看这两个例子(其中每种颜色对应于不同的图像或值数组):
用非统计的方式来说,蓝色和红色是相似的,而红色和绿色是不同的。
我想执行一个统计测试来量化这种差异,然后我可以选择一个阈值并相应地决定这些对于我的应用程序是否足够相似。
我的问题是 - 假设分布与您在示例中看到的相似,这意味着分布不是 100% 高斯分布,那么哪种统计测试或模型或方法就足够了。
t 检验和 z 检验在这里不起作用,因为自由度很大,因此 p 值为 0,例如我所做的一个(许多)t 检验变体:
stats.ttest_rel(img1,img2,nan_policy='omit')
>>> Ttest_relResult(statistic=-90.27773456178737, pvalue=0.0)
stats.ttest_ind(img1,img3,nan_policy='omit',equal_var=False)
>>> Ttest_indResult(statistic=360.2704559875767, pvalue=0.0)
我想也许可以尝试计算数据集之间的距离或计算两个数据集之间的重叠直方图区域(因为它似乎比比较平均值更好)但我不确定哪种方法(最好在 Python 中)适合这样的任务。
目前,我无法量化或定义我的应用程序的“相似性”。一旦我有一个可以量化相似性的数字,我将能够做到这一点,然后我将不得不检查更多示例,看看哪个阈值适合我。因此,我不需要对相似/不相似问题的答案,而是想得到关于如何量化这种相似性的答案。我的最终目标(这不是这里的问题) - 是得到一个真/假的结果。即,这些数据集是否相似(真)或不相似(假),基于将量化相似性的值(这是我的问题)。
我知道我的问题有点像在黑暗中拍摄,但这是因为我不确定该走哪条路——我应该比较方法吗?方差?直方图的面积。
最后一件事:我希望能够自动化解决方案,因为我有很多这样的配对数据集,所以目视检查在这里不起作用。