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

}
}
...全文
890 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
库子_love 2019-10-03
  • 打赏
  • 举报
回复
確定不是由於字库引起的问题。我现在也出现这样的,不知道你最后是怎么解决的
丹船 2019-03-20
  • 打赏
  • 举报
回复
你的图片地址换一下,别放桌面。有的从网上下载的图片就会出现这种情况
内容概要:本研究聚焦于永磁同步电机(PMSM)无位置传感器控制技术,提出了一种融合零低速区脉振高频电压注入与中高速区反电动势观测的复合控制策略。该策略通过在零低速区利用脉振高频电压注入法,基于交直轴高频阻抗差异实现转子初始位置的精确辨识与低速稳定运行;在中高速区无缝切换至基于反电动势的观测器,实现对电机转速与位置的连续、高精度估计,从而覆盖电机全速域运行需求。研究重点分析了两种观测方法的融合机制、切换逻辑及系统稳定性,并通过Simulink仿真实验验证了所提策略的有效性与对电机参数变化的鲁棒性。; 适合人群:具备电机控制、电力电子或自动化专业背景,从事电机驱动系统研发的研究生及工程技术人员。; 使用场景及目标:①研究和设计永磁同步电机无位置传感器控制系统;②解决电机在零低速区启动困难和位置观测不准的问题;③提升电机控制系统对参数摄动的适应能力和全速域运行的稳定性。; 阅读建议:此资源以Simulink仿真实现为核心,建议读者在学习时结合理论分析与仿真模型,重点关注高频信号注入的参数设计、反电动势观测器的结构以及两种模式间的平滑切换逻辑,并通过调整参数进行仿真验证,以深入理解其控制机理与鲁棒性。

111,128

社区成员

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

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

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