0

我正在做虹膜识别,我有 2 个虹膜阈值图像。如何使用 Python 在 2 个图像之间进行汉明距离?谢谢

在此处输入图像描述

这里有极坐标变换之前的原始图像:

在此处输入图像描述

和代码:

img_crop1 = cv.imread('crop_1.png')
    polar_img = cv.warpPolar(
        img_crop1, (256, 1024), (self.iris_1[0], self.iris_1[1]), self.iris_1[2] * 2, cv.WARP_POLAR_LINEAR)
    # Rotate it sideways to be more visually pleasing
    polar_img = cv.rotate(polar_img, cv.ROTATE_90_COUNTERCLOCKWISE)

    # crop image
    polar_img = polar_img[int(polar_img.shape[0] / 2)
                          : polar_img.shape[0], 0: polar_img.shape[1]]
    polar_img = cv.cvtColor(polar_img, cv.COLOR_BGR2GRAY)

    _, threshold = cv.threshold(polar_img, 100, 255, cv.THRESH_BINARY)
    cv.imwrite("foreground.png", threshold)
4

2 回答 2

1

我将假设您有 2 个阈值图像imageTH_1imageTH_2即我们有二进制图像,0&1分别代表黑色和白色。

首先将图像展平,使它们现在是一维数组,

import numpy as np

flat_1 = imageTH_1.flatten()
flat_2 = imageTH_2.flatten()

现在您可以使用Scipy 的汉明距离计算器

from scipy.spatial import distance

ham_dist = distance.hamming(flat_1, flat_2)
于 2021-12-06T19:33:25.827 回答
0

以下应该有效: sum(im1 xor im2)

于 2021-12-06T16:40:08.927 回答