Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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:
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(); } }
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);
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.
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.