#include #include #include #include "OCRManager.h" using namespace sequencelogic; void writeHelp() { std::cout << "Usage: sequencelogic-ocr [OPTIONS] [FILE_OR_FOLDER_NAME]" << std::endl << "Option Meaning" << std::endl << "-----------------------------" << std::endl << "-h Show the help message." << std::endl << "-i The given input is a file to be OCR'd." << std::endl << "-p 'Pretty print' the output file." << std::endl << "-e {xx} Stop OCR after XX pages cannot be recognized." << std::endl << "-v Verifies that the license is configured correctly." << std::endl << "-s Saves every page as a separate .PNG file." << std::endl << "-m {xx} Runs the multi threaded version of Nuance usig XX threads (2 by default)." << std::endl; } int main(int argc, char *argv[]) { std::string opts = "f:i:e:m:hvps"; char opt; bool prettyPrint = false; bool ran; bool singlePageOutput = false; bool validate = false; int threadCount = 2; int numPagesInErrorOk = 0; std::string inputFile; OCRManager ocr; while ((opt = static_cast(getopt(argc, argv, opts.c_str()))) != EOF) { switch (opt) { case 'i': inputFile = optarg; case 'v': validate = true; break; case 's': singlePageOutput = true; break; case 'e': numPagesInErrorOk = atoi(optarg); break; case 'h': case '?': default: writeHelp(); break; case 'p': prettyPrint = true; break; case 'm': threadCount = atoi(optarg); break; } } //run the ocr ocr.RunOCR(inputFile, prettyPrint, numPagesInErrorOk, threadCount, singlePageOutput); }