【发布时间】:2020-11-17 08:05:19
【问题描述】:
实现精明边缘检测器后,我必须将结果与人类检测到的结果进行比较,并计算精度和召回率(通过比较每个像素)。两个图像都是二进制的。 问题是,我必须允许图像之间大小为 1 的像素偏移。这意味着如果我在 E(i,j) 中的值为 1 并且参考图像在 GT(i-1,j) 中具有它,那么仍然会有匹配。这种偏移对于每个像素都是单独的,并且可以在任何方向上。 对于实现,我必须使用掩码或函数 cv2.dilate(),但由于通过使用 dilate 我们打开了更多像素,因此每个像素都可以与参考图像中的一个匹配,因此为每个原始图像创建多个匹配项像素,这是不允许的。 有谁知道如何在不为每个像素创建多个匹配的情况下允许像素移位?
【问题讨论】:
-
你能发布 E 和 GT 的示例参考图像吗?
-
根据我从您的问题中了解到的情况,使用 3x3 掩码,所有 1 运行在所有 GT(i, j) 上对应的 E(i, j) 应该能够实现您正在寻找的东西。
标签: python image-processing edge-detection canny-operator image-comparison