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("检查运行目录是否有语言包");

}
}
...全文
821 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
库子_love 2019-10-03
  • 打赏
  • 举报
回复
確定不是由於字库引起的问题。我现在也出现这样的,不知道你最后是怎么解决的
丹船 2019-03-20
  • 打赏
  • 举报
回复
你的图片地址换一下,别放桌面。有的从网上下载的图片就会出现这种情况

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧