emgucv踩过的坑

 

一、为什么我安装的emgucv的bin文件夹下很多DLL都没有

3.0以上的版本的找不到的dll都合并到了Emgu.CV.World.dll里去了,只要引用这个DLL就可以了。

 

二、Emgu.CV.CvInvoke的类型初始值设定项引发异常

把Emgu的bin目录下的x64和x86文件夹复制到debug目录下

bin文件夹下没有的可以看看libs文件夹下有没有

 

三、 “无法加载 DLL“cvextern”: 找不到指定的程序”

将Emgu安装文件下(64位)C:\Emgu\emgucv-windesktop 3.3.0.2824\bin\x64下的cvextern.Dll复制到Winform项目Debug文件夹下

 

四、Emgu.CV.OCR Unable to create ocr model using Path and language

Tesseract xx = new Tesseract();
xx.Init(@"", "eng", Tesseract.OcrEngineMode.OEM_TESSERACT_ONLY);//这里报错Unable to create ocr model using Path and language

看官方解释地址格式是tessdata文件夹的父文件夹,且必须以右斜杠结束

这里文件地址的搜索有两种方式,一种是有环境变量时,只找环境变量下的,一种是无环境变量的用指定的。

****检查环境变量:TESSDATA_PREFIX          D:\Program Files\Tesseract-OCR\(我的就是有这个环境变量,但是里面没有放tessdata及文件)

1 、如果有,则里面拷贝tessdata文件夹及内容到环境变量指定的文件夹(D:\Program Files\Tesseract-OCR\下),上面代码就可以正常

2、如果没有,则需要指定地址,可以下面方式指定

          2.1、如代码地址为空,则需要将tessdata拷贝到Bin\Debug目录下(程序运行目录)。

          2.1、如代码地址 xx.Init(@"F:\EmguOcrData\", "eng", Tesseract.OcrEngineMode.OEM_TESSERACT_ONLY); ,则需要将tessdata拷贝到F:\EmguOcrData目录里面。(注意地址中的最后一个右斜杠不能少)
---------------------
版权声明:本文为CSDN博主「jzdzhiyun」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jzdzhiyun/article/details/9003478

 

五、Emgu.CV  尝试读取或写入受保护的内存。这通常指示其他内存已损坏

第四个问题说的tessdata文件夹里应该有训练包,出现这个问题可能是训练包版本和Tesseract版本不一致,换个训练包解决。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章