Está en la página 1de 97

Procesamiento Digital de

Imgenes

Dr. Rubn Wainschenker


Mg. Ing. Jos Mara Massa
Mg. Ing. Paula Tristan
Clase Terico Prctica N 1

Optativa rea Procesamiento de seales


Primer cuatrimestre de 2011
Objetivos de la materia

Extraer informacin de imgenes digitales.


Utilizar herramientas informticas para la extraccin de informacin.
Capturar, realzar, segmentar, medir, identificar y visualizar objetos de inters
en las imgenes.
Aplicaciones en diversas reas: medicina, medioambiente, industria,
seguridad, gestin.
Programa
Imgenes y procesamientos digitales. Introduccin.
Representacin de imgenes digitales. Cmara oscura. Imagen fotogrfica. Imagen digital. RGB. CMY. CMYK. Muestreo y
Cuantificacin.
Obtencin de imgenes digitales. Detectores, scanners, cmaras CCD, microdensitmetros, ojo humano.
Almacenamiento de imgenes digitales. Formatos de almacenamiento de imgenes digitales. Paleta. BMP, GIF, TIFF, JPEG, etc.
Anlisis de imgenes digitales. Definicin de contraste, brillo e intensidad luminosa. Histograma.
Procesamientos elementales: Realce, Funciones de punto. Realce de tonos claros, oscuros y medios. Expansin de grises.
Ecualizacin del histograma. Conectividad. Distancia.
Reduccin de ruido en imgenes digitales. Suavizado. Filtros mediana, promedio, combinacin promedio-mediana. Convolucin.
Mtodo de trabajo con cualquier filtro. (Normalizacin con expansin lineal, etc.)
Deteccin de bordes en imgenes digitales. Estudio de funciones, derivada continua, derivada segunda, derivada digital,
asociacin de derivadas a bsquedas de bordes. Filtro de Roberts. Filtros de prewitt y de Kirsch. Deteccin de bordes con direccin
preferencial. Filtro de Sobel. El Laplaciano y su filtro.
Operaciones geomtricas en imgenes digitales. Tratamiento de firmas y otros objetos claramente definidos: Centro geomtrico,
centro de gravedad, Traslaciones, rotaciones, busqueda del angulo de rotacin, teorema del coseno, zoom.
Segmentacin. Crecimiento local por cota relativa. Operaciones morfolgicas. Erosin y dilatacin. Bordes por diferencia entre
original y erosin. Apertura y Cierre. Filtros Top Hat y Well. Almacenamiento de bordes por mtodo de cdigo de la cadena.
Almacenamiento de regiones por mtodo de cdigo de segmentos en lnea.
Transformaciones elsticas. Mtodo de clculo y aplicaciones de las transformaciones elsticas. Correlacin entre objetos.
Textura.
Medicin de parmetros de objetos en imgenes digitales. Calculo de permetros y otras longitudes. Obtencin del rea de una
superficie limitada por una curva cerrada. Teorema de Green.
Identificacin de objetos: clasificadores entrenados y no-entrenados. Clasificadores probabilsticos. Teorema de Bayes. otros
algoritmos de clustering. Introduccin a algoritmos avanzados de clasificacin. K-Means y clasificacin espectral.
Etapas del procesamiento de imgenes

Diseo de las propiedades de la captura. Tipo de


Captura cmara, distancia al objeto, mega pxeles, etc.

Reducir el entorno que no es de inters para el


Pre-procesamiento problema. Fondo, ruido, etc.

Reconocer y extraer cada uno de los objetos


Segmentacin presentes en la imagen.

Seleccionar y extraer caractersticas apropiadas


Extraccin de para la identificacin de los objetos deseados.
caractersticas
Utilizar un modelo de toma de decisin para decidir
Identificacin de a que categora pertenece cada objeto.
objetos
Clasificador Entrenamiento
Problema: Identificar frutas

Decidir como van a ser capturadas las imgenes


Captura de las frutas. Ejemplo: Distancia de 60 cm.,
resolucin de 800x600, 24 bits, etc.

Quitar el fondo de la imagen y dejar solamente las


Pre-procesamiento frutas.

Utilizar algn operador de segmentacin para


Segmentacin reconocer y extraer las frutas de la imagen.

Extraccin de Para cada una de las frutas se va a extraer la


longitud y el indice de circularidad.
caractersticas

Identificacin de Utilizar un algoritmo de clasificacin para decidir


que tipo de fruta es cada una.
objetos
Gua de Trabajos Prcticos

Prctico 1: CAPTURA, ALMACENAMIENTO Y REPRESENTACION DE IMAGENES

Prctico 2: REALCE DE IMAGENES

Prctico 3: SEGMENTACIN - DETECCIN DE BORDES

Prctico 4: OPERACIONES GEOMTRICAS Y ALMACENAMIENTO DE OBJETOS

Prctico 5: OPERADORES MORFOLOGICOS

Prctico 6: MODELOS DE COLOR Y FORMATOS DE ARCHIVO

Prctico 7: PATTERN MATCHING


Proyectos finales

1. Segmentacin y anlisis de fisuras en metales (Industria)


2. Anlisis y procesamiento de imgenes termogrficas (medicina)
3. Identificacin de especies vegetales por morfologa foliar (biologa)
4. Identificacin de personas por morfologa del rostro (biometra)
5. Anlisis y procesamiento de imgenes radiolgicas (medicina)
Definicin de Imagen

Que es una imagen? Cmara Oscura:


Una representacin de un objeto real
"Se hace pasar la luz
a travs de un
pequeo agujero
hecho en un cuarto
cerrado por todos sus
lados. En la pared
opuesta al agujero, se
formar la imagen de
lo que se encuentre
enfrente".
Definicin de Imagen

Una representacin plana de un objeto de 3 dimensiones


Procesamiento Digital de Imgenes

 Las imgenes y el procesamiento son


digitales.
 Imagen digital: Conjunto finito de elementos.
 Procesamiento digital de imgenes:
Procesamiento de imgenes realizado por
un sistema digital (electrnico).
Imagen Digital

Una imagen de dos dimensiones es una funcin f(X, Y) donde X e Y


representan las coordenadas del plano.
f(X,Y) representa la intensidad o nivel de gris de la imagen en ese punto
Si X e Y son discretos y finitos entonces la imagen es digital
Qu es una imagen digital?

Representacin en
formato de grilla
(matriz)

M filas x N columnas
M filas

12 N columnas
Qu es una imagen digital?

Representacin en
formato de grilla
(matriz)

M filas x N columnas

13
Qu es una imagen digital?

Representacin en
formato de grilla
(matriz)

M filas x N columnas
M filas

Cada elemento de la
grilla es un PIXEL

14 N columnas
Qu es una imagen digital?

Representacin en
formato de grilla
(matriz)

M filas x N columnas
M filas

Cada elemento de la
grilla es un PIXEL

Qu informacin se
guarda en cada pixel?
15 N columnas
El pixel Profundidad de tono de gris

 Pixel INTENSIDAD PROMEDIO nmero

16
El pixel Profundidad de tono de gris

 Pixel INTENSIDAD PROMEDIO nmero


negro blanco
0 (2n 1)

17
El pixel Profundidad de tono de gris

 Pixel INTENSIDAD PROMEDIO nmero


negro blanco
0 (2n 1)

0 21 1 = 1

n=1
2 niveles
18
El pixel Profundidad de tono de gris

 Pixel INTENSIDAD PROMEDIO nmero


negro blanco
0 (2n 1)

0 22 1 = 3

n=2
4 niveles
19
El pixel Profundidad de tono de gris

 Pixel INTENSIDAD PROMEDIO nmero


negro blanco
0 (2n 1)

0 23 1 = 7

n=3
8 niveles
20
El pixel Profundidad de tono de gris

 Pixel INTENSIDAD PROMEDIO nmero


negro blanco
0 (2n 1)

0 24 1 = 15

n=4
16 niveles
21
El pixel Profundidad de tono de gris

 Pixel INTENSIDAD PROMEDIO nmero


negro blanco
0 (2n 1)

0 25 1 = 31

n=5
32 niveles
22
El pixel Profundidad de tono de gris

Imagen original

23
El pixel Profundidad de tono de gris

5-bits
32 niveles de gris

24
El pixel Profundidad de tono de gris

4-bits
16 niveles de gris

25
El pixel Profundidad de tono de gris

3-bits
8 niveles de gris

26
VIII Semana Nacional de la Ciencia y la Tecnologa Universidad Nacional del Centro de la Prov. de Bs. As.
Tandil, 01/06/2010 Facultad de Ciencias Exactas

El pixel Profundidad de tono de gris

2-bits
4 niveles de gris

27
El pixel Profundidad de tono de gris

1-bit
2 niveles de gris

28
El pixel Resolucin

Grillado
M x N = 10 x 10

29
El pixel Resolucin

Grillado
M x N = 10 x 10

8-bits
0 = NEGRO
255 = BLANCO

30
El pixel Resolucin

Grillado
M x N = 10 x 10

8-bits
0 = NEGRO
255 = BLANCO

31
El grillado Resolucin

Grillado
M x N = 10 x 10

8-bits
0 = NEGRO
255 = BLANCO

32
El grillado Resolucin

Grillado
M x N = 20 x 20

8-bits
0 = NEGRO
255 = BLANCO

33
El grillado Resolucin

Grillado
M x N = 20 x 20

8-bits
0 = NEGRO
255 = BLANCO

34
Cuantificacin

Resolucin:
 Es la cantidad de pxeles que definen la imagen.

Ejemplos:
640x480, 800x600, 1024x768, etc.
El tamao de la imagen

10 x 10 8-bits 20 x 20 8-bits

1,2 kB 1,4 kB
36
El tamao de la imagen

40 x 40 8-bits 350 x 350 8-bits

2,6 kB 124,0 kB
37
Caracterizando la imagen: histograma

350 x 350 8-bits


38 350 x 350 = 122.500 pixels
Caracterizando la imagen: histograma

350 x 350 8-bits


39 350 x 350 = 122.500 pixels
Histograma: intensidad

40
Histograma: intensidad

? ?
41
Histograma: intensidad

42
Histograma: contraste

43
Histograma: contraste

44 ?
Histograma: contraste

45
Histograma: umbralado

46 64 128 200
Aplicacin de mscaras

 Se modifica el valor de
cada pixel a partir de una
operacin matemtica
 Se tiene en cuenta el
pixel y su entorno
 CONVOLUCION:
Mscara que recorre la
imagen pixel por pixel

47
Aplicacin de mscaras

Ejemplo:

48
Aplicacin de mscaras

Ejemplo:

49
Aplicacin de mscaras

Ejemplo:

50
Aplicacin de mscaras

Ejemplo:

51
Aplicacin de mscaras

Ejemplo:

Pixel central =
(-1)75 + 076 + 1210 +
(-1)76 + 1172 + 1255 +
(-1)211 + 0255 + 1255 =
= 530
Valor final = 530 / Norma
52
Aplicacin de mscaras

Ejemplo:

Pixel central =
(-1)75 + 076 + 1210 +
(-1)76 + 1172 + 1255 +
(-1)211 + 0255 + 1255 =
= 530
Valor final = 530 / 1 = 1
53
Suavizado

Ejemplo:

54
Suavizado

Ejemplo:

Pixel central = 9255


Valor final = 9255 / 9 = 255

55
Suavizado

Ejemplo:

Pixel central = 6255


Valor final = 6255 / 9 = 170

56
Suavizado

Ejemplo:

Pixel central = 3255


Valor final = 3255 / 9 = 85

57
Suavizado

Ejemplo:

58
Suavizado

Ejemplo:

59
Suavizado

Ejemplo:

60
Suavizado

Ejemplo:

61
VIII Semana Nacional de la Ciencia y la Tecnologa
Tandil, 01/06/2010

Suavizado

Ejemplo:

62
Suavizado

Imagen Original

63
Suavizado

Mscara:

64
Suavizado

Mscara:

65
Bordes

Mscara:

66
Bordes

Mscara:

67
Bordes

Mscara:

Ajuste de niveles de gris


1020 255
765 192

68
Bordes

Mscara:

Ajuste de niveles de gris


1020 255
765 192

69
Imagen Original

70
Bordes

Mscara:

71
Profundidad de Color

Intensidad:
o Es el valor de gris que
puede adoptar cada pxel.

o La cantidad de valores
posibles que puede
adoptar un pxel se denomina
Profundidad de Color.
Usualmente se mide en
potencias de 2. Ej: 2^1, 2^8,
2^16, etc.
Muestreo

Muestreo:
Es la cantidad de
informacin que
contiene la imagen.
Procesamiento de Imgenes I

Niveles de programacin

Frameworks
(VCL, MFC, JAVA, Paquetes OS)

S.O. (API)

Archivo

Hardware
VCL Clases principales del framework VCL

TImage TPicture

TPicture picture; Tcanvas canvas;


Tcanvas canvas;

TCanvas

Pxels
Mtodos: CopyRect(), Draw(), FillRect(), LineTo(),
MoveTo(), Rectangle(), RoundRect(), ScanLine(), etc.
Procesamiento de Imgenes I

Ejemplo de cargar una imagen utilizando VCL:


procedure CargaImagen;
var Imagen: TBitmap;
begin
Imagen := TBitmap.Create;
Imagen.LoadFromFile('c:\prueba.bmp');
Imagen.Free;
end;

Leer y escribir la informacin en una imagen utilizando la propiedad Pixels


procedure TForm1.EjemploPixels; El formato de este valor es
var Imagen: TBitmap; el siguiente:
begin $AABBCCDD
Imagen := TBitmap.Create;
Imagen.Width := 100;
Donde AA indica el tipo de
Imagen.Height := 100; paleta (00, 01 o 02)
Imagen.Canvas.Pixels[10,20] := $00FFFFFF; BB, CC y DD van de 00 a FF
Image1.Picture.Bitmap.Assign(Imagen); e indican el componente de
Imagen.Free; color para Red, Green y Blue.
end;
Procesamiento de Imgenes I

Leer y escribir la informacin en una imagen utilizando la propiedad Scanline

procedure TForm1.EjemploScanline;
var Imagen: TBitmap; Aqu configuramos la profundidad
b : PByteArray; de color de la imagen creada.
i,j : integer;
begin
Imagen := TBitmap.Create;
Imagen.PixelFormat := pf8bit;
Imagen.Width := 100;
Imagen.Height := 100;
b := Imagen.ScanLine[10];
b[20] := 0;
Image1.Picture.Bitmap.Assign(Imagen);
Imagen.Free;
end;
Procesamiento de Imgenes I

Leer y escribir la informacin en una imagen utilizando funciones API

procedure TForm1.EjemploAPI;
var Imagen: TBitmap;
i,j : integer;
begin
Imagen := TBitmap.Create;
Imagen.Width := 100;
Imagen.Height := 100;
SetPixel(Imagen.Canvas.Handle,10,20,clBlack);
Image1.Picture.Bitmap.Assign(Imagen);
Imagen.Free;
end;
Procesamiento de Imgenes I

Documento:
Se debe declarar una variable Bitmap *: ej:Bitmap *pbmp.
En el metodo OnOpenDocument se debe cargar la imagen, ya que este se llama
cuando se quiere abrir la imagen. Se deben agregar solo las siguientes lineas:

BOOL CBMPViewDoc::OnOpenDocument(LPCTSTR lpszPathName)


{ if (!CDocument::OnOpenDocument(lpszPathName))
return FALSE;

FILE *fp=fopen(lpszPathName,"rb");
pbmp = new Bitmap(fp);
fclose(fp);
UpdateAllViews(0,0,0);

return TRUE;
}
Procesamiento de Imgenes I

Vista:
Se debe modificar el metodo OnDraw, agregando:

void CBMPViewView::OnDraw(CDC* pDC)


{
CBMPViewDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);

Bitmap *b=pDoc->pbmp;
if (!b) return;

long width=b->getWidth();
long height=b->getHeight();

for (long j=0; j<height; j++)


for (long i=0; i<width; i++)
{ unsigned long c = b->getColor(i,j);
pDC->SetPixel(i,j,c); }
}
Practico 1: Ejercicio 3

procedure TForm1.EjemploAPI;
var Imagen: TBitmap;
i,j : integer;
begin
Imagen := TBitmap.Create;
Imagen.Width := 256;
Imagen.Height := 100;
for i:= 0 to Imagen.Width
for j:= 0 to Imagen.Height
SetPixel(Imagen.Canvas.Handle,i,j,RGB(i, i, i));
Image1.Picture.Bitmap.Assign(Imagen);
Imagen.Free;
end;
Practico 1: Ejercicio 3

procedure TForm1.EjemploAPI;
var Imagen: TBitmap;
i,j : integer;
begin
Imagen := TBitmap.Create;
Imagen.Width := 256;
Imagen.Height := 100;
paso := Imagen.Width div NivelGris; /// Ej = 8
for i:= 0 to Imagen.Width
c := mod (i/paso);
for j:= 0 to Imagen.Height
SetPixel(Imagen.Canvas.Handle,i,j,RGB(c, c, c));
Image1.Picture.Bitmap.Assign(Imagen);
Imagen.Free;
end;
Practico 1: Ejercicio 4
Practico 1: Ejercicio 4
procedure TForm1.Button4Click(Sender: TObject);
var i, j, f, gris, nuevogris: integer;
bit : Tbitmap;
begin
bit := Tbitmap.Create();
bit.Width := Image1.Width;
bit.Height := Image1.Height;
f:= 256 div 8;

for j:= 0 to bit.Height-1 do


for i:= 0 to bit.Width-1 do
begin
gris := getRValue(Image1.Canvas.Pixels[i, j]);
nuevogris := (gris mod f) *f;
bit.Canvas.Pixels[i, j] := rgb(NuevoGris,
NuevoGris, NuevoGris);
end;
Image1.Picture.Assign(bit);
end;

Color
0 32 64 96 128 160 192 224 256
Practico 1: Ejercicio 5
Brillo e Intensidad

Intensidad:
La magnitud fsica que mide cuanta luz hay presente, ligada a
la energa es la intensidad. La intensidad es lo que se
cuantifica de 0 a 255 en ocho bits por tono.

Brillo:
El brillo por otro lado es una sensacin humana. La relacin
entre brillo e intensidad no es directa debido a la adaptabilidad
que tiene el ojo.
Contraste

El contraste se refiere a la variacin de intensidades:

1. si hay mucha variacin de intensidades hablamos de alto


contraste
2. si hay poca variacin de intensidades hablamos de bajo
contraste
Histograma

El Histograma es la grfica que muestra la cantidad de pxeles


que tienen una determinada intensidad luminosa.

Cantidad

Intensidad de Gris
Prctico 2: Ejercicio 1
Prctico 2: Ejercicio 1
Prctico 2: Ejercicio 2
Histograma Expansin Lineal
255 Y= A X + B

A = 255 / (MAX MIN)

0
35 234 MIN MAX

Expansin Exponencial Expansin Polinomial


Expansin Logartmica
255 255
255

0 0
0 MIN MAX
MIN MAX MIN MAX
Prctico 2: Ejercicio 2

Expansin Lineal
255 Y= A X + B

A = 255 / (MAX MIN)

0
MIN MAX
Expansin de histograma

Expansin Exponencial
255
Los tonos oscuros se mantienen
Los tonos claros se oscurecen

0
Expansin de histograma
Expansin Logartmica
255

Los tonos mas aclaran


Los tonos claros se mantienen

0
MIN MAX
Expansin de histograma

Expansin Polinomial
255

0
MIN MAX
Prctico 2: Ejercicio 3

Suavizado: Media Ponderada

1 1 1
1 8 1 Pixel [i, j] = (Pixel[i-1, j-1] * 1 + Pixel[i, j-1] * 1 + Pixel[i+1, j-1] * 1 +

1 1 1 Pixel[i-1, j] * 1 + Pixel[i, j] * 8 + Pixel[i+1, j] * 1 +


Pixel[i-1, j-1] * 1 + Pixel[i, j-1] * 1 + Pixel[i+1, j-1] * 1 ) / 16

Mscara de CONVOLUCION
Coeficientes de
Ponderacin
Prctico 2: Ejercicio 3

También podría gustarte