Depix 是用于从马赛克中还原密码/英文数字组合的Python工具。
它的官方效果是这样的:
效果非常令人惊艳,恢复后基本和原文图相差无几。但是真的有那么神吗?
第一步,
作者在编辑器中使用了与原图(带有马赛克的图片)相同的字体设置(文本大小,字体,颜色等设置),然后将
debruinseq.txt
内的文字和数字放入编辑器中并截图,这张截图中的所有文字都将被像素化后作为“
搜索集
”来识别原图中马赛克的真实内容:
第二步,
将原图中的马赛克方块切出来成为一个个单个矩形,然后这些矩形将与“
搜索集
”中的每个块进行比对,找到最正确的结果。
第三步,
在对应位置上对
搜索集
和原图中周围方块的匹配进行几何比较找到最短距离,重复此过程几次,找到最优结果。
接下来,让咱们试试这个Depix,看看是不是真的那么神。
开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,请访问这篇文章:
超详细Python安装指南
进行安装。
为了使用该项目的源代码,请前往GitHub下载:
https://github.com/beurtschipper/Depix
如果你访问不了GitHub或网速过慢,可以在Python实用宝典公众号后台回复:
depix
下载 (当然,这玩意你下载下来也没用)。
解压下载好的文件得到 Depix-main 文件夹,在命令行中 cd 进入 Depix-main 文件夹,输入命令安装依赖:
pip install -r requirements.txt
首先试一下作者的示例
,在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
依然没有识别成功,出来的结果还是和原图差不多,马赛克基本没少。
后面又试了几次,均没有识别成功。