Ошибка сборки с C API Тессеракт OCR - PullRequest
1 голос
/ 23 июля 2011

Используя ссылки на , используя API и другой , как получить данные изображения в формате, распознаваемом Tesseract Я написал следующий код и добавил каталог ...tesseract/ccmain/ в Включить каталоги моего проекта Visual C ++ (который уже используется для OpenCV].

#include "baseapi.h"

..... [код OpenCV и прочее] ....

//********************* Tesseract OCR function calls *********************************************

 // create a temp buffer 
    unsigned char *buffer,*temp2; 
    buffer = new unsigned char[plate->width*plate->height*plate->nChannels]; 
    //'plate' is an IplImage*
    temp2 = buffer; 
    // pointer to imageData 
    unsigned char *temp1 = (unsigned char*) plate->imageData; 
    // copy imagedata to buffer row by row 
    for(i=0;i<plate->height;i++) 
    { 
            memcpy(temp2, temp1, plate->width*plate->nChannels); 
            // imageData jump to next line 
            temp1 = temp1 + plate->widthStep; 
            // buffer jump to next line 
            temp2 = temp2+ plate->width*plate->nChannels; 
    } 

     TessBaseAPI::InitWithLanguage(NULL, NULL, "eng", NULL, false, 0, NULL);
  char* Text = TessBaseAPI::TesseractRect( buffer, 8, 8,
                               0, 0, plate->width,plate->height);
  TessBaseAPI::End();

  printf("\n%s", Text );

Он скомпилирован без ошибок, но когда я пытаюсь его скомпилировать, для каждого вызова функции, связанного с Тессерактом, возникает такая ошибка: «Неразрешенный внешний символ XXXXX». Я делаю какую-либо ошибку в компоновке и включении Тессеракта, который появляется не при компиляции, а только при сборке?

Любая помощь будет отличной.

РЕДАКТИРОВАТЬ: это сообщения об ошибках:

Linking...
image.obj : error LNK2001: unresolved external symbol "public: static void __cdecl TessBaseAPI::End(void)" (?End@TessBaseAPI@@SAXXZ)
image.obj : error LNK2001: unresolved external symbol "public: static char * __cdecl TessBaseAPI::TesseractRect(unsigned char const *,int,int,int,int,int,int)" (?TesseractRect@TessBaseAPI@@SAPADPBEHHHHHH@Z)
image.obj : error LNK2001: unresolved external symbol "public: static int __cdecl TessBaseAPI::InitWithLanguage(char const *,char const *,char const *,char const *,bool,int,char * * const)" (?InitWithLanguage@TessBaseAPI@@SAHPBD000_NHQAPAD@Z)
Debug/proj.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.
Creating browse info file...

proj.exe - 4 error(s), 0 warning(s)

Ответы [ 2 ]

1 голос
/ 23 июля 2011

Вам необходимо найти связанные файлы .LIB и связать их с вашим проектом.

0 голосов
/ 25 июля 2011

Привет. Не могли бы вы попробовать следующий код ...

#define TESSDLL_IMPORTS
#include "stdafx.h"
#include "baseapi.h"
#include <string>

using namespace std;

int main(int argc, char **argv)
{
    string outfile;
    tesseract::TessBaseAPI api;

    return 0;
}
...