前段时间有一个叫做Depix的项目很火,刚考完试才有时间来看看效果。其实前段时间看文章就知道它的局限性还是很大,只适用于很严苛的很少的一类情况,而且只能识别英文单词,对于汉语就爱莫能助了。
@[TOC]
地址: https://github.com/beurtschipper/Depix
算法说明:https://www.linkedin.com/pulse/recovering-passwords-from-pixelized-screenshots-sipke-mellema
De Bruijn序列:https://damip.net/article-de-bruijn-sequence
原文介绍
Depix
Depix是一个从像素化截图中恢复密码的工具。
这个实现工作在用线性框滤波器创建的像素化图像上。
在本文中,我介绍了像素化和类似研究的背景信息。
example
python depix.py -p images/testimages/testimage3_pixels.png -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png -o output.png
在这里插入图片描述
usage
- 从截图中截取像素化的方块作为一个矩形。
- 粘贴一个De Bruijn序列与预期字符在编辑器与相同的字体设置(文本大小,字体,颜色,hsl)。
- 把这个序列截屏。如果可能的话,使用与创建像素化图像相同的截图工具。
Run
python depix.py -p [pixelated rectangle image] -s [search sequence image] -o output.png
algorithm
- 该算法利用线性盒滤波器单独处理每个块的事实。对于每个块,它将搜索图像中的所有块像素化,以检查直接匹配。
- 对于大多数像素化的图像,Depix能够找到单次匹配的结果。它假定这些都是正确的。然后,在与像素化图像相同的距离上,将周围的多匹配块的匹配进行几何比较。匹配也被认为是正确的。这个过程重复了几次。
- 当正确的块没有更多的几何匹配后,它将直接输出所有正确的块。对于多匹配块,它输出所有匹配的平均值。
usage issues
参见https://github.com/beurtschipper/Depix/issues/12
代码实现
样例
在命令行下输入第一行命令,即可直接运行,大概三分钟左右。
E:\Depix-main>python depix.py -p images/testimages/testimage3_pixels.png -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png -o output.png
INFO:root:Loading pixelated image from images/testimages/testimage3_pixels.png
INFO:root:Loading search image from images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png
INFO:root:Finding color rectangles from pixelated space
INFO:root:Found 116 same color rectangles
INFO:root:86 rectangles left after moot filter
INFO:root:Found 1 different rectangle sizes
INFO:root:Finding matches in search image
INFO:root:Removing blocks with no matches
INFO:root:Splitting single matches and multiple matches
INFO:root:[10 straight matches | 76 multiple matches]
INFO:root:Trying geometrical matches on single-match squares
INFO:root:[15 straight matches | 71 multiple matches]
INFO:root:Trying another pass on geometrical matches
INFO:root:[17 straight matches | 69 multiple matches]
INFO:root:Writing single match results to output
INFO:root:Writing average results for multiple matches to output
INFO:root:Saving output image to: output.png
本例使用作者提供的马赛克图片testimage3_pixels.png
,最终得到的图片存放在Depix-main
文件夹下,命名为output.png
.结果就是上图中的示例。
其余示例
只需要把testimage3_pixels.png
换成实际的图片名称,以及输出的命名output.png
简单替换即可。
# part1
一组无规则的字母数字组合
在这里插入图片描述
在这里插入图片描述
part2
一个单词
在这里插入图片描述
在这里插入图片描述
目前来看局限性还很大,必须要求是特定的英文语句而且识别效果差强人意。
网友评论