马赛克还原神器—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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Red Hat

    Red Hat

    2021年10月8日
    54
  • Chrome Devtool 学习

    Chrome Devtool 学习虽然devtool一直在用,可是平时使用的也就那几个功能,为了能够深入前端开发的基础,还是要详细的看一下devtool都有哪些功能。

    2022年9月27日
    6
  • 使用 EasyPOI 优雅导出Excel模板数据(含图片)

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:星悬月 blog.csdn.net/u012441819/article/details/96828044 E…

    2021年6月24日
    248
  • 我的博客文章快速索引[通俗易懂]

    我的博客文章快速索引[通俗易懂]授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力。希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石。。。    为了方便大家了解最新博客内容,博哥在此置顶汇总贴,方便大家查阅所需内容。    此贴,大家可以看到博哥近期的进展情况:待写(计划写中)目前正在写(表示已经有初稿)期待中(表示正在考虑)一、你如果想学基于Arduino的E…

    2022年5月29日
    31
  • Android多线程:HandlerThread详细使用手册(含实例讲解)

    Android多线程:HandlerThread详细使用手册(含实例讲解)前言多线程的应用在Android开发中是非常常见的,常用方法主要有:继承Thread类实现Runnable接口HandlerAsyncTaskHandlerThread今天,我将全面解析多线程其中一种常见用法:HandlerThread由于本文涉及多线程知识和Handler源码解析,所以阅读本文前建议先看:Android开发:Handler异步通信机制全面解…

    2022年7月27日
    6
  • pycharm打包python项目_pycharm 打包与在线上传文件「建议收藏」

    pycharm打包python项目_pycharm 打包与在线上传文件「建议收藏」大致分为以下两部分1.本地操作将包文件按照标准格式进行规范处理、打包备份项目开发过程中:经常会涉及到备份操作常规:通过tar命令,将程序文件压缩备份较常见:可以通过系统提供的打包操作,将文件自动按照标准化格式存储2.远程操作[专门用于协同]将包文件进行标准化构建将包文件进行打包处理上传发布到网络上具体操作以下以一个例子作为说明image.png1。在包文件中,添加一个构建模块setup.pyim…

    2025年6月9日
    5

发表回复

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

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