我们经常在线通过网页提交身份材料办理业务的时候,发现ps修改过的图片在办理业务的时候提示非真实拍照要求重新上传,那么这个是怎么实现的,今天教大家用python来实现一个识别图片真假的程序。
我们先说说鉴别的原理
▊ 主要分两级鉴别:
▶第一级、通过检查图片文件中的metadata获取图片被修改的签名信息,如被Photoshop修改的话会有相关的签名字样,但是这个不能完全杜绝通过其他途径修改图片信息,那么我们就进行第二级别的验证。
▶第二级、对图像进行ELA(错误级别分析)检测,然后将检测结果提供给LBPH(本地二进制模式直方图) 识别器,该识别器确定其是伪图像还是真实图像。虽然LBPH算法用于人脸识别,但是它也可以在该项目中用于生成直方图并进行比较。
好了,我们来看看代码怎么写吧。
▊ 所需要使用的python库
Python 2.7.14
OpenCV2
Tkinter
Pillow
Numpy
▊ 第一级检测代码
f=1 img = PIL.Image.open(imgName)info = img._getexif()if info: for (tag, value) in info.items(): if "Software" == TAGS.get(tag, tag): lab['text'] = lab['text'] + "\非拍照图" lab['text'] = lab['text'] + "\n找到修改软件的签名 : " + value f=0 if f: lab['text'] = lab['...
点击查看剩余70%
网友评论1