我将检测并在必要时更正扫描的文档图像的方向。我已经能够对文档进行校正,但仍然可能发生,文档是颠倒的并且需要旋转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_DOWN
和ORIENTATION_PAGE_RIGHT
可以使用,但永远不会返回。
A。)上面的代码有什么问题吗?
B.)我还能如何确定文件方向?
答案 0 :(得分:5)
如何运行检测评估检测率然后翻转相同的事情呢?更好的利率给出了正确的方向。