【发布时间】:2013-02-02 01:41:41
【问题描述】:
为了看看是否可以轻松破解非常简单的验证码,我正在尝试编写一个程序(尽可能简单和小)。我希望用 C++ 编写的这个程序应该执行以下操作:
制作屏幕已知区域的部分屏幕截图。 (假设 CAPTCHA 始终位于完全相同的位置 - 例如:像素 500-600 x,像素 300-400 y)。
自动将 CAPTCHA 分解为单个字母。 (我将为测试创建的验证码都只有几个白色字母,总是在黑色背景上,间隔很好,以方便我。)
然后,程序将“剪切”的字母与一组“已知”的字母图像(看起来类似于 CAPTCHA 中使用的字母)进行比较,其中包含 26 个元素,每个元素包含一个单一的图像英文字母。
程序获取与比较映射到的图像相关联的字母,并将该键发送到控制台(通过 std::cout)
我的问题是:是否有一个易于使用的库(我只是编程的初学者),它可以处理任务 1-3(4. 相当容易)?特别是第三点是我几乎没有发现任何值得的东西。理想的情况是,如果这个库有一个“评分”功能,使用浮点数来指示图像的相似程度。然后,得分最高的就是最好的命中。 (即:100.0 表示图像相同,29.56 表示它们非常不同,等等)
【问题讨论】:
-
您所描述的验证码比stackoverflow.com/a/13665185/1832154 的“破解”更简单。那里的代码非常简单,使用 opencv 甚至其他较小的库将其映射到 c++ 应该没有问题。
-
我很确定截屏是相当依赖于系统的。你用的是哪个系统?
-
啊,是的,有截图。我完全忽略了它,因为它与解决问题的任务完全不同,只是在给定平台的情况下调用程序。
-
我使用的是 Windows 7。请原谅我忘记提及这一点。
标签: c++ image-processing captcha