专栏名称: Python实用宝典
如此Python,怎能不爱
目录
相关文章推荐
中国能建  ·  再添“新绿”,国家级荣誉+1! ·  昨天  
中国电信  ·  【中奖通知】送1000元话费,来领! ·  3 天前  
51好读  ›  专栏  ›  Python实用宝典

马赛克还原神器—Depix,真的有那么神吗?

Python实用宝典  · 公众号  ·  · 2021-01-15 20:20

正文

Depix 是用于从马赛克中还原密码/英文数字组合的Python工具。

它的官方效果是这样的:

效果非常令人惊艳,恢复后基本和原文图相差无几。但是真的有那么神吗?

01

怎么做到的?


第一步, 作者在编辑器中使用了与原图(带有马赛克的图片)相同的字体设置(文本大小,字体,颜色等设置),然后将 debruinseq.txt 内的文字和数字放入编辑器中并截图,这张截图中的所有文字都将被像素化后作为“ 搜索集 ”来识别原图中马赛克的真实内容:


第二步, 将原图中的马赛克方块切出来成为一个个单个矩形,然后这些矩形将与“ 搜索集 ”中的每个块进行比对,找到最正确的结果。

第三步, 在对应位置上对 搜索集 和原图中周围方块的匹配进行几何比较找到最短距离,重复此过程几次,找到最优结果。

接下来,让咱们试试这个Depix,看看是不是真的那么神。

02

安装依赖


开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,请访问这篇文章: 超详细Python安装指南 进行安装。

为了使用该项目的源代码,请前往GitHub下载:
https://github.com/beurtschipper/Depix

如果你访问不了GitHub或网速过慢,可以在Python实用宝典公众号后台回复: depix 下载 (当然,这玩意你下载下来也没用)。

解压下载好的文件得到 Depix-main 文件夹,在命令行中 cd 进入 Depix-main 文件夹,输入命令安装依赖:

pip install -r requirements.txt


03

试一试


首先试一下作者的示例 ,在Depix-main文件夹下运行以下命令,采用作者的打码图 作为识别的目标对象

images/testimages/testimage3_pixels.png




使用作者生成好的图片作为“ 搜索集 ”:

images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png



运行以下命令开始识别:

python depix.py -p images/testimages/testimage3_pixels.png -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png -o output.png


识别结束后会在当前文件夹生成 output.png


效果还不错,但这是作者提供的图片,如果是我们自己的图片呢?

比如我在编辑器中键入这样的文字再打码,它能识别到吗:

打码:


先使用作者的“ 搜索集 ”来解码:

python depix.py -p G:\push\20210114\test.png -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png -o output.png


结果出来的图基本和打码图没什么变化, 基本无效果


我以为是“搜索集”的问题,比如字体不一样导致无法识别成功。


因此我学作者制作了一个“ 搜索 ”:




然后使用这个 搜索 再进行识别:

python depix.py -p G:\push\20210114\test.png -s G:\push\20210114\train1.png -o output.png


依然没有识别成功,出来的结果还是和原图差不多,马赛克基本没少。

后面又试了几次,均没有识别成功。

04







请到「今天看啥」查看全文