P图P到神仙都不认得?教你识破图片有没有被P过
在这个万物皆可ps的时代,一张图片的真假似乎越来越难判定。例如网上突然传出来一张截图,你要怎么才知道这是真的证据,还是ps出来的谣言?
如何快速鉴定一张图片有没有被ps过,成为了一大难题。要完美鉴别一张图片有没有被ps,是很困难的,这就提供两个值得一试的方法,供大家参考。
方法一:通过exif等图片信息鉴别
通常来说,图片生成时是会带有exif等图片信息的。例如用手机拍摄的照片,exif就会携带有快门、光圈、手机型号等信息,而用ps处理过的图片,也会带有photoshop的软件信息。
因此,我们可以通过exif信息,来判别某张图片是否是未经篡改的原图。
最简单的方法,自然就是直接看文件头了。例如一张图片是在ps中修改过、然后保存的,那么用记事本开启这张图片,就可以在它的文件头中,找到“photoshop”的字样,如下图所示。
用记事本打开图片文件,有“photoshop”字样,说明这是一张用ps保存的图片
能修改图片的软件不止ps,如果是用其他软件来修改,我们还可以通过第三方软件来鉴别其exif,例如下面的这款“jpegsnoop”。
jpegsnoop:
jpegsnoop是一款绿色软件,下载后直接运行即可。它是英文的,不过其实用起来没什么门槛。例如我们要鉴定一张图片是否被修改过,可以直接将图片拖移到它的界面当中,jpegsnoop就会对图片的exif等信息进行分析。jpegsnoop呈现的分析非常多,但我们只需要关注最下面的“assemssment”一项,例如下图。
根据jpegsnoop给出的信息,这张图片是经过处理或者编辑的,也就是说它不是原图。
再看这张图,jpegsnoop判断它就是原图,没有经过任何ps,可以确信为真了。
方法二:通过图片内容鉴别
通过exif鉴别图片是否是原图,的确是行之有效的,但这种方法也有其局限,那就是它只能鉴定图片是否是原图,而不能鉴定图片内容是否保真。例如用qq、微信发送的图片,会被压缩过,图片内容没有被修改,但通过exif鉴别,这仍属于处理过的图片,如此一来就显得意义不大了。
如果你想要鉴别图片内容是否被修改,那么直接鉴别图片的内容是更靠谱的方法。问题来了,这属于技术活,往往需要人工细细甄别,有没有更加傻瓜智能的方法?还真有,例如forensically这个网站,其中很多功能,都非常方便且实用,可以帮你快速鉴定图片有没有被p过。
forensically clone detection:
首先来说说其中的“clone detection”功能。顾名思义,这可以检测图片是否存在克隆现象。
通常来说,修改图片时,例如去除水印、杂物等等,都会用到ps中的像素克隆工具,forensically的检测原理就在于识别图片中重复的像素,来判断这张图片有没有被像素克隆工具修改过,下图就是forensically默认提供的样张。
这些红线连起来的区域,像素是一模一样的,证明经过ps克隆工具的涂抹
在forensically的鉴别结果中,白斑代表一模一样的像素,红线代表相同像素的平移路径。可以看到,途中有大面积相邻像素都是一模一样的,这就是经过克隆的痕迹,这无疑就是一张ps过的图片。
再来看一张正常的照片。
这张照片是没有经过ps的,在forensically中尽管也鉴别出了一模一样的像素,但分布面积小且零散,因此可以认为这张图片没有被克隆工具修改过。
forensically的clone detection只适用于使用克隆工具修改的照片,对于其他p图情况,我们可以使用forensically的其他工具鉴别。
例如,forensically的“error level analysis”功能,可以突出显示某些肉眼看上去差不多、但从计算机角度来看非常突兀的像素。例如这张示例图中的飞碟,就很显眼了,这明显就是p上去的。
经过一定算法处理,发现某一块像素的特征和周围的明显不同,这显然是p上去的图像
再来看看原始拍摄未经处理的照片,可见计算机认为像素特征是均匀的,没有突兀的像素群。
当然,forensically也是存在局限的,它的原理决定它只能适用于鉴定拍摄的照片(还不能有太多过曝之类造成的“死像素”),对于截图或者cg这样的人造图像不那么适用。但无论如何,如果你想要鉴别某张照片有没有被p过,forensically仍是非常不错的辅助工具。
总结
ps鉴定是一个技术活,很难通过软件算法自动得出图片是否为真的结果,但如果软件算法只是作为辅助,结合人的经验进行判断,还是能有个十不离八九的结果的,希望上文的方法能帮到大家,如果有什么新奇的坚定思路或者方法,也欢迎在评论区分享!
- the end -
原文链接: 责任编辑:陈驰