|
主要两种比对: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") |
阿莫论坛20周年了!感谢大家的支持与爱护!!
如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。
如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》
|