Depix初体验

Depix初体验前情提要这几天有一个同学给我发了一张马赛克图,问我能不能还原?图片如上。我一看,这被马成什么鬼样子了,谁能还原得了?不过我忽然想到,我在公众号上看到一个名字叫做”Depix”的Github项目。然而近期在Github上,又出现了一款号称能抹去马赛克让原图重现的神器,引发海内外热议。这款工具名为Depix,上线没几天就在GitHub上标星已超过一万多,截止目前累计分支也超过了1.3k个。让它火出圈子的,就是下面这张效果图:如图所示,第一行是打了一层巨厚马赛克完全像素化后的文本内容,看不出

大家好,又见面了,我是你们的朋友全栈君。

前情提要

这几天有一个同学给我发了一张马赛克图,问我能不能还原?

马赛克的图片
图片如上。
我一看,这被马成什么鬼样子了,谁能还原得了?
不过我忽然想到,我在公众号上看到一个名字叫做”Depix”的Github项目。

然而近期在Github上,又出现了一款号称能抹去马赛克让原图重现的神器,引发海内外热议。
这款工具名为Depix,上线没几天就在GitHub上标星已超过一万多,截止目前累计分支也超过了1.3k个。
让它火出圈子的,就是下面这张效果图:
在这里插入图片描述
如图所示,第一行是打了一层巨厚马赛克完全像素化后的文本内容,看不出一点原始痕迹。
第二行则是经过AI还原后的内容,可以看到内容其实基本上已经被还原了,而且准确度很高。
第三行就是根据第二行稍加推理得到的原始密码了。
在这里插入图片描述
是的,最难被还原、甚至理论上说根本无法还原的文字,也在重重厚码之后被Depix还原了!

是的,开发者用了神奇的算法将马赛克还原了!
最近刚好接触了Python,那么我也下载下来试试看吧。

第一步:下载该项目的源文件

这里->Depix项目的下载地址

第二步:熟悉文件和md说明文档

解压后的文件是这样的:
在这里插入图片描述
depix.pygenpixed.py文件就是具体的算法了,是什么算法我也看不懂(希望有大佬带带我).
READ.md文档就是具体的说明文档。
images文件夹里放有两个子文件夹searchimagestestimages
在这里插入图片描述
searchimages里放着的就是作者给的搜索集图片,到时候我们可以用不同的搜索集还原。
testimages里放着的就是示例的测试图片。
打开README.md说明文档,我们可以看到使用方法,其中几条语句我们需要搞懂是什么意思:
python -m pip install -r requirements.txt \\指的是加载依赖的文档

python depix.py -p /path/to/your/input/image.png -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png -o /path/to/your/output.png
这么长,看得我都要眼花了,但其实我们可以分几块看,
第一块:/path/to/your/input/image.png:输入你想还原的图片的路径
第二块:images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png:确定你要依赖的搜索集
第三块:/path/to/your/output.png:定义生成图片你想保存的位置和名字
所以看懂了其实很简单有没有。

第三步:输入命令,开始运行

这里我推荐使用Pycharm运行。而且电脑上要先安装Python和pip。

cmd运行篇

因为我自己有先用cmd尝试运行,但是cmd总会提示我如下指令,

C:\Depix-main>python depix.py -p images/testimages/testimage3_pixels.png -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png -o output.png
Traceback (most recent call last):
  File "depix.py", line 1, in <module>
    from depixlib.LoadedImage import *
  File "C:\Depix-main\depixlib\LoadedImage.py", line 1, in <module>
    from PIL import Image
ModuleNotFoundError: No module named 'PIL' //缺少'PIL'的目录

后来Google了一下,发现是要输入pip install Pillow命令,然后我输入了,结果还是跑不起来。
算了,放弃了,跑路Pycharm。

Pycharm篇

这里建议先把“Depix-main”文件夹放到C盘主目录,输入路径时也不会打错。
①然后打开在Pycharm中“Depix-main”文件夹:
我会偷偷告诉你其实我是炫耀自己的Win11吗

②打开终端
在这里插入图片描述
③参照作者给的md说明文档一步一步来吧。
在这里插入图片描述
④在还原我的图片之前,先用作者给的示例图片运行一下。
在这里插入图片描述
就是这张,然后输入语句命令:python depix.py -p images/testimages/testimage3_pixels.png -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png -o output.png
使用这张debruinseq_notepad_Windows10_closeAndSpaced.png搜索集里的图片(在searchimages文件夹下)
在这里插入图片描述
等呀等呀,终于跑好了!
在这里插入图片描述
我们打开一看,
在这里插入图片描述
还真有点样子!
那用我自己这张图片试一试怎么样呢?
在控制命令台输入python depix.py -p mi.jpg -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png -o output1.png
开始!
在这里插入图片描述
在这里插入图片描述
等了很久,终于跑出来了,点击output1.page一看:
在这里插入图片描述
卧槽,这特么是个啥…我裂开了

事后经验

参考了别的一篇文章,我也认为应该是作者按照自己的打码风格设计了这个算法,还是不太普适。
在这里插入图片描述
所以以后大家打码一定要厚码,码到亲妈都认不出来就会相对安全一些。

写于2021/09/28

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/147448.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • sublime text3 替换(sublime替换成换行符)

    我遇到一个文章,需要把所有的(数字)换为[数字]于是我使用SublimeText的替换首先,我们需要打开正则使用“Alt+R”或打开“Ctrl+h”选择正则。然后我们开始输入正则,“((\d+)”我们需要拿出的是数字,所有在数字加“()”。于是在替换写“[1\]”,其中1\]”,其中0就是所有的,$1就是第一个括号。如何使用正则可以去看正则表达入门。Suml

  • java爬虫系列(一)——爬虫入门[通俗易懂]

    java爬虫系列(一)——爬虫入门[通俗易懂]爬虫框架介绍Heritrix优势劣势简单demo地址crawler4j优势劣势简单demo地址WebMagic优势劣势简单demo地址快速入门seimicrawler项目地址简单爬虫实现导入项目编写爬虫启动爬虫同系列文章爬虫框架介绍java爬虫框架非常多,比如较早的有Heritrix,轻量级的crawler4j…

  • java 服务器程序部署环境搭建

    java 服务器程序部署环境搭建1、安装JDK 右击我的电脑-属性-高级系统设置-高级-环境变量:系统变量:新建:CLASSPATH 变量值为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;新建:JAVA_HOME 变量值为D:\Java\jdk1.8.0_40(就是你安装的JDK路径)找到Path,点击编辑,在变量值最前端添加;%JA

  • 思科静态路由配置_思科交换机trunk配置命令

    思科静态路由配置_思科交换机trunk配置命令1.配置静态路由路由器可以将不同网段之间的网络连接到一起,当路由器接收到数据包后要查看数据包中的目标IP,再检查自己的路由表,如果路由表中有和目标IP相匹配的路由条目,路由器才能将数据包按照该路由条目所指定的端口转发出去,实现不同网络之间的通信,那么路由器中的路由表是如何实现的呢?配置了路由器接口IP并为UP状态路由表中自动生成直连路由,对于非直连的路由,需通过静态路由管理员手工添加或通过配置动…

  • linux进程管理命令使用_shell进程

    linux进程管理命令使用_shell进程Linux进程管理、服务管理、软件包管理(rpm、yum)详细讲解。

  • 登录的时候出现token无效_token已过期

    登录的时候出现token无效_token已过期msg:‘无效token’,status:400原因:用第三方组件element-ui或者其他组件的单个功能上传图片,没有用到axios发请求,而是组件内部自己封装了一个ajax去发请求,组件内部封装的ajax不携带Authorization字段.解决方案:1.首先在上传组件中手动添加:headers:”headerObj”2.再设置上传组件的请求头,添加Authorization字段:就解决了。…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号