从批量图片中找出相同的图片

本文介绍了一种在大量图片中查找重复图片的方法,包括通过EXIF信息、MD5文件指纹和像素点RGB值进行比对。利用图片的EXIF属性、MD5唯一标识以及像素点颜色来判断图片是否相同,从而有效识别复制粘贴的图片。
摘要由CSDN通过智能技术生成

1.背景

公司在各城市小区的楼宇电梯中投放广告,供应商会定期反馈一些上刊报告和图片来证明确实有投放。一波图片大概在50万张上下,无法通过人手来检查这些图片是否有存在复制粘贴,鱼目混珠的情况。

2.实现方法(20191203)

  1. 利用图片自带的exif属性判断
  2. 利用文件唯一的md5文件指纹判断
  3. 在图片中抽取若干像素,通过rgb来判断
  4. 计算汉明距离。0代表相同,(0,5]代表非常相似。

A. EXIF(JPG属性)

  • 说明

    JPG图片都会携带拍摄的相关信息(相机牌子,型号,拍摄时间,光圈,快门等)。我们可以通过获取图片信息加以对比,用属性是否相同来判断是否是一样的图片。其中拍摄时间是比较重要的一个判断依据。

  • 优点

    容易获取,直接右键图片即可检查属性,方便对照。

  • 缺点
    1. 必须原图,只有原图才携带相关信息。
    2. 对拍摄设备的设置要求高。比如要调好相机的时间。
    3. 由于某些不确定因素,相片属性可能会丢失。
    4. 图片属性可以随时修改。(鼠标右键修改属性)
  • 主要代码
# coding:utf-8
import exifread
import tkinter as tk
from pathlib import Path
# ----相关函数解释-----
# *path(文件路径).rglob('*.扩展名')  
# return 该文件路径下指定扩展名的文件的list

# *exifread.process_file(图片流, detail=False)
# return 该jpg中的属性


def get_jpgs_properties(folder_path):
	ttl_jpgs_properties = []  # 存放所有图片属性的list
	for jpg in Path(folder_path).rglob('*.jpg'):
		jpg_dict = dict()  # 存放单张图片的属性
		jpg_dict['Image Path'] = jpg  # 图片路径
		jpg_dict['Image Name'] = jpg.name  # 图片名
		img = open(str(jpg), 'rb')
		tags 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值