2 de enero de 2011

Mostrar una imagen

Resultado:  


Código:

import cv

    im=cv.LoadImage("C:\\building.jpg")

    cv.ShowImage('imagen',im)

    cv.WaitKey(0)


Solo estas 4 lineas son necesarias para cargar y mostrar una imagen Python usando OpenCV. Voy a explicar para que sirve cada una de las anteriores instrucciones.

import cv - importa todas las funciones de OpenCV es lo primero que se hace en cualquier programa que valla a usar las librerías.

im=cv.LoadImage("C:\\building.jpg") - Carga la imagen building.jpg que esta en la Ruta C:/building.jpg, por medio de la instrucción "loadimage" y se guarda en la variable im. Cuando se manejan rutas en python se deben colocar las barras inclinadas dos veces para indicarle a Python que es una ruta, esto es debido a que en Python existen instrucciones del tipo \t, \n, \r, que modifican el formato de un string por lo que cuando se coloca doble barra \\ Python reconoce que se esta escribiendo una barra y no se quiere modificar el formato del string. Si la imagen esta guardada en la misma ruta donde se ejecuta el archivo de Python, no es necesario escribir la ruta completa solo el nombre de la imagen y su extensión. (Pongo como ejemplo una ruta en Windows, pero también es valido hacerlo con una ruta en Linux. Por ejemplo: "/Escritorio/carpeta/building.png")

cv.ShowImage('imagen',im) - cv.ShowImage muestra una imagen que cargamos con la anterior instrucción y la muestra en una ventana llamada 'imagen'.

cv.WaitKey(0) - cv.WaitKey(), es una función que nos permite esperar cierta cantidad de tiempo mientras se presiona una tecla para continuar con la ejecución del programa, como en este caso el argumento que le pase es 0, entonces se queda indefinidamente esperando cualquier tecla para continuar.

Todas las funciones que se trabajan en Python deben comenzar con la siguiente sintaxis: "cv.nombredelafuncion(argumentos)" por ejemplo: cv.Loadimage(), cv.erode(). porque estamos realizando la importación de la siguiente manera:  import cv

Si la hubiéramos hecho de esta manera: from cv import * ,Python carga todas las funciones del modulo "cv" por lo que nos permite no tener que usar el prefijo "cv." antes de cada función. De esta manera el código nos quedaría de la siguiente manera


from cv import *

    im= LoadImage("C:\\building.jpg")

    ShowImage('imagen',im)

    WaitKey(0)


El primer código y el segundo son equivalentes por lo que los dos realizaran la misma tarea, sin embargo, el segundo es mas lento ya que tiene que cargar todos los métodos así no se usen por lo que es aconsejable realizarlo de la primera manera aunque se digite un poco mas código

Esto es todo lo que hay que realizar para mostrar un imagen con Python y OpenCV

7 comentarios:

  1. Hola, tengo instalado opencv y python 2.6.5 y el import cv no me lo coje, trabajo sobre linux.. no se si sera eso

    ResponderEliminar
  2. OpenCV funciona tanto en windows como en Linux, deberias especificar como realizaste la instalacion de OpenCV...

    ResponderEliminar
  3. Hola...
    como accedo a la direccion de la imagen en ubuntu al realizar cv.LoadImage("/home/miusuario/carpeta_donde_py/imgen.jpg") no funciona, e puedes ayudar

    ResponderEliminar
  4. Si colocas el mensaje de error sera mas fácil poderte ayudar. Saludos

    ResponderEliminar
  5. He descubierto hace poco tu web y me gusta lo claro que lo explicas todo. Un saludo y sigue así.

    ResponderEliminar
  6. hola carnal oye tengo un problema a la hora de mostrar la imagen ya la habia mostrado antes con la funcion cv.ShowImage('imagen',im) pero ahora ya no se muestra ahora me marca este error

    Traceback (most recent call last):
    File "D:/PROYECTO DE OPENCV/convertirImagen.py", line 8, in
    cv.ShowImage('imagen',im)
    error: Can't load OpenGL extension [glGenerateMipmap]

    me dice que hay un problema o que le falta la extension glGenerateMipmap de OpenGL

    ResponderEliminar
  7. Podrías hacerme favor de decirme como abrir un selector de archivos gráficamente para abrir mi imagen desde ahí?

    ResponderEliminar