2016-03-07 19 views
1

我有正方体3.04静电积累,我试图用official samples提供的代码以提取方位信息:在提取如何使用Tesseract 3.04正确提取图像的方向信息?

const char* inputfile = "/usr/src/tesseract/testing/eurotext.tif"; 
    tesseract::Orientation orientation; 
    tesseract::WritingDirection direction; 
    tesseract::TextlineOrder order; 
    float deskew_angle; 

    PIX *image = pixRead(inputfile); 
    tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI(); 
    api->Init("/usr/src/tesseract/", "eng"); 
    api->SetPageSegMode(tesseract::PSM_AUTO_OSD); 
    api->SetImage(image); 
    api->Recognize(0); 

    tesseract::PageIterator* it = api->AnalyseLayout(); 
    it->Orientation(&orientation, &direction, &order, &deskew_angle); 
    printf("Orientation: %d;\nWritingDirection: %d\nTextlineOrder: %d\n" \ 
     "Deskew angle: %.4f\n", 
     orientation, direction, order, deskew_angle); 

我的应用程序崩溃以下行:

it->Orientation(&orientation, &direction, &order, &deskew_angle); 

到底哪里出问题了在这个代码中?

谢谢!

回答

0

我发现取向tesserect通过下面的代码,并将其返回0,1(= 90),2(= 180),3(= 270)取向的侧面

#include <osdetect.h> 
#include <baseapi.h> 
#include <allheaders.h> 
int main() 
{ 
    TessBaseAPI *tessBaseAPI = new TessBaseAPI(); 
    tessBaseAPI ->Init("/tessdataPath/", "eng")) 
    Pix *image = pixRead(imagePath); 
    tessBaseAPI->SetImage(image); 
    //orientation 
    OSResults os_results; 
    tessBaseAPI->DetectOS(&os_results); 
    int orientationType=os_results.best_result.orientation_id 
    pixDestroy(&image); 
    return 0; 
}