我想從圖像中使用tesseract
讀取文本,圖片的質量很高,因此tesseract
能夠以95%的準確度讀取文本,這對我來說是正確的。在無法但是tesseract
讀取一個突出顯示的文本(選擇),請參照PIC使用tesseract從圖片中讀取突出顯示的文本
如何能使用tesseract
我讀選定區域中的文本,有沒有什麼辦法來確定哪些詞是在圖像中突出顯示?
用於從圖像中讀取和轉換文本的代碼如下。 tesseract :: TessBaseAPI * myOCR = new tesseract :: TessBaseAPI();
// cout < <「hello」< < endl;
如果(myOCR->初始化( 「C:\ QTSoftware \ IODriver \」, 「工程」)){
SaveLineLog(brdInd, "Unable to initialize tesseract engine", __LINE__);
return RC_TESSERACT_ENG_FAILURE;
//fprintf(stderr, "Could not initialize tesseract.\n");
//return RC_THREAD_FAILURE;
//exit(1);
}
SaveLineLog(brdInd, "tesseract engine is UP :)", __LINE__);
//strcpy_s(fileName, "C:\\TEMP\\T481Logs\\FrameOCR23_0.jpg");
FILE *pFile;
fopen_s(&pFile,fileName, "r"); // Open picture
PIX* pix; // Image format from `leptonica`
pix = pixReadStreamBmp(pFile);
fclose(pFile);
//Pix *pix = pixRead(fileName);
//Pix *pix = pixReadStreamBmp(fileName);
//cout << "Tesseract - Pix : " << pix << endl;
if (pix == NULL)
{
SaveLineLog(brdInd, "Pix failure", __LINE__);
return RC_TESSERACT_PIX_FAILURE;
}
myOCR->SetImage(pix);
char* outText = myOCR->GetUTF8Text();
你可以附上你使用的代碼,你是否在將圖像傳遞給tesseract方法之前執行任何預處理? – ZdaR
我在應用程序中使用了上面的代碼來調用'tesseract'並從圖像中獲取文本,因爲所有圖像都是黑白的,所以不需要預處理,現在我發現'tesseract'忽略突出顯示文字,所以我可能會嘗試預處理。 –