diff --git a/players/ProfFan/writeup.md b/players/ProfFan/writeup.md new file mode 100644 index 0000000..a5f2e03 --- /dev/null +++ b/players/ProfFan/writeup.md @@ -0,0 +1,9 @@ +今年实在太忙,只做了一题 + +# 证验码 + +注意到题目给的是 BMP 格式,显然是为了保存图片的一些统计特征。继续审代码,发现随机数均为真随机,故这个方向没有价值。众所周知字体渲染是有 Anti-aliasing 的,所以每个字都有独特的灰度分布。 +故我们可以计算每张图片的灰度分布,再加上预计算每个单独字符的灰度分布,得到直方图,在直方图上做优化即可得到验证码。 + +注意此处应当使用 L1 而不是 L2 优化,因为16个字符远少于 26*2+10,结果应当是稀疏的。本题用 L2 也可以得到解,但是如果增加干扰线条的密度,L2 应该会失败。 +