Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tesseract/OCR/OpenCV:需要读取验证码_Opencv_Imagemagick_Ocr_Tesseract_Python Tesseract - Fatal编程技术网

Tesseract/OCR/OpenCV:需要读取验证码

Tesseract/OCR/OpenCV:需要读取验证码,opencv,imagemagick,ocr,tesseract,python-tesseract,Opencv,Imagemagick,Ocr,Tesseract,Python Tesseract,我试图用magick阅读以下验证码图像,但迄今为止没有成功。我可以使用magick或OpenCV来解决这个catpcha 到目前为止,我已经尝试了腐蚀、高斯模糊和绘画功能,但在tesseract处理图像之前,我还没有完全了解。 我也尝试过使用tesseract的characterwhitelist,但我想它需要一些东西才能使用该白名单 我得到的最好的结果是这张图片: 使用的命令:magick.exe c:\e793df3c-b831-11e6-88e4-544635854505.jp

我试图用magick阅读以下验证码图像,但迄今为止没有成功。我可以使用magick或OpenCV来解决这个catpcha

到目前为止,我已经尝试了腐蚀、高斯模糊和绘画功能,但在tesseract处理图像之前,我还没有完全了解。 我也尝试过使用tesseract的characterwhitelist,但我想它需要一些东西才能使用该白名单

我得到的最好的结果是这张图片:

使用的命令:
magick.exe c:\e793df3c-b831-11e6-88e4-544635854505.jpg-否定-形态学腐蚀矩形:1-否定-阈值25%-绘制1 c:\ofdbmf-2.jpg


不可能吗?

对于感兴趣的人:

有两种方法可以实现这一目标:

方法#1:如果您有可用的验证码源 如果您已经有可用的源代码,您可以查看源代码使用的字体。 在这种方法中,由于我们有源代码,我们可以尝试修改它以保存最多(可能超过10000)个验证码图像以及每个图像的预期答案

您可以使用一个简单的“for”循环,并将所有回答正确的图片保存为文件名

这将是您的培训数据

然后从这里开始,将图像拆分为每个字母,并从文件名中将其引用回字母,这样您将以不同的角度和形状创建多个相同的字母图像。您可以在这里使用OpenCV blob,然后设置阈值,然后执行轮廓查找

这里你可能面临的一个问题是,你可能会有重叠的字母,因为这里有一个简单的技巧,就是说,如果一个等高线区域比它的高度宽很多,这意味着我们可能有两个字母挤在一起。在这种情况下,我们可以将连体字母从中间一分为二,并将其视为两个独立的字母

现在我们有了提取单个字母的方法,您可以在所有验证码图像上运行它。目的是收集每个字母的不同变体。我们可以将每封信保存在它自己的文件夹中,以使事情井然有序

最后,您可以使用具有两个卷积层和两个完全连接层的简单卷积神经网络结构

这样,您将有100%的成功率识别验证码字母/数字

方法2:如果你没有来源 基本上,你现在必须做很多工作,首先,确保你具备以下背景:

1) 蟒蛇 2) 凯拉斯 3) 张量流 4) OpenCV

如果你这样做了,那么就开始下载尽可能多的验证码图像。我通常在Google Chrome开发者选项中查找网络标签,然后找到验证码的路径,然后将其放入循环中开始下载

然后,使用OpenCV通过创建斑点、阈值和轮廓定义来提取下载的图像

最后是培训部分,然后是测试和验证

有关更多信息: