Tratamiento Imagenes

97
Procesamiento Digital de Imágenes Clase Teórico Práctica Nº 1 Optativa Área Procesamiento de señales Primer cuatrimestre de 2011 Dr. Rubén Wainschenker Mg. Ing. José María Massa Mg. Ing. Paula Tristan

Transcript of Tratamiento Imagenes

Page 1: Tratamiento Imagenes

Procesamiento Digital de Imágenes

Clase Teórico Práctica Nº 1

Optativa Área Procesamiento de señalesPrimer cuatrimestre de 2011

Dr. Rubén WainschenkerMg. Ing. José María MassaMg. Ing. Paula Tristan

Page 2: Tratamiento Imagenes

Objetivos de la materia

• Extraer información de imágenes digitales.

• Utilizar herramientas informáticas para la extracción de información.

• Capturar, realzar, segmentar, medir, identificar y visualizar objetos de interés en las imágenes.

• Aplicaciones en diversas áreas: medicina, medioambiente, industria, seguridad, gestión.

Page 3: Tratamiento Imagenes

Programa

• Imágenes y procesamientos digitales. Introducción. • Representación de imágenes digitales. Cámara oscura. Imagen fotográfica. Imagen digital. RGB. CMY. CMYK. Muestreo y Cuantificación.• Obtención de imágenes digitales. Detectores, scanners, cámaras CCD, microdensitómetros, ojo humano. • Almacenamiento de imágenes digitales. Formatos de almacenamiento de imágenes digitales. Paleta. BMP, GIF, TIFF, JPEG, etc.• Análisis de imágenes digitales. Definición de contraste, brillo e intensidad luminosa. Histograma.• Procesamientos elementales: Realce, Funciones de punto. Realce de tonos claros, oscuros y medios. Expansión de grises. Ecualización del histograma. Conectividad. Distancia.• Reducción de ruido en imágenes digitales. Suavizado. Filtros mediana, promedio, combinación promedio-mediana. Convolución. Método de trabajo con cualquier filtro. (Normalización con expansión lineal, etc.)• Detección de bordes en imágenes digitales. Estudio de funciones, derivada continua, derivada segunda, derivada digital, asociación de derivadas a búsquedas de bordes. Filtro de Roberts. Filtros de prewitt y de Kirsch. Detección de bordes con dirección preferencial. Filtro de Sobel. El Laplaciano y su filtro.• Operaciones geométricas en imágenes digitales. Tratamiento de firmas y otros objetos claramente definidos: Centro geométrico, centro de gravedad, Traslaciones, rotaciones, busqueda del angulo de rotación, teorema del coseno, zoom.• Segmentación. Crecimiento local por cota relativa. Operaciones morfológicas. Erosión y dilatación. Bordes por diferencia entre original y erosión. Apertura y Cierre. Filtros Top Hat y Well. Almacenamiento de bordes por método de código de la cadena. Almacenamiento de regiones por método de código de segmentos en línea.• Transformaciones elásticas. Método de cálculo y aplicaciones de las transformaciones elásticas. Correlación entre objetos. Textura.• Medición de parámetros de objetos en imágenes digitales. Calculo de perímetros y otras longitudes. Obtención del área de una superficie limitada por una curva cerrada. Teorema de Green.• Identificación de objetos: clasificadores entrenados y no-entrenados. Clasificadores probabilísticos. Teorema de Bayes. otros algoritmos de clustering. Introducción a algoritmos avanzados de clasificación. K-Means y clasificación espectral.

Page 4: Tratamiento Imagenes

Etapas del procesamiento de imágenes

Entrenamiento

Captura

Pre-procesamiento

Segmentación

Extracción de características

Identificación deobjetos

Clasificador

Diseño de las propiedades de la captura. Tipo de cámara, distancia al objeto, mega píxeles, etc.

Reducir el entorno que no es de interés para el problema. Fondo, ruido, etc.

Reconocer y extraer cada uno de los objetos presentes en la imagen.

Seleccionar y extraer “características” apropiadas para la identificación de los objetos deseados.

Utilizar un modelo de toma de decisión para decidir a que categoría pertenece cada objeto.

Page 5: Tratamiento Imagenes

Problema: Identificar frutas

Captura

Pre-procesamiento

Segmentación

Extracción de características

Identificación deobjetos

Decidir como van a ser capturadas las imágenes de las frutas. Ejemplo: Distancia de 60 cm., resoluciòn de 800x600, 24 bits, etc.

Quitar el fondo de la imagen y dejar solamente las frutas.

Utilizar algùn operador de segmentación 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 clasificaciòn para decidir que tipo de fruta es cada una.

Page 6: Tratamiento Imagenes

Guía de Trabajos Prácticos

Práctico 1: CAPTURA, ALMACENAMIENTO Y REPRESENTACION DE IMAGENES

Práctico 2: REALCE DE IMAGENES

Práctico 3: SEGMENTACIÓN - DETECCIÓN DE BORDES

Práctico 4: OPERACIONES GEOMÉTRICAS Y ALMACENAMIENTO DE OBJETOS

Práctico 5: OPERADORES MORFOLOGICOS

Práctico 6: MODELOS DE COLOR Y FORMATOS DE ARCHIVO

Práctico 7: PATTERN MATCHING

Page 7: Tratamiento Imagenes

Proyectos finales

1. Segmentación y análisis de fisuras en metales (Industria)

2. Análisis y procesamiento de imágenes termográficas (medicina)

3. Identificación de especies vegetales por morfología foliar (biología)

4. Identificación de personas por morfología del rostro (biometría)

5. Análisis y procesamiento de imágenes radiológicas (medicina)

Page 8: Tratamiento Imagenes

Definición de Imagen

Cámara Oscura:

"Se hace pasar la luz

a través de un

pequeño 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".

Que es una imagen?

Una representación de un objeto real

Page 9: Tratamiento Imagenes

Definición de Imagen

Una representación plana de un objeto de 3 dimensiones

Page 10: Tratamiento Imagenes

Procesamiento Digital de Imágenes

� Las imágenes y el procesamiento son digitales.

� Imagen digital: Conjunto finito de elementos.� Procesamiento digital de imágenes:

Procesamiento de imágenes realizado por un sistema digital (electrónico).

Page 11: Tratamiento Imagenes

• Una imagen de dos dimensiones es una función f(X, Y) donde X e Yrepresentan 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

Imagen Digital

Page 12: Tratamiento Imagenes

12

¿Qué es una imagen digital?

Representación en formato de grilla (matriz)

M filas x N columnasM filas

N columnas

Page 13: Tratamiento Imagenes

13

¿Qué es una imagen digital?

Representación en formato de grilla (matriz)

M filas x N columnas

Page 14: Tratamiento Imagenes

14

¿Qué es una imagen digital?

Representación en formato de grilla (matriz)

M filas x N columnas

Cada elemento de la grilla es un PIXEL

M filas

N columnas

Page 15: Tratamiento Imagenes

15

¿Qué es una imagen digital?

Representación en formato de grilla (matriz)

M filas x N columnas

Cada elemento de la grilla es un PIXEL

M filas

N columnas

¿Qué información se guarda en cada pixel?

Page 16: Tratamiento Imagenes

16

El pixel – Profundidad de tono de gris

� Pixel → INTENSIDAD PROMEDIO → número

Page 17: Tratamiento Imagenes

17

El pixel – Profundidad de tono de gris

blanco

(2n – 1)

negro

0

� Pixel → INTENSIDAD PROMEDIO → número

Page 18: Tratamiento Imagenes

18

El pixel – Profundidad de tono de gris

blanco

(2n – 1)

negro

0

n = 1

2 niveles

21 – 1 = 10

� Pixel → INTENSIDAD PROMEDIO → número

Page 19: Tratamiento Imagenes

19

El pixel – Profundidad de tono de gris

� Pixel → INTENSIDAD PROMEDIO → número

blanco

(2n – 1)

negro

0

n = 2

4 niveles

22 – 1 = 30

Page 20: Tratamiento Imagenes

20

El pixel – Profundidad de tono de gris

� Pixel → INTENSIDAD PROMEDIO → número

blanco

(2n – 1)

negro

0

n = 3

8 niveles

23 – 1 = 70

Page 21: Tratamiento Imagenes

21

El pixel – Profundidad de tono de gris

� Pixel → INTENSIDAD PROMEDIO → número

blanco

(2n – 1)

negro

0

n = 4

16 niveles

24 – 1 = 150

Page 22: Tratamiento Imagenes

22

El pixel – Profundidad de tono de gris

� Pixel → INTENSIDAD PROMEDIO → número

blanco

(2n – 1)

negro

0

n = 5

32 niveles

25 – 1 = 310

Page 23: Tratamiento Imagenes

23

El pixel – Profundidad de tono de gris

Imagen original

Page 24: Tratamiento Imagenes

24

El pixel – Profundidad de tono de gris

5-bits

32 niveles de gris

Page 25: Tratamiento Imagenes

25

El pixel – Profundidad de tono de gris

4-bits

16 niveles de gris

Page 26: Tratamiento Imagenes

26

El pixel – Profundidad de tono de gris

3-bits

8 niveles de gris

Page 27: Tratamiento Imagenes

27

El pixel – Profundidad de tono de gris

Universidad Nacional del Centro de la Prov. de Bs. As.Facultad de Ciencias Exactas

2-bits

4 niveles de gris

VIII Semana Nacional de la Ciencia y la TecnologíaTandil, 01/06/2010

Page 28: Tratamiento Imagenes

28

El pixel – Profundidad de tono de gris

1-bit

2 niveles de gris

Page 29: Tratamiento Imagenes

29

GrilladoM x N = 10 x 10

El pixel – Resolución

Page 30: Tratamiento Imagenes

30

El pixel – Resolución

GrilladoM x N = 10 x 10

8-bits0 = NEGRO

255 = BLANCO

Page 31: Tratamiento Imagenes

31

El pixel – Resolución

GrilladoM x N = 10 x 10

8-bits0 = NEGRO

255 = BLANCO

Page 32: Tratamiento Imagenes

32

El grillado – Resolución

GrilladoM x N = 10 x 10

8-bits0 = NEGRO

255 = BLANCO

Page 33: Tratamiento Imagenes

33

El grillado – Resolución

GrilladoM x N = 20 x 20

8-bits0 = NEGRO

255 = BLANCO

Page 34: Tratamiento Imagenes

34

El grillado – Resolución

GrilladoM x N = 20 x 20

8-bits0 = NEGRO

255 = BLANCO

Page 35: Tratamiento Imagenes

Cuantificación

Resolución:

� Es la cantidad de píxeles que definen la imagen.

Ejemplos:

640x480, 800x600, 1024x768, etc.

Page 36: Tratamiento Imagenes

36

El tamaño de la imagen

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

1,2 kB 1,4 kB

Page 37: Tratamiento Imagenes

37

El tamaño de la imagen

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

2,6 kB 124,0 kB

Page 38: Tratamiento Imagenes

38

Caracterizando la imagen: histograma

350 x 350 8-bits350 x 350 = 122.500 pixels

Page 39: Tratamiento Imagenes

39

Caracterizando la imagen: histograma

350 x 350 8-bits350 x 350 = 122.500 pixels

Page 40: Tratamiento Imagenes

40

Histograma: intensidad

Page 41: Tratamiento Imagenes

41

Histograma: intensidad

? ?

Page 42: Tratamiento Imagenes

42

Histograma: intensidad

Page 43: Tratamiento Imagenes

43

Histograma: contraste

Page 44: Tratamiento Imagenes

44

Histograma: contraste

?

Page 45: Tratamiento Imagenes

45

Histograma: contraste

Page 46: Tratamiento Imagenes

46

Histograma: umbralado

64 128 200

Page 47: Tratamiento Imagenes

47

Aplicación de máscaras

� Se modifica el valor de cada pixel a partir de una operación matemática

� Se tiene en cuenta el pixel y su entorno

� CONVOLUCION: Máscara que recorre la imagen pixel por pixel

Page 48: Tratamiento Imagenes

48

Aplicación de máscaras

Ejemplo:

Page 49: Tratamiento Imagenes

49

Aplicación de máscaras

Ejemplo:

Page 50: Tratamiento Imagenes

50

Aplicación de máscaras

Ejemplo:

Page 51: Tratamiento Imagenes

51

Aplicación de máscaras

Ejemplo:

Page 52: Tratamiento Imagenes

52

Aplicación de máscaras

Ejemplo:

Pixel central = (-1)·75 + 0·76 + 1·210 + (-1)·76 + 1·172 + 1·255 +

(-1)·211 + 0·255 + 1·255 == 530 Valor final = 530 / Norma

Page 53: Tratamiento Imagenes

53

Aplicación de máscaras

Ejemplo:

Pixel central = (-1)·75 + 0·76 + 1·210 + (-1)·76 + 1·172 + 1·255 +

(-1)·211 + 0·255 + 1·255 == 530 Valor final = 530 / 1 = 1

Page 54: Tratamiento Imagenes

54

Suavizado

Ejemplo:

Page 55: Tratamiento Imagenes

55

Suavizado

Ejemplo:

Pixel central = 9·255 Valor final = 9·255 / 9 = 255

Page 56: Tratamiento Imagenes

56

Suavizado

Ejemplo:

Pixel central = 6·255 Valor final = 6·255 / 9 = 170

Page 57: Tratamiento Imagenes

57

Suavizado

Ejemplo:

Pixel central = 3·255 Valor final = 3·255 / 9 = 85

Page 58: Tratamiento Imagenes

58

Suavizado

Ejemplo:

Page 59: Tratamiento Imagenes

59

Suavizado

Ejemplo:

Page 60: Tratamiento Imagenes

60

Ejemplo:

Suavizado

Page 61: Tratamiento Imagenes

61

Ejemplo:

Suavizado

Page 62: Tratamiento Imagenes

62

Ejemplo:

Suavizado

VIII Semana Nacional de la Ciencia y la TecnologíaTandil, 01/06/2010

Page 63: Tratamiento Imagenes

63

Imagen Original

Suavizado

Page 64: Tratamiento Imagenes

64

Máscara:

Suavizado

Page 65: Tratamiento Imagenes

65

Máscara:

Suavizado

Page 66: Tratamiento Imagenes

66

Máscara:

Bordes

Page 67: Tratamiento Imagenes

67

Máscara:

Bordes

Page 68: Tratamiento Imagenes

68

Máscara:

Bordes

Ajuste de niveles de gris1020 → 255765 → 192

Page 69: Tratamiento Imagenes

69

Máscara:

Bordes

Ajuste de niveles de gris1020 → 255765 → 192

Page 70: Tratamiento Imagenes

70

Imagen Original

Page 71: Tratamiento Imagenes

71

Máscara:

Bordes

Page 72: Tratamiento Imagenes

Profundidad de Color

Intensidad:o Es el valor de gris quepuede adoptar cada píxel.

o La cantidad de valores posibles que puede adoptar un píxel se denomina Profundidad de Color.

Usualmente se mide en potencias de 2. Ej: 2^1, 2^8, 2^16, etc.

Page 73: Tratamiento Imagenes

Muestreo

Muestreo:Es la cantidad de informaciòn que contiene la imagen.

Page 74: Tratamiento Imagenes

Procesamiento de Imágenes I

Niveles de programación

Hardware

Archivo

Frameworks(VCL, MFC, JAVA, Paquetes OS)

S.O. (API)

Page 75: Tratamiento Imagenes

VCL

TImage

TPicture picture;

Tcanvas canvas;

TPicture

Tcanvas canvas;

TCanvas

Píxels

Métodos: CopyRect(), Draw(), FillRect(), LineTo(), MoveTo(), Rectangle(), RoundRect(), ScanLine(), etc.

Clases principales del framework VCL

Page 76: Tratamiento Imagenes

Procesamiento de Imágenes 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 información 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 esel siguiente:$AABBCCDDDonde AA indica el tipo depaleta (00, 01 o 02)BB, CC y DD van de 00 a FFe indican el componente decolor para Red, Green y Blue.

Page 77: Tratamiento Imagenes

Procesamiento de Imágenes I

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 profundidadde color de la imagen creada.

Leer y escribir la información en una imagen utilizando la propiedad Scanline

Page 78: Tratamiento Imagenes

Procesamiento de Imágenes I

Leer y escribir la información 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;

Page 79: Tratamiento Imagenes

Procesamiento de Imágenes 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;}

Page 80: Tratamiento Imagenes

Procesamiento de Imágenes 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); }}

Page 81: Tratamiento Imagenes

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;

Page 82: Tratamiento Imagenes

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;

Page 83: Tratamiento Imagenes

Practico 1: Ejercicio 4

Page 84: Tratamiento Imagenes

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;

0 32 64 96 128 160 192 224 256

Color

Page 85: Tratamiento Imagenes

Practico 1: Ejercicio 5

Page 86: Tratamiento Imagenes

Brillo e Intensidad

Intensidad:

La magnitud física que mide cuanta luz hay presente, ligada a la energía 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 sensación humana. La relación entre brillo e intensidad no es directa debido a la adaptabilidad que tiene el ojo.

Page 87: Tratamiento Imagenes

Contraste

El contraste se refiere a la variación de intensidades:

1. si hay mucha variación de intensidades hablamos de alto contraste

2. si hay poca variación de intensidades hablamos de bajo contraste

Page 88: Tratamiento Imagenes

Histograma

El Histograma es la gráfica que muestra la cantidad de píxeles que tienen una determinada intensidad luminosa.

Intensidad de Gris

Cantidad

Page 89: Tratamiento Imagenes

Práctico 2: Ejercicio 1

Page 90: Tratamiento Imagenes

Práctico 2: Ejercicio 1

Page 91: Tratamiento Imagenes

Práctico 2: Ejercicio 2

35 234

Histograma

MIN MAX0

255 Y= A X + B

Expansión Lineal

A = 255 / (MAX – MIN)

MIN MAX0

255

Expansión Logarítmica

MIN MAX

0

255

Expansión Exponencial

MIN MAX0

255

Expansión Polinomial

Page 92: Tratamiento Imagenes

Práctico 2: Ejercicio 2

MIN MAX0

255 Y= A X + B

Expansión Lineal

A = 255 / (MAX – MIN)

Page 93: Tratamiento Imagenes

Expansión de histograma

0

255

Expansión Exponencial

•Los tonos oscuros se mantienen•Los tonos claros se oscurecen

Page 94: Tratamiento Imagenes

Expansión de histograma

MIN MAX0

255

Expansión Logarítmica

•Los tonos mas aclaran•Los tonos claros se mantienen

Page 95: Tratamiento Imagenes

Expansiòn de histograma

MIN MAX0

255

Expansión Polinomial

Page 96: Tratamiento Imagenes

Práctico 2: Ejercicio 3

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

Suavizado: Media Ponderada

Máscara de Coeficientes de Ponderación

CONVOLUCION

Page 97: Tratamiento Imagenes

Práctico 2: Ejercicio 3