我想从图像中使用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'忽略突出显示文字,所以我可能会尝试预处理。 –