现在,当我将处理后的图像传递给tesseractOCR进行识别时,我将首先将其保存为tif文件格式,然后将其读取到tesseractOCR引擎。我发现这个过程太耗时和奇怪了,有没有任何方法可以直接将mat文件传递给tesseract引擎进行识别,而无需保存和加载?提前谢谢。
Mat imagefromOpenCV= new Mat();
Tesseract1 instance = new Tesseract1();
String filename = "C:\image.tif";
Imgcodecs.imwrite(filename, imagefromOpenCV);
File imageFile = new File(filename); // do reading
String OCR_str = instance.doOCR(imageFile); // performing OCR
从http://tess4j.sourceforge.net/docs/docs-0.4/net/sourceforge/tess4j/Tesseract1.html,看来你可以使用doOCR(java.awt.image.BufferedImage bi)
或doOCR(int xsize, int ysize, java.nio.ByteBuffer buf, java.awt.Rectangle rect, int bpp)
来实现你的目标。例如,您可以使用http://www.codeproject.com/Tips/752511/How-to-Convert-Mat-to-BufferedImage-Vice-Versa将Mat输入转换为BufferedImage,并在BufferedImage上调用doOCR
。