C#使用EmguCV的OCR时,调用Tesseract时报AccessViolationException

sargebert 无  2017-11-03 02:20:00
private void button3_Click(object sender, EventArgs e)
{
string path = Application.StartupPath + "\\tessdata/";//申明数据源的路径,在运行目录的tessdata 文件夹下。
string language = "";//申明选择语言。
//*判断选择的语言*//
if (checkBox1.Checked && checkBox2.Checked)//checkBox1为识别英文。
{
language = "chi_sim+eng";
}
else
{
if (checkBox2.Checked)
{
language = "chi_sim";
}
else
{
language = "eng";
checkBox1.Checked = true;
}
}

_ocr = new Tesseract(path, language,OcrEngineMode.Default);
//指定参数实例化tessdata 类。
_ocr.Recognize();
//识别图像。
Tesseract.Character[] characters =_ocr.GetCharacters();//这句报错“System.AccessViolationException”类型的未经处理的异常在 Emgu.CV.World.dll 中发生 。其他信息: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
//获取识别数据

Bgr drawColor = new Bgr(Color.Blue);
//创建Bgr 为蓝色。
foreach (Tesseract.Character c in characters)//遍历每个识别数据。
{
image.Draw(c.Region, drawColor, 1);//绘制检测到的区域。
}
imageBox1.Image = image;//显示绘制矩形区域的图像
String text = _ocr.GetUTF8Text();//得到识别字符串。
richTextBox1.Text = text;//显示获取的字符串。
//MessageBox.Show(ex.Message);
// MessageBox.Show("检查运行目录是否有语言包");

}
}
...全文
545 2 点赞 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
库子_love 2019-10-03
確定不是由於字库引起的问题。我现在也出现这样的,不知道你最后是怎么解决的
  • 打赏
  • 举报
回复
丹船 2019-03-20
你的图片地址换一下,别放桌面。有的从网上下载的图片就会出现这种情况
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2017-11-03 02:20
社区公告

让您成为最强悍的C#开发者