马赛克还原神器—Depix,真的有那么神吗?「建议收藏」

马赛克还原神器—Depix,真的有那么神吗?「建议收藏」Depix是用于从马赛克中还原密码/英文数字组合的Python工具。它的官方效果是这样的:效果非常令人惊艳,恢复后基本和原文图相差无几。但是真的有那么神吗?老规矩,需要打包好的软件关注小编,QQ群:721195303领取。01怎么做到的?第一步,作者在编辑器中使用了与原图(带有马赛克的图片)相同的字体设置(文本大小,字体,颜色等设置),然后将debruinseq.txt内的文字和数字放入编辑器中并截图,这张截图中的所有文字都将被像素化后作为“搜索集”来识别原图中马赛克的真实..

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

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

它的官方效果是这样的:

图片

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

老规矩,需要打包好的软件关注小编,QQ群:721195303领取。

01

怎么做到的?

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

图片

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

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

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

02

安装依赖

开始之前,你要确保Python和pip已经成功安装在电脑上

为了使用该项目的源代码,请前往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

为什么我的马赛克无法被识别?

于是我想知道为什么会这样,就用我自己的马赛克工具和作者打的马赛克做了对比:
 

图片

 

我发现,使用我的马赛克图像去进行识别的时候,一样没有任何效果。但是识别作者的马赛克图像,效果却很好。

这时候我有理由相信这个算法发生了“过拟合”,作者对“搜索集”的每个区块进行打码,这个打码的风格是有一定特征的,如果被识别对象的马赛克不符合这个风格,那识别大概率会失败。

所以被识别对象的马赛克一定要符合“搜索集”的打码风格,这样才能被准确地识别出来。换成其他算法生成的马赛克,作者的模型都可能会失效,就比如我刚刚试的那些例子。

尽管如此,随着技术的进步,在未来类似这样的解码器肯定会越来越强大,所以建议大家还是将马赛克打得厚一点,最好是一整块地填充图像破坏原图,这样才不用担心密码被还原之类的事情,比如下面这样才是最安全的。

马赛克还原神器—Depix,真的有那么神吗?「建议收藏」

在这里还是要推荐下我自己建的Python学习群:721195303,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2021最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149673.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • chmod的用法_crontab用法

    chmod的用法_crontab用法整理一下chmod用法,给自己看~~~~语法chmod[-cfvR][–help][–version]modefile…参数说明:-c:若该文件权限确实已经更改,才显示其更改动作-f:若该文件权限无法被更改也不要显示错误讯息-v:显示权限变更的详细资料-R:对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)–help:…

    2022年10月19日
    3
  • java变量设置_如何正确的配置JAVA环境变量

    java变量设置_如何正确的配置JAVA环境变量原创:YiKiA2Data什么是环境变量?环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。为什么要配置环境变量?为了方便在控制台编译和运行java程序,不必进入到java的程序目录里面去运行。这样你放在任何目录下的java程序文件都可以编译运行,而不是必须把这个程序文件放在java.exe和javac.exe所在的目录下。什么是JAVA_HOME…

    2022年7月7日
    27
  • binder原理和实现机制(金属强化机制及其强化原理)

    参考自大神https://zhuanlan.zhihu.com/p/35519585参考自大神https://blog.csdn.net/carson_ho/article/details/73560642一前言二Linux传统的进程间通信原理简述2.1Liunx中跨进程通信主要有三个关键信息2.2Linux下的传统IPC通信原理三Binder跨进程通信原理四…

    2022年4月11日
    46
  • Java面试之线程

    Java面试之线程Java面试之线程

    2022年4月22日
    114
  • 如何查看sublime安装了哪些插件

    如何查看sublime安装了哪些插件

    2021年10月7日
    54
  • Google凭借Buzz进军社交网络

    Google凭借Buzz进军社交网络《纽约时报》网络版今日发表分析文章称,谷歌周二发布社交网络工具GoogleBuzz,望借此与Facebook、Twitter等社交网络行业巨头竞争。     以下是文章主要内容:  面对不计其数的社交网络服务而不知所措?谷歌愿意帮忙——再多给你一个“选择”。谷歌周二发布GoogleBuzz,用户又将多一个传递信息与想法的平台。  不出预料,GoogleBuzz

    2022年10月15日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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