主要两种比对:1:png与png对比 2:svg与svg对比
我的实现办法如下,但是不够准确,各位有没有更好的Python实现方法,请教一下,谢谢。
#判断文件大小一样
def checkImgIsSameBySize(img1, img2):
nSize1 = os.path.getsize(img1)
nSize2 = os.path.getsize(img2)
if nSize1 == nSize2:
return True
else:
return False
def checkImgIsSameByImageChops(img1, img2):
#两个图像之间逐像素差异的绝对值
image_one = Image.open(img1)
image_two = Image.open(img2)
try:
diff = ImageChops.difference(image_one, image_two)
# 图片间没有任何不同则直接退出(只是轮廓相同)
if diff.getbbox() is None:
return True
else:
return False
except ValueError:
#表示图片大小和box对应的宽度不一致
return False
#判断两个图像文件是否相同()
def checkImgIsSameByCV(img1, img2):
image1=cv2.imread(img1)
image2=cv2.imread(img2)
try:
check=cv2.subtract(image1, image2)
out=not numpy.any(check)
if out==True:
return True
else:
return False
except ValueError:
return False
def checkImgIsSame(img1,img2):
if checkImgIsSameBySize(img1,img2):
if checkImgIsSameByImageChops(img1,img2):
if checkImgIsSameByCV(img1,img2):
return True
else:
return False
else:
return False
else:
return False
if __name__ == "__main__":
checkImgIsSame("d:/test1.png","d:/test2.png")