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


相关推荐

  • 数据库函数的用法「建议收藏」

    数据库函数的用法「建议收藏」dgkhjbxx–客户表   列(khmc)客户名称     列(khbh)客户编号apply_main_crdt–申请表  列(cust_no)客户编号 createorreplacefunctioncmis_getkhmc(idvarchar2)returnvarchar2iskhmc_mingchengdgkhjbxx.khmc%type;be…

    2022年6月16日
    29
  • 非线性方程(一)

    非线性方程(一)此为全书第一章,主matlab入门——通过学习各种插值法:反线性插值、牛顿法之类。1、diff>>diff('x^2')ans=-26-44>>dif

    2022年8月5日
    6
  • 【项目管理】现网故障处理

    【项目管理】现网故障处理

    2022年1月28日
    46
  • 数据库设计之学生选课系统_学生选课系统界面设计

    数据库设计之学生选课系统_学生选课系统界面设计目录引言…5第一章需求分析…61.1需求分析…61.1.1分析阶段…61.2任务概述…71.2.1目标…71.2.2运行环境…7软件配置:1.2任务概述…81.2.1目标…81.2.2运行环境…81.3数据流图…81.4数据字典…9第二章概念结构设计…112.1概念结构…112.2学…

    2022年10月15日
    2
  • CPU 后缀

    CPU 后缀intelCPU后缀的意思如下:“K”代表该处理器是不锁倍频桌面级CPU;超频版“S”代表该处理器是功耗降至65W的低功耗版桌面级CPU;“T”代表该处理器是功耗降至45W的节能版桌面级CPU;“QM”代表该处理器是功耗为45W的四核移动CPU;”X”高性能CPU”F”无核显m,hq,mq,XM,Y,U都是移动端“M”代表该处理器是功耗低于35W的双核移动CPU“Y”超低压(一般平板电脑…

    2022年5月30日
    156
  • 主成分分析与因子分析及SPSS实现[通俗易懂]

    主成分分析与因子分析及SPSS实现[通俗易懂]主成分分析与因子分析及SPSS实现一、主成分分析(1)问题提出在问题研究中,为了不遗漏和准确起见,往往会面面俱到,取得大量的指标来进行分析。比如为了研究某种疾病的影响因素,我们可能会收集患者的人口学资料、病史、体征、化验检查等等数十项指标。如果将这些指标直接纳入多元统计分析,不仅会使模型变得复杂不稳定,而且还有可能因为变量之间的多重共线性引起较大的误差。有没有一种办法能对信息进行浓缩,减少变量的个…

    2022年5月17日
    47

发表回复

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

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