比较两个图像的方法

Method for comparing two images

我有两张相同的图片。一个由算法标记,另一个(已经标记)用作基本事实。我可以像下面的例子一样从图像中分割标记。

GROUND_TRUTH

ALGORITHM

我的问题是,将算法产生的标记与真实情况进行比较的最佳方法是什么?

到目前为止,我已经尝试从地面实况中减去算法标记的图像并计算剩余像素以使用等式success=1-(剩余像素数减法后的像素数)/(ground truth的像素数)

但是我不太相信这种方法,尤其是在算法做的标记和ground truth在不同地方的情况下。在该示例中,算法标记的位于顶部的部分未在比较中考虑。我该如何处理?

SUBSTRACTED

我正在使用 openCV 和 python 处理图像。

你有二进制掩码。

计算intersection over union ("IoU").

numpy本身和OpenCV都有办法计算两个布尔数组的逻辑and/or,也都有办法计算非零的个数。