2016-04-28 8 views
5

Я разрабатываю OCR-систему на основе JavaCV.Как преобразовать IplImage в lept.PIX

Я использую следующие библиотеки для моего проекта:

В одном случае мне нужно найти какую-то часть изображения и распознавать буквы на нем.

Я сохраняю часть изображения в IplImage.

Но для Tesseract я должен использовать формат PIX.

Как преобразовать IplImage в Pix?

+0

http://stackoverflow.com/a/8126992/2836621 –

+0

Есть ли дизайн проблема, которая мешает вам считывание изображения непосредственно как PIX? –

+0

@ goodbytes, автор вопроса нашел хак. https://github.com/bytedeco/javacpp-presets/issues/224 –

ответ

1
IplImage prepareImg = ... 
cvSaveImage("test.jpg", prepareImg);    
PIX pixImage = pixRead("/test.jpg"); 

--- Источник: Same Github issues Как отметил комментарий по rajind ruparathna

3

проводкой хак, как решения, найденного автором вопроса. Также можно найти here.

IplImage prepareImg = ... 
cvSaveImage("plate.jpg", prepareImg);    
PIX pixImage = pixRead("/plate.jpg"); 

И от этого question, вы можете конвертировать IplImage в BufferedImage следующим образом.

public static BufferedImage toBufferedImage(IplImage src) { 
    OpenCVFrameConverter.ToIplImage iplConverter = new OpenCVFrameConverter.ToIplImage(); 
    Java2DFrameConverter bimConverter = new Java2DFrameConverter(); 
    Frame frame = iplConverter.convert(src); 
    BufferedImage img = bimConverter. convert(frame); 
    BufferedImage result = (BufferedImage)img.getScaledInstance(
     img.getWidth(), img.getHeight(), java.awt.Image.SCALE_DEFAULT); 
    img.flush(); 
    return result; 
}