2016-02-16 1 views
-1

У меня есть проект, чтобы найти текст, угол поворота изображения, и я использую Tess4j, так как я могу получить правильный угол ориентации изображения, есть ли какой-либо вариант в Tess4j, который может вращаться изображение в правильной ориентации ...текст вставлял определение ориентации изображения с помощью tesseract/tess4j OCR

, если я даю изображение в качестве входного сигнала, поэтому вывод должен быть правильным ориентированным изображением ... первое изображение является как входным, а 2n - вне, так как я могу это сделать .. .. PLZZ помочь мне input image desire output image

+0

я могу предложить, как это сделать в FineReader OCR Engine. Довольно легко. –

ответ

1

для ориентации изображения и страницы segmantation

public class TestOrientation { 
    public static void D() throws Exception { 

     TessAPI api=LoadLibs.getTessAPIInstance(); 
     TessBaseAPI handle=TessAPI1.TessBaseAPICreate(); 

     File tiff = new File("C:/Users/atul/Desktop/test1.tif"); 
     String datapath = "C:/Tesseract/tessdata"; 
     String language = "eng"; 
     int expResult = TessPageSegMode.PSM_AUTO_OSD; 
     IntBuffer orientation = IntBuffer.allocate(1); 
     IntBuffer direction = IntBuffer.allocate(1); 
     IntBuffer order = IntBuffer.allocate(1); 
     FloatBuffer deskew_angle = FloatBuffer.allocate(1); 

     BufferedImage image = ImageIO.read(new FileInputStream(tiff)); // require jai-imageio lib to read TIFF 
     ByteBuffer buf = ImageIOHelper.convertImageData(image); 
     int bpp = image.getColorModel().getPixelSize(); 
     int bytespp = bpp/8; 
     int bytespl = (int) Math.ceil(image.getWidth() * bpp/8.0); 
     api.TessBaseAPIInit3(handle, datapath, language); 
     api.TessBaseAPISetPageSegMode(handle, TessPageSegMode.PSM_AUTO_OSD); 
     int actualResult = api.TessBaseAPIGetPageSegMode(handle); 

     api.TessBaseAPISetImage(handle, buf, image.getWidth(), image.getHeight(), bytespp, bytespl); 
     int success = api.TessBaseAPIRecognize(handle, null); 
     if (success == 0) { 
      TessPageIterator pi = api.TessBaseAPIAnalyseLayout(handle); 
      api.TessPageIteratorOrientation(pi, orientation, direction, order, deskew_angle); 
      System.out.println("Orientation:" + orientation.get()+ 
       "\nWritingDirection:"+Utils.getConstantName(direction.get(), TessWritingDirection.class)+ 
       " \nTextlineOrder:" + Utils.getConstantName(order.get(), TessTextlineOrder.class)+ 
       "\nDeskew angle: %.4f\n"+deskew_angle.get()); 
     } 
    } 

    public static void main(String[] args) { 
     try { 
      D(); 
     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 
0

Вы можете использовать OpenCV для этой операции. Во-первых, вам нужно вычислить угол наклона изображения. Затем вы можете повернуть свое изображение с помощью угла, который вы нашли.

Вы можете проверить эту ссылку. Это действительно полезно. Но вам нужно реализовать его на Java.

http://felix.abecassis.me/2011/09/opencv-detect-skew-angle/

0

Tess4J поддерживает определение угла наклона изображения и вращая его. Посмотрите его страницу API documentation для получения дополнительной информации.

+0

может tess4j вернуть изображение поворота или угол поворота ???? – rj27