半个月前老师让我帮忙写个函数,判断两个图像是否完全一致,好像因为他要处理大量的图片来做机器学习的训练样本。
需求是:写一个函数,传入参数是一个目录,最终结果输出到一个名为 result.txt 的文件里,在这个文件里,所有相同图片的名称写在一行内。
此代码的使用环境:传入的目录里,只存在图片文件;生成的 result.txt 与传入的目录在同一目录下;当图片的大小和格式(后缀名)不同时,判定为不同。
以下是 python 代码:
import os
import cv2
import numpy
def CheckIdenticalImages(img1, img2):
image1=cv2.imread(img1)
image2=cv2.imread(img2)
if os.path.splitext(img1)[1]!=os.path.splitext(img2)[1]:
return 0
elif image1.shape!=image2.shape:
return 0
else:
check=cv2.subtract(image1, image2)
out=numpy.any(check)
if out==False:
return 1
else:
return 0
#print(CheckIdenticalImages("t/b/9.jpg", "t/b/10.png"))
def ListIdenticalImages(dir1):
list=os.listdir(dir1)
os