|
|
- # 正则化图像
- def regularizeImage(img, size = (9, 8)):
- return img.resize(size).convert('L')
-
- # 计算hash值
- def getHashCode(img, size = (9, 8)):
-
- result = []
- for i in range(size[0] - 1):
- for j in range(size[1]):
- current_val = img.getpixel((i, j))
- next_val = img.getpixel((i + 1, j))
- if current_val > next_val:
- result.append(1)
- else:
- result.append(0)
-
- return result
-
- # 比较hash值
- def compHashCode(hc1, hc2):
- cnt = 0
- for i, j in zip(hc1, hc2):
- if i == j:
- cnt += 1
- return cnt
-
- # 计算差异哈希算法相似度
- def caldHashSimilarity(img1, img2):
- img1 = regularizeImage(img1)
- img2 = regularizeImage(img2)
- hc1 = getHashCode(img1)
- hc2 = getHashCode(img2)
- return compHashCode(hc1, hc2)
-
- __all__ = ['caldHashSimilarity']
|