如何检测扫描文档的方向?

Ped*_*dro 4 c++ tesseract image-processing

我会检测并在必要时纠正扫描文档图像的方向.我已经能够对文档进行校正,但仍然可能发生,文档是颠倒的并且需要旋转180°.

使用tesseract的布局分析功能,应该可以使用以下代码确定文档的方向:

    tesseract::TessBaseAPI api; 
    api.Init(argv[0], "eng");
    api.SetImage(img); 
    api.SetPageSegMode(tesseract::PSM_AUTO_OSD); 
    tesseract::PageIterator* it = api.AnalyseLayout();

    tesseract::Orientation orient;
    tesseract::WritingDirection dir;
    tesseract::TextlineOrder order; 
    float f;
    it->Orientation(&orient, &dir, &order, &f); 

    if(orient == tesseract::Orientation::ORIENTATION_PAGE_UP)
        std::cout << "Page Up\t"; 
    else if(orient == tesseract::Orientation::ORIENTATION_PAGE_LEFT)
        std::cout << "Page Left\t"; 
    else if(orient == tesseract::Orientation::ORIENTATION_PAGE_DOWN)
        std::cout << "Page Down\t"; 
    else if(orient == tesseract::Orientation::ORIENTATION_PAGE_RIGHT)
        std::cout << "Page Right\t";
Run Code Online (Sandbox Code Playgroud)

但是,代码似乎无法正常工作,因为它始终ORIENTATION_PAGE_UP在纵向格式文档和ORIENTATION_PAGE_LEFT横向格式时返回.(ORIENTATION_PAGE_DOWNORIENTATION_PAGE_RIGHT可以使用,但再也没有回来).

A.)上面的代码有什么问题吗?

B.)我还能如何确定文件方向?

Mar*_*tin 5

如何运行您的检测评估检测率,然后翻转相同的事情?更好的利率给出了正确的方向.