cimg tutorial

Páginas: 5 (1212 palabras) Publicado: 28 de julio de 2013
Introducci´n
o

Este documento presenta una rese˜a de la librer´ CImg para procesamiento de im´genes
n
ıa
a
en C++. Se explica brevemente su instalaci´n, compilaci´n y las funciones fundameno
o
tales para cargar una imagen de archivo, obtener informaci´n de la misma, visualizarla
o
y otras cuestiones de manejo b´sico,
a
La librer´ y su documentaci´n est´ disponible en:
ıa
o
ahttp://cimg.sourceforge.net

2.

Instalaci´n
o

Previo a su instalaci´n es necesario tener instalado:
o
un compilador de C++ (paquete gcc),
el programa ImageMagick (paquete imagemagick) para la creaci´n de las ventao
nas, disponible en http://www.imagemagick.org. Este paquete est´ preinstalado
a
en varias distribuciones de Linux, para saber si ya est´ instalado ejecutar la insatrucci´n display desde un terminal (debe mostrar la ventana del programa),
o
la librer´ de manejo de las X en Linux (paquete libX11-dev).
ıa
En Linux descarga la librer´ mediante
ıa
wget http://cimg.sourceforge.net/cimg-dev.deb
e instala con
dpkg -i cimg-dev.deb
o bien bajando los archivos del sitio web e instalando manualmente.

3.

Compilaci´n
o

Durante la compilaci´n con g++ de unc´digo fuente prog.cpp en Linux es necesario
o
o
indicar las librer´ enlazadas, de la siguiente manera:
ıas
g++ -o prog prog.cpp -02 -lm -lpthread -lX11
1

Si se edita el archivo fuente con Anjuta, es posible dejar como par´metros de la compilaa
ci´n las librer´ indicando en el men´ “Opciones/Opciones del compilador y enlazador”,
o
ıas,
u
solapa “Opciones”, campo “Flags delcompilador (CFLAGS)”:
-L/usr/X11R6/lib -lm -lpthread -lX11.
Para compilar en otras plataformas y compiladores ver:
http://cimg.sourceforge.net/reference/group cimg overview.html

4.

Manejo b´sico de una imagen
a
Crear una imagen vac´
ıa:
CImg img(dx,dy,dz,dc,val);
El tipo de dato utilizado para guardar los valores de la imagen es variado: unsigned
char, int, float,.... El tipo por defecto esfloat, accesible mediante la instrucci´n CImg img...
o
El resto de los par´metros son:
a
• dx: ancho, n´mero de columnas.
u
• dy: alto, n´mero de filas.
u
• dz: profundidad, n´mero de cuadros.
u
• dc: n´mero de canales, ej: 1 (escala de grises), 3 (color).
u
• val: valor de inicializaci´n de los pixeles, ej: 0 (negro).
o
Ejemplos:
• CImgimg(640,480): imagen en tonos de grises.
•CImgimg(640,480,1,1,0): idem anterior, pero inicialmente negra.
• CImgimg(3,3,1,1,1/9): imagen de 3x3 en tonos de grises inicializada con
valores 1/9 (utilizada como m´scara para filtrado de promediado).
a
• CImgimg(200,100,1,3): imagen color.
Crear una imagen carg´ndola de un archivo:
a
CImg img(“archivo.ext”);
La instrucci´n anterior equivale a:
o
CImg img;
img.load(“archivo.ext”);Campos de la estructura CImg: accesibles a trav´s de las siguientes funciones,
e
mediante la instrucci´n img.funcion:
o
• width: ancho, n´mero de columnas.
u
u
• height: alto, n´mero de filas.
• depth: profundidad, n´mero de cuadros.
u
o
u
• spectrum: dimensi´n del pixel, n´mero de canales.
• ptr(): datos, puntero a la matriz imagen.
2

La matriz se accede desde el elemento (0,0) en laesquina superior izquierda, hasta
el elemento (ancho-1,alto-1) en la esquina inferior derecha.
Visualizaci´n de una imagen:
o
La matriz de imagen se visualiza en una estructura de datos especial que crea la
ventana y adem´s maneja eventos de teclado y mouse:
a
CImgDisplay ventana(img,‘‘titulo’’,n);
El par´metro img es la matriz con la imagen propiamente dicha, mientras que el
a
par´metron es la normalizaci´n de la visualizaci´n (0: sin normalizaci´n, 1(dea
o
o
o
fault): normalizada al intervalo [0,255] ´ 2: cambia el comportamiento por defecto
o
a normalizada de ah´ en adelante)1 . La cadena de caracteres ‘‘titulo’’ fija el
ı

ıtulo que aparecer´ en la barra superior de la ventana.
a
El ejemplo siguiente muestra la creaci´n de la ventana y un bucle que la mantiene...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Tutoriales
  • tutorial
  • Tutorial
  • Tutorial
  • tutorial
  • tutorial
  • Tutorial
  • Tutoriales

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS