CaladanBrood
CaladanBrood

Reputation: 192

Issue with declaring Tesseract OCR TessBaseAPI

I am new to Tesseract API. Currently I am running the sample program from the Wiki on Visual Studio 2013, and the program is as follows.

#include "leptonica\allheaders.h"
#include "iostream"
#include "api\baseapi.h"
#include "stdio.h"

using namespace std;
using namespace tesseract;

int main(int argc, char** argv)
{
char* outText;

TessBaseAPI *api = new TessBaseAPI();

// Initialize tesseract-ocr with English, without specifying tessdata path
if (api->Init(NULL, "eng")) 
{
    fprintf(stderr, "Could not initialize tesseract.\n");
    exit(1);
}

// Open input image with leptonica library
Pix *image = pixRead("/usr/src/tesseract-3.02/phototest.tif");
api->SetImage(image);
// Get OCR result
outText = api->GetUTF8Text();
printf("OCR output:\n%s", outText);

// Destroy used object and release memory
api->End();
delete[] outText;
pixDestroy(&image);

return 0;
}

When I compile this with VS2013, I get the following errors.

1>------ Build started: Project: OCRTest, Configuration: Debug Win32 ------
1>  main.cpp
1>c:\tesseract-build\include\leptonica\pix.h(209): warning C4305: 'initializing' : truncation        from 'double' to 'const l_float32'
1>c:\tesseract-build\include\leptonica\pix.h(211): warning C4305: 'initializing' : truncation from 'double' to 'const l_float32'
1>c:\tesseract-build\tesseract-ocr\api\baseapi.h(32): fatal error C1083: Cannot open include file: 'platform.h': No such file or directory
 ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

I believe I have not built the tesseract source properly, but I cannot be sure. Also, declaring

TessBaseAPI * api = new TessBaseAPI() 

throws up errors such as 'type specifier expected' when cursor is moved over TessBaseAPI(). Help would be greatly appreciated, and thank you in advance!

Upvotes: 1

Views: 2921

Answers (1)

user1
user1

Reputation: 4131

Assuming that you are using Tesseract 3.02.02 & leptonica 1.68 library.

Follow these steps.

  1. Remember to check Tesseract Development files option when installing Tesseract

  2. Add below Include folders in Project solutions -> VC++ Directories

    C:\Program Files\Tesseract-OCR\include
    C:\Program Files\Tesseract-OCR\include\tesseract
    C:\Program Files\Tesseract-OCR\include\leptonica
    
  3. Add below lib folder in Project solutions -> VC++ Directories

    C:\Program Files\Tesseract-OCR\lib

  4. Add additional dependencies in Configuration Properties -> Linker->Input ->Additional Dependencies

    libtesseract302.lib
    libtesseract302d.lib
    liblept168.lib
    liblept168d.lib
    
  5. General program structure

> 
>     #include <baseapi.h>
>     #include <allheaders.h>
>     #include <iostream>
> 
>     using namespace std;
> 
>     int main(void)
>     {
>      tesseract::TessBaseAPI api;
>      //...
>     }
> 
> 

Upvotes: 1

Related Questions