2016-04-28 12 views
5

Tôi phát triển hệ thống OCR dựa trên JavaCV.Cách chuyển đổi IplImage thành lept.PIX

tôi sử dụng thư viện sau cho dự án của tôi:

Trong một trường hợp tôi cần phải tìm một số phần của một hình ảnh và nhận ra chữ trên đó.

Tôi lưu trữ một phần của hình ảnh trong loại IplImage.

Nhưng đối với Tesseract tôi phải sử dụng định dạng PIX.

Làm cách nào để chuyển đổi IplImage thành Pix?

+0

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

+0

Có một vấn đề thiết kế mà ngăn cản bạn từ việc đọc các hình ảnh trực tiếp như PIX? –

+0

@goodbytes, tác giả của câu hỏi đã tìm thấy một hack. https://github.com/bytedeco/javacpp-presets/issues/224 –

Trả lời

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

--- Nguồn: Same Github issues Như đã đề cập bởi một lời nhận xét của rajind ruparathna

3

gửi bài hack như giải pháp được tìm thấy bởi các tác giả của câu hỏi. Nó cũng có thể được tìm thấy here.

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

Và từ question này, bạn có thể chuyển đổi IplImage để BufferedImage như sau.

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; 
} 
Các vấn đề liên quan