2015-08-16 2 views
2

Я разместил этот текст два дня назад в answer.opencv.org, теперь я размещаю его здесь. http://answers.opencv.org/question/68634/text-contrib-module-and-tesseract/Tesseract + opencv 3.0 + окна, текстовый модуль небольшого размера, ошибки связи

Добрый день всем. Прежде всего, извините за мой английский хе-хе. Я пытаюсь создать текст текста opencv contrib, но у меня нет . Примечание. Другие модули, такие как xfeatures2d, никогда не задавали .

Моя платформа Windows 7 x64 и я использую VS2013, как компилятор, я следовал этому учебник (http://vorba.ch/2014/tesseract-3.03-vs2013.html), чтобы строить Тессеракта 3,04 в LIB, но после компиляции успешно, я хочу генерировать vproj с CMake и проблемой является следующее:

В CMake GUI, ранее выбранный источник OpenCV, ДОПОЛНИТЕЛЬНО каталог, и т.д. и т.п., я не получаю ВАР под группой «» тессеракта установить correcly (ВКЛЮЧИТЬ и LIBS). Я знаю это, потому что, когда я нажимаю на configure, в журнале указано «Tesseract: NO».

Я осмотрел Cmake сценарий FindTesseract, и я думаю, что это не работает ....

Пожалуйста, кто-нибудь может дать мне немного понятия о том, что происходит? Как Могу ли я создать текстовый модуль opencv для использования функций Tesseract?

Также я пытался скомпилировать текст модуля добавления ссылок пути к Tesseract , но когда я хочу использовать в моей программе я получаю ошибки ссылку о неопределенных символов ...

Эта ситуация принимает меня Serveral дней беспокоишь меня. Есть ли кто-то, кто использует текстовый модуль под окнами?


Никто не может мне помочь? Я сделал некоторый прогресс, теперь cmake GUI, говорит мне Tesseract: Да. Проблема заключалась в том, что я не нашел запись для ссылки leptonica lib, которая не входит в ту же группу Tesseract, но в «Ungrouped Entries».

Хорошо, проблема остается прежней, решение VS, созданное cmake, не правильно построило текстовый модуль, так как я вижу, что Lept lib около 9 Мб, а TesseractLib - 128 Мб (в/МТ и отладка), однако opencv_text300d. lib - всего 12 Мб. Что-то не так.

Я не уверен в том, какую версию tesseract я должен использовать. Я Traid с двумя комбинациями: liblept168 статического-mtdll-debug.lib + libtesseract302 статических-debug.lib и liblept171 статического-mtdll-debug.lib + libtesseract304 статических-debug.lib

Конечно, когда я связываю текстовый модуль с моей программой, он дает мне ошибки ссылок.


Ошибки связывания выглядят так: opencv_text300d.lib (ocr_tesseract.OBJ): ошибка 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); 
... 

Очевидно, я создал свой проект с дополнительными включают каталоги, компоновщика дополнительный каталог библиотеки и ввода дополнительных dependecies в текстовом модуле.

Действительно, большое вам спасибо за продвижение.

ответ

3

У меня была такая же проблема. Решение, с которым я столкнулся, состояло в том, чтобы отредактировать файл 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, Тессеракт все равно будет не и библиотека Tessaract/Lept должна быть пустой.

+0

Спасибо вам большое! Это имеет смысл! –

+0

Если это сработает для вас, пожалуйста, примите мой ответ. – Ravk

+0

Да, у меня есть схожие изменения, и это работает !!!! – Jithendra

Смежные вопросы