我两天前在 answers.opencv.org 上发布了这篇文章,现在我也将它发布在这里。 http://answers.opencv.org/question/68634/text-contrib-module-and-tesseract/
Good afternoon to everyone. First of all, sorry for my english hehe. I've been trying to build the opencv contrib module 'text', however I haven't got sucess. Note: Other modules like xfeatures2d have never given me a problem.
My platform is windows 7 x64 and I use VS2013 as compiler, I've followed this tutorial(http://vorba.ch/2014/tesseract-3.03-vs2013.html) in order to build Tesseract 3.04 as LIB, but after compiling it succesfully, I want to generate the vproj with cmake and the problem is the following:
In CMake GUI, having previously selected opencv source, EXTRAS directory, etc etc, I don't get the vars under 'Tesseract' group set correcly (INCLUDE AND LIBS). I know it because when I click on configure, The log says "Tesseract: NO".
I've inspected the FindTesseract cmake script and I think that it doesn't work....
Please, anyone could give me a little clue about what's happening? How can I build the opencv text module to use Tesseract functions?
Also I've tried to compile text module adding link paths to Tesseract but when I want to use in my program I get link errors about undefined symbols...
This situation is taking me serveral days bothering me. Are there someone who is using text module under windows?
没人能帮帮我吗?我取得了一些进展,现在 cmake GUI,我说 Tesseract:是的。问题是我没有找到链接 leptonica 库的条目,它不在同一个 Tesseract 组中,而是在“未分组的条目”中。
好的,现在问题仍然存在,由 cmake 创建的 VS 解决方案没有正确构建文本模块,因为我可以看到 Lept lib 大约为 9Mb,TesseractLib 为 128Mb(在/MT 和调试中),但是 opencv_text300d.lib只有12Mb。出了点问题....
我不确定我必须使用哪个 tesseract 版本。我试过两种组合: liblept168-static-mtdll-debug.lib + libtesseract302-static-debug.lib 和 liblept171-static-mtdll-debug.lib + libtesseract304-static-debug.lib
当然,当我将文本模块链接到我的程序时,它会给我链接错误。
链接错误类似于:opencv_text300d.lib(ocr_tesseract.obj) : error LNK2019: unresolved external symbol "public: bool __cdecl tesseract::PageIterator::BoundingBox(enum tesseract::PageIteratorLevel,int *,int *,int *,int *)const "(?................................
...
#include "opencv2/text.hpp"
...
string output;
cv::Mat aux;
Ptr<OCRTesseract> ocr = OCRTesseract::create();
ocr->run(aux, output);
...
显然,我已经使用额外的包含目录、链接器额外的库目录和向文本模块输入额外的依赖项来设置我的项目。
真的,非常感谢你。
最佳答案
我遇到了同样的问题。我想到的解决方案是在文本模块中编辑 CMakeLists.txt 文件。
替换
if(${Tesseract_FOUND})
include_directories(${Tesseract_INCLUDE_DIR})
endif()
与
add_definitions( -DWINDOWS)
add_definitions( -DNOMINMAX)
SET(Tesseract_DIR "C:\\tesseract-build\\tesseract-ocr")
SET(Lept_DIR "C:\\tesseract-build\\lib")
include_directories(
${Tesseract_DIR}/api
${Tesseract_DIR}/ccutil/
${Tesseract_DIR}/ccstruct/
${Tesseract_DIR}/ccmain/
)
link_directories( ${Tesseract_DIR}/vs2013/bin/Win32/DLL_Release/
${Lept_DIR}/
${Lept_DIR}/Win32/
)
当你运行 Cmake 时,Tesseract 仍然是 no,Tessaract/Lept 库应该是空的。
关于windows - Tesseract + opencv 3.0 + windows,文本模块体积小,链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32038445/
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server
这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub
如何将send与+=一起使用?a=20;a.send"+=",10undefinedmethod`+='for20:Fixnuma=20;a+=10=>30 最佳答案 恐怕你不能。+=不是方法,而是语法糖。参见http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_expressions.html它说Incommonwithmanyotherlanguages,Rubyhasasyntacticshortcut:a=a+2maybewrittenasa+=2.你能做的最好的事情是:
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我
我有这个代码:context"Visitingtheusers#indexpage."dobefore(:each){visitusers_path}subject{page}pending('iii'){shouldhave_no_css('table#users')}pending{shouldhavecontent('Youhavereachedthispageduetoapermissionic错误')}它会导致几个待处理,例如ManagingUsersGivenapractitionerloggedin.Visitingtheusers#indexpage.#Noreason
我有一个数组数组,想将元素附加到子数组。+=做我想做的,但我想了解为什么push不做。我期望的行为(并与+=一起工作):b=Array.new(3,[])b[0]+=["apple"]b[1]+=["orange"]b[2]+=["frog"]b=>[["苹果"],["橙子"],["Frog"]]通过推送,我将推送的元素附加到每个子数组(为什么?):a=Array.new(3,[])a[0].push("apple")a[1].push("orange")a[2].push("frog")a=>[[“苹果”、“橙子”、“Frog”]、[“苹果”、“橙子”、“Frog”]、[“苹果”、“