Vous êtes sur la page 1sur 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


Captura Pre-procesamiento Segmentacin Extraccin de caractersticas Identificacin de objetos
Diseo de las propiedades de la captura. Tipo de cmara, distancia al objeto, mega pxeles, etc. Reducir el entorno que no es de inters para el problema. Fondo, ruido, etc. Reconocer y extraer cada uno de los objetos presentes en la imagen. Seleccionar y extraer caractersticas apropiadas para la identificacin de los objetos deseados. Utilizar un modelo de toma de decisin para decidir a que categora pertenece cada objeto.

Clasificador

Entrenamiento

Problema: Identificar frutas


Captura Pre-procesamiento Segmentacin Extraccin de caractersticas Identificacin de objetos
Decidir como van a ser capturadas las imgenes de las frutas. Ejemplo: Distancia de 60 cm., resolucin de 800x600, 24 bits, etc. Quitar el fondo de la imagen y dejar solamente las frutas. Utilizar algn operador de segmentacin para reconocer y extraer las frutas de la imagen. Para cada una de las frutas se va a extraer la longitud y el indice de circularidad. Utilizar un algoritmo de clasificacin para decidir que tipo de fruta es cada una.

Gua de Trabajos Prcticos


Prctico 1: CAPTURA, ALMACENAMIENTO Y REPRESENTACION DE IMAGENES Prctico 2: Prctico 3:
REALCE DE IMAGENES 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? Una representacin de un objeto real Cmara Oscura: "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

M filas x N columnas

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

M filas x N columnas Cada elemento de la grilla es un PIXEL

14

N columnas

Qu es una imagen digital?


Representacin en formato de grilla (matriz)

M filas

M filas x N columnas Cada elemento de la grilla es un PIXEL Qu informacin se guarda en cada pixel? N columnas

15

El pixel Profundidad de tono de gris


Pixel INTENSIDAD PROMEDIO nmero

16

El pixel Profundidad de tono de gris


Pixel INTENSIDAD PROMEDIO nmero
negro 0 blanco (2n 1)

17

El pixel Profundidad de tono de gris


Pixel INTENSIDAD PROMEDIO nmero
negro 0 blanco (2n 1)

0 n=1 2 niveles

21 1 = 1

18

El pixel Profundidad de tono de gris


Pixel INTENSIDAD PROMEDIO nmero
negro 0 blanco (2n 1)

0 n=2 4 niveles

22 1 = 3

19

El pixel Profundidad de tono de gris


Pixel INTENSIDAD PROMEDIO nmero
negro 0 blanco (2n 1)

0 n=3 8 niveles

23 1 = 7

20

El pixel Profundidad de tono de gris


Pixel INTENSIDAD PROMEDIO nmero
negro 0 blanco (2n 1)

0 n=4 16 niveles

24 1 = 15

21

El pixel Profundidad de tono de gris


Pixel INTENSIDAD PROMEDIO nmero
negro 0 blanco (2n 1)

0 n=5 32 niveles

25 1 = 31

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 Tandil, 01/06/2010

Universidad Nacional del Centro de la Prov. de Bs. As. 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

36

1,2 kB

1,4 kB

El tamao de la imagen
40 x 40 8-bits 350 x 350 8-bits

37

2,6 kB

124,0 kB

Caracterizando la imagen: histograma

38

350 x 350 8-bits 350 x 350 = 122.500 pixels

Caracterizando la imagen: histograma

39

350 x 350 8-bits 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:
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.
o

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 picture; Tcanvas canvas;

TPicture
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; var Imagen: TBitmap; begin Imagen := TBitmap.Create; Imagen.Width := 100; Imagen.Height := 100; Imagen.Canvas.Pixels[10,20] := $00FFFFFF; Image1.Picture.Bitmap.Assign(Imagen); Imagen.Free; end;

El formato de este valor es el siguiente: $AABBCCDD Donde AA indica el tipo de paleta (00, 01 o 02) BB, CC y DD van de 00 a FF e indican el componente de color para Red, Green y Blue.

Procesamiento de Imgenes I
Leer y escribir la informacin en una imagen utilizando la propiedad Scanline

procedure TForm1.EjemploScanline; var Imagen: TBitmap; b : PByteArray; 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;

Aqu configuramos la profundidad de color de la imagen creada.

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. 2.

si hay mucha variacin de intensidades hablamos de alto contraste 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
255

Expansin Lineal
Y= A X + B A = 255 / (MAX MIN)

0 35 234 MIN MAX

Expansin Logartmica
255

Expansin Exponencial
255

Expansin Polinomial
255

0 MIN MAX

0 MIN MAX

0 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

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 1 1 1
Pixel [i, j] = (Pixel[i-1, j-1] * 1 + Pixel[i, j-1] * 1 + Pixel[i+1, j-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 Coeficientes de Ponderacin

CONVOLUCION

Prctico 2: Ejercicio 3

Vous aimerez peut-être aussi