Ask Your Question
10

How to display image on JAVA release

asked 2013-02-26 23:52:02 -0600

wolvican gravatar image

Hi everyone,

In new release OpenCV 2.4.4, how can I display image ( Mat ) on window using JAVA. I couldn't find the JAVA method from API?

edit retag flag offensive close merge delete

2 answers

Sort by ยป oldest newest most voted
5

answered 2013-02-27 05:54:43 -0600

Window management from OpenCV highgui module is no wrapper to Java yet. You need to use some Java UI frameworks like SWING or wrap it to Java manually using JNI.

edit flag offensive delete link more
4

answered 2014-04-22 11:33:33 -0600

rafaoc gravatar image

updated 2014-04-22 11:34:36 -0600

You can use the next code to transform a cvMat element into a java element: BufferedImage or Image:

    public BufferedImage Mat2BufferedImage(Mat m){
// source: http://answers.opencv.org/question/10344/opencv-java-load-image-to-gui/
// Fastest code
// The output can be assigned either to a BufferedImage or to an Image

    int type = BufferedImage.TYPE_BYTE_GRAY;
    if ( m.channels() > 1 ) {
        type = BufferedImage.TYPE_3BYTE_BGR;
    }
    int bufferSize = m.channels()*m.cols()*m.rows();
    byte [] b = new byte[bufferSize];
    m.get(0,0,b); // get all the pixels
    BufferedImage image = new BufferedImage(m.cols(),m.rows(), type);
    final byte[] targetPixels = ((DataBufferByte) image.getRaster().getDataBuffer()).getData();
    System.arraycopy(b, 0, targetPixels, 0, b.length);  
    return image;

}

And then display it with:

    public void displayImage(Image img2)
{   
    //BufferedImage img=ImageIO.read(new File("/HelloOpenCV/lena.png"));
    ImageIcon icon=new ImageIcon(img2);
    JFrame frame=new JFrame();
    frame.setLayout(new FlowLayout());        
    frame.setSize(img2.getWidth(null)+50, img2.getHeight(null)+50);     
    JLabel lbl=new JLabel();
    lbl.setIcon(icon);
    frame.add(lbl);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2013-02-26 23:52:02 -0600

Seen: 7,678 times

Last updated: Apr 22 '14