README.md
git_link
https://gitcode.net/aspnmy/python_dff_hash_pic
本类库支持中文路径读取图片,如需单独调用中文读取函数,请如下调用(cvv是代码中的速记词,原库为cv2,如需要改写类库,请注意全部改写)
cvv_imread_cn(file_path)
python 版本说明
本类库使用了match case 函数,只支持3.10.0以上版本,如以下版本需要支持,需要在类库代码中,将 match case 代码全部改写成 if 类写法
本类库如需单独调用HASH比较,请如下调用
cmpHash(hash1, hash2)
python_dff_Hash_pic
用于实现aHASH,dHASH,pHASH三种算法,查找图片的相似程度(以图找图)。 只需要引入类库,一行代码即可实现以图找图的业务。 如何在自己的项目中引用: 把类库文件放在自己的项目中,在项目文件中这样引用
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#引入sys库体,python的信息模块
import sys
#系统路径中填写存放.py文件地址,然后通过import方法导入
sys.path.append("G:\py实现相似图片识别")
#只需要需要引用的类库文件名
from dff_Hash_pic import *
一个文件夹(path)下所有的图片进行相似度比较,使用dhash方式,然后将相似度较接近的文件输出到(outdir)下,使用以下命令调用
path=r"C:\Users\Administrator\Desktop\upload\img1"
outdir =r"C:\Users\Administrator\Desktop\upload\sameout"
##time1=datetime.datetime.now()
rs=dff_img_file(path,outdir)
timea =(datetime.datetime.now()-time1).microseconds
##dff_img_file函数默认采用dHash算法计算,才能获得高效能力
print(rs,"耗时为dhash",timea)
对一个图片源文件路径(aim_photo)使用ahash/dhash/phash方式,对指定目录下的对比图片(path)进行比较
##需要比对文件夹的地址
##path=r"C:\Users\Administrator\Desktop\upload\img1"
# 需要比较的图片的原始地址
##aim_photo =r"C:\Users\Administrator\Desktop\upload\img1\pic_0136.png"
##sshash 代表用于比较的算法,传入dhash就才有dhash算法进行计算,传ahash就用ahash进行计算,传phash就用phash进行计算
#sshash = 'dhash'
#rs=dff_img_one(path,aim_photo,sshash)
#timed =(datetime.datetime.now()-time1).microseconds
#sshash1 = 'ahash'
#rs=dff_img_one(path,aim_photo,sshash1)
#timea =(datetime.datetime.now()-time1).microseconds
#sshash1 = 'phash'
#rs=dff_img_one(path,aim_photo,sshash1)
#timep =(datetime.datetime.now()-time1).microseconds
#print(type(rs))
#print("与原始文件完全相同的文件是",rs,"算法为",sshash,"耗时为dhash",timed,"耗时为ahash",timea,"耗时为phash",timep)
#print("dahash算法比ahash算法速度上要快",timea-timed)