cargar y mostrar una imagen con opencv en java

5
Cargar y Mostrar una Imagen con OpenCV en Java 6 agosto, 2013 / 21 Comentarios / Jonathan Melgoza 0 inShare En este Articulo veremos como Cargar y Mostrar una Imagen con OpenCV en Java y lo veremos mediante un sencillo ejemplo para que nos sirva de base para futuros proyectos en los que normalmente necesitaremos mostrar una imagen al usuario. La libreria para la interfaz grafica que usaremos para mostrar la imagen sera SWING, como dijimos antes usaremos netbeans pero igualmente puedes utilizar cualquier otro como eclipse donde ya hemos realizado la instalacion de opencv en el siguiente articulo aqui, los puntos importantes que trataremos seran: leer y cargar una imagen de nuestro disco duro a nuestro programa, convertir una imagen Mat de opencv a Image de AWT, mostrar una imagen en una ventana grafica. Veamos como cargar y mostrar una imagen con opencv en java y netbeans, Comencemos… Requerimientos

Upload: jesus-alexander-yamunaque-santos

Post on 23-Oct-2015

458 views

Category:

Documents


1 download

TRANSCRIPT

Cargar y Mostrar una Imagen con OpenCV en Java6 agosto, 2013 / 21 Comentarios / Jonathan Melgoza

 

 

  0

inShare

En este Articulo veremos como Cargar y Mostrar una Imagen con OpenCV en Java y lo veremos mediante un sencillo ejemplo para que nos sirva de base para futuros proyectos en los que normalmente necesitaremos mostrar una imagen al usuario. La libreria para la interfaz grafica que usaremos para mostrar la imagen sera SWING, como dijimos antes usaremos netbeans pero igualmente puedes utilizar cualquier otro como eclipse donde ya hemos realizado la instalacion de opencv en el siguiente articulo aqui, los puntos importantes que trataremos seran: leer y cargar una imagen de nuestro disco duro a nuestro programa, convertir una imagen Mat de opencv a Image de AWT, mostrar una imagen en una ventana grafica. Veamos como cargar y mostrar una imagen con opencv en java y netbeans, Comencemos…

Requerimientos

Netbeans OpenCV instalado y Configurado

Desarrollo

Lo primero sera crear un nuevo proyecto en Netbeans para ello vamos a FILE -> NEW PROJECT -> JAVA -> JAVA APPLICATION, la nombramos como queramos y terminamos.Agregamos la libreria de OpenCV en nuestro proyecto.En este proyecto utilizaremos la siguiente imagen para mostrarla:

Ahora crearemos nuestra clase principal de el proyecto:

public class Main {

public static void main(String args[]){

System.out.println("Cargar y Mostrar una Imagen con OpenCV en Java y

Netbeans");

System.loadLibrary("opencv_java246");

new Procesar();

}

}

Desde aqui mandamos llamar a otra llamada Procesar:

class Procesar{

URL img_url = getClass().getResource("/resources/paisaje.jpg");

String ruta = img_url.getPath();

public Procesar(){

Mat imagen;

if (ruta.startsWith("/")) {

ruta = ruta.substring(1);

}

imagen = Highgui.imread(ruta,Highgui.CV_LOAD_IMAGE_COLOR);

if(!imagen.empty()){

Image imagenMostrar = convertir(imagen);

int width=imagenMostrar.getWidth(null);

int height=imagenMostrar.getHeight(null);

Ventana ventana = new Ventana(imagenMostrar);

ventana.setSize(width,height);

ventana.setLocationRelativeTo(null);

ventana.setVisible(true);

}

}

private Image convertir(Mat imagen) {

MatOfByte matOfByte = new MatOfByte();

Highgui.imencode(".jpg", imagen, matOfByte);

byte[] byteArray = matOfByte.toArray();

BufferedImage bufImage = null;

try {

InputStream in = new ByteArrayInputStream(byteArray);

bufImage = ImageIO.read(in);

} catch (Exception e) {

e.printStackTrace();

}

return (Image)bufImage;

}

}

En esta clase se realiza todo el proceso de cargar la imagen a nuestro programa y el proceso de conversion de la imagen de tipo Mat de opencv a objeto Image de AWT finalmente se envia a nuestro objeto ventana la imagen ya en formato AWT para ser mostrada.

Ventana ventana = new Ventana(imagenMostrar);

Nuestro Objeto Ventana no es mas que una clase que hereda de JFrame que solo tiene un JLabel, en el constructor recibe la imagen y la asigna al icono de esta etiqueta.

public class Ventana extends javax.swing.JFrame {

public Ventana(Image img) {

initComponents();

jLabel1.setIcon(new ImageIcon(img));

}

....

...

..

.

Ejecutamos y si todo va bien veremos el resultado final

Visto – Cargar y Mostrar una Imagen con OpenCV en Java