云计算期末大作业 论文图像复用的机器自动检查 魏如蓝 10172100262
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

40 lines
874 B

# 正则化图像
def regularizeImage(img, size = (8, 8)):
return img.resize(size).convert('L')
# 计算hash值
def getHashCode(img, size = (8, 8)):
pixel = []
for i in range(size[0]):
for j in range(size[1]):
pixel.append(img.getpixel((i, j)))
mean = sum(pixel) / len(pixel)
result = []
for i in pixel:
if i > mean:
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 calaHashSimilarity(img1, img2):
img1 = regularizeImage(img1)
img2 = regularizeImage(img2)
hc1 = getHashCode(img1)
hc2 = getHashCode(img2)
return compHashCode(hc1, hc2)
__all__ = ['calaHashSimilarity']