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

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

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

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

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

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

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

最后一个问题,这两个被覆盖掉的字是什么?(狗头保命

我们的文章到此就结束啦,如果你喜欢今天的Python 实战教程,请持续关注Python实用宝典。

有任何问题,可以在公众号后台回复:加群,回答相应红字验证信息,进入互助群询问。

原创不易,希望你能在下面点个赞和在看支持我继续创作,谢谢!

点击下方阅读原文可获得更好的阅读体验

Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

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

  1. pulse 去马赛克软件_细致到毛孔头发 神还原的高清大图!AI去马赛克新算法

    AI人工智能技术近年来大热,尤其是在图像识别领域,大家很期待的一个功能就是AI去马赛克.美国杜克大学的研究人员日前发明了一种新的PULSE算法,它可以将低分辨图片变成高清图片,细致到毛孔.头发都能神还 ...

  2. python 马赛克还原_马赛克消除还原工具Depix测试

    项目地址: https://github.com/beurtschipper/Depix python depix.py -p [pixelated rectangle image] -s [sear ...

  3. 马赛克消除工具——Depix实测资源

    前言 笔者本来只是翻了翻微信的公众号,突然发现很多公众号都提高了一个叫做Depix的项目,据说是马赛克的克星,于是好奇的到Github上下载了试试效果,公众号推送相关消息如下: 最近,一个名为 Dep ...

  4. 魔方还原神器,有了它,没有还原不了的魔方(15)

    小朋友们好,大朋友们好! 我是猫妹,一名爱上Python编程的小学生. 欢迎和猫妹一起,趣味学Python. 今日主题 今天呢,我们学习一点关于魔方的知识. 魔方,又叫鲁比克方块,最早是由匈牙利布达佩 ...

  5. python 马赛克还原_python实现图片马赛克处理

    说明:图片在python中可以看成一个三维的矩阵,第一维控制着垂直方向,第二维控制着水平方向,第三维控制颜色. 电影可以看成一个四维矩阵 1.代码 导入使用包 import numpy as np i ...

  6. 我用几行Java代码撸了一个追书神器,真的是技术改变生活!老同学:艾玛真香!

    大家好,我是Spring小杨,一个有梦想的Java司机. 前不久,有个老同学找到我,问有没有什么靠谱的追书神器? 我想着这玩意无非用爬虫,但是还是得尽量低调,不然牢底坐穿! 正版网站的资源很难爬下来的 ...

  7. 厉害,被马赛克的图片竟然还可以恢复

    文章首发于微信公众号「GitHub 精选」,欢迎大家关注. 大家好,我是章鱼猫. 其实之前在我用马赛克对图片进行模糊处理的时候,我就思考过这个问题,这些被马赛克的地方能不能被恢复出来,万一能恢复,当时 ...

  8. c语言程序图片马赛克,震惊,被马赛克的图片竟然还可以恢复

    其实之前在我用马赛克对图片进行模糊处理的时候,我就思考过这个问题,这些被马赛克的地方能不能被恢复出来,万一能恢复,当时就觉得细思极恐. 你说巧不巧还真能恢复.在介绍今天的项目之前,我们先来看一下以下这 ...

  9. 马赛克,克星,真来了!

    马赛克的克星,真的来了! 今天跟大家聊聊 MAE,何恺明大神的新作. 我们先说下 MAE 的任务: 简单讲:将图片随机遮挡,然后复原. 并且遮挡的比例,非常大!超过整张图的 80% ,我们直接看效果: ...

最新文章

  1. maven_Maven排除所有传递依赖项
  2. 进程间通信之-共享内存Shared Memory--linux内核剖析(十一)
  3. JavaScript 使用random()生成随机数
  4. SpringBoot:如何处理SprintBoot提示Whitelabel Error Page以及了解原因?
  5. Server Core 的部署与管理
  6. jenkins安装部署全过程
  7. 面试准备每日五题:C++(三)——全局局部变量、内存分配、strcpysprintfmemcpy、函数指针、引用
  8. 平衡二叉树——Balance Binary Sort Tree 设计与实现
  9. Linux下C语言的调试器 Gdb
  10. 计算机视觉实战(九)信用卡数字识别项目(附完整代码)
  11. [bbk2193] 第34集 - Chapter 09-Optimizing Sore Perations(03)
  12. Kotlin习惯用语和编码风格[转自Kotlin中文文档]
  13. 内网计算机可以使用键盘,如何在同一个局域网里一套键盘鼠标操作多台电脑?...
  14. 寻找春天nbsp;九宫格日记-2014.03.08
  15. 方正飞鸿:工作流在OA系统中的重要性
  16. Excel宏的录制与调用
  17. SUMO与matlab联合仿真
  18. Mysql错误Error writing file ‘/home/tmp/xxxx’ (Errcode: 28)的解决方法
  19. 通过SSH访问电信天翼云服务器,报ssh_exchange_identification: read: Connection reset by peer的解决方法
  20. linux ctex缺少字体,LaTeX .sty文件缺失解决办法

热门文章

  1. 嵌入式linux开发 (十二) FLASH(2) stm32外扩SPINorFlash
  2. 三星s10刷linux,刷机神器TWRP布支持三星Galaxy S10+ 刷机不怕砖
  3. java遍历list(java遍历object对象)
  4. VCU控制策略之车辆传感器
  5. 传感器采取船舶的_传感器正广泛应用各个行业
  6. 网银支付回调 php,企业网银支付回调方法验签是怎么个逻辑?
  7. Java正则表达式——最新手机号合法性验证
  8. 机器人视觉项目:视觉检测识别+机器人跟随(1)
  9. Java基础篇之什么是BufferedReader
  10. 浏览器高度 document.body.scrollTop用法