我正在朋友的网站上进行渗透测试 而且我在网站上发现了一个验证码,在我看来这是一个很容易解决的问题
应用高斯模糊,然后应用简单的阈值后,我最终得到以下结果:
把它喂给tesseract-ocr后,得到了以下输出:
CLBTJE
因此OCR未能识别文本中的最后两个字符 我认为这个问题主要是因为tesseract无法对“T&#T;”进行细分。而且' X'。
我的主要问题是,是否有可能强制tesseract进行细分,还是我必须自己实施?
以下是我用来执行OCR的C#代码:
var image = new Bitmap(pictureBox1.Image);
var ocr = new Tesseract();
ocr.SetVariable("tessedit_char_whitelist", "QWERTYUIOPASDFGHJKLZXCVBNM" + "QWERTYUIOPASDFGHJKLZXCVBNM".ToLower());
ocr.Init(@"tessdata", "eng", false);
var result = ocr.DoOCR(image, new Rectangle());
foreach (Word word in result)
MessageBox.Show("Confindece : " + word.Confidence + ", Word : " + word.Text);