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

时间:2011-11-17 20:07:10

标签: c++ image-processing tesseract

我将检测并在必要时更正扫描的文档图像的方向。我已经能够对文档进行校正,但仍然可能发生,文档是颠倒的并且需要旋转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";

然而,代码似乎无法正常工作,因为当文档为纵向格式时,代码始终返回ORIENTATION_PAGE_UP,而当格式为横向格式时,ORIENTATION_PAGE_LEFT。 (ORIENTATION_PAGE_DOWNORIENTATION_PAGE_RIGHT可以使用,但永远不会返回。

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

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

1 个答案:

答案 0 :(得分:5)

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