Documente Academic
Documente Profesional
Documente Cultură
MCTG1008
Profesora: Lisbeth Karina Mena López
lismena@espol.edu.ec
lismena@fiec.espol.edu.ec
SENSORES PARTE 3
CAPÍTULO I
2
Contenido
1. Objetivo
2. Procesamiento de imágenes
3. Proceso de formación de imágenes
4. Representación de imágenes
5. Operaciones
6. Combinación de funciones
7. Aplicaciones
8. Ejemplo
3
1. Objetivos
4
2. Procesamiento de
imágenes
5
2. Procesamiento de imágenes
Procesamiento de imágenes: conjunto de métodos, técnicas y herramientas destinadas a la
manipulación y análisis de imágenes y vídeo digital.
Finalidades del procesamiento:
Mejora, restauración y eliminación de ruido.
Creación y manipulación de contenido.
Compresión y transmisión de imágenes y vídeo.
Comprensión y extracción de información.
6
Mejora, restauración y
2. Procesamiento de imágenes eliminación de ruido.
7
2. Procesamiento de imágenes
Mejora, restauración y eliminación de ruido.
8
2. Procesamiento de imágenes
Creación y manipulación de contenido.
9
3. Proceso de formación
de imágenes
10
3. Proceso de formación de imágenes
La formación de imágenes es un proceso mediante el cual una información luminosa 3D (la
escena) es proyectada en un plano 2D (la imagen).
Las cámaras imitan el proceso que tiene lugar en el ojo humano.
11
3. Proceso de formación de imágenes
El objetivo del modelo es que cada punto de la escena sea proyectado en un solo punto del plano
de imagen.
De esa manera la imagen estará enfocada.
Eje óptico
Mundo 3D
Plano de imagen
Apertura (fotodetectores)
Sistema óptico
12
3. Proceso de formación de imágenes
Podemos distinguir entre captura y digitalización.
13
4. Representación de
imágenes
14
4. Representación de imágenes
Una imagen digital es una matriz, o array bi-dimensional, de números.
Cada celda de la matriz es un píxel.
15
4. Representación de imágenes
Un píxel
16
4. Representación de imágenes
Nº de columnas de la matriz: ancho de la imagen (width).
Nº de filas de la matriz: alto de la imagen (height).
Eje horizontal: eje x.
Eje vertical: eje y.
Normalmente el tamaño de la imagen se expresa como: ancho x alto
Ejemplo. Tamaños típicos:
320x240, 640x480,
800x600, 1024x768, ...
Si i es una imagen,
i[x, y] será el valor del píxel Height
en la columna x, fila y.
17
4. Representación de imágenes
Tipo de datos de cada celda de la matriz
Imagen binaria:
1 píxel = 1 bit
◦0 = negro; 1= blanco
Imagen en escala de grises:
1 píxel = 1 byte
◦Permite 256 niveles de gris
◦0 = negro; 255 = blanco
Imagen en color:
1 píxel = 3 bytes
◦Cada píxel consta de 3 valores:
(Rojo, Verde, Azul)
◦Un byte por color
◦16,7 millones de colores posibles
18
4. Representación de imágenes
Imágenes multicanal:
Cuando los píxeles representan magnitudes en distintos dominios físicos, decimos que la imagen
es multicanal.
Ejemplo. Imagen en color Imagen con 3 canales: canal R (rojo), canal G (verde), canal B (azul).
Canal que se
desea acceder
19
4. Representación de imágenes
20
4. Representación de imágenes
Histograma
Un histograma de la imagen es un gráfico que muestra la distribución de intensidades en una
imagen indexada o escala de grises.
Se puede utilizar la información en un histograma para elegir una operación mejora adecuada.
21
4. Representación de imágenes
Histograma
22
4. Representación de imágenes
Histograma
23
4. Representación de imágenes
Histograma
24
5. Operaciones
25
5. Operaciones
Recordatorio: ¡una imagen digital no es más que una matriz, o array bidimensional, de números!
Se puede aplicar las mismas operaciones que sobre cualquier número: sumar, restar, multiplicar,
dividir, aplicar and, or, máximo, mínimo, integrales, derivadas...
26
5. Operaciones
Operaciones de procesamiento global:
Aritméticas: sumar, restar, multiplicar, máximo, etc.
Unarias: una sola imagen y un valor constante.
Binarias: con dos imágenes.
Lógicas: and, or, not, etc.
Unarias: una sola imagen y una constante.
Binarias: con dos imágenes.
Otras transformaciones generales:
Transformaciones de histograma.
Transformaciones de color.
Binarización, etc.
Cada operación tendrá un significado, utilidad y aplicaciones específicos. +
27
5. Operaciones
Operaciones lógicas:
bw1 ~bw1
28
5. Operaciones
Operaciones Morfológicas:
29
5. Operaciones
Detección de bordes
Hallar aquellos puntos donde se produce una variación de intensidad
30
5. Operaciones
Localización y reconocimiento
1. Localizar objetos -> detección de contornos
2. Etiquetar objetos
3. Contar objetos
4. Características de regiones
31
5. Operaciones
Localización y reconocimiento
32
6. Combinación de
funciones
33
6. Combinación de funciones
Adquisición
◦ Iluminación
◦ Área de trabajo
34
6. Combinación de funciones
Preprocesamiento y segmentación
35
6. Combinación de funciones
Reconocimiento
36
7. Aplicaciones
37
7. Aplicaciones
Visión artificial: reconocimiento de formas, interfaces perceptuales.
Interpretación de imágenes, video-vigilancia.
Detección de obstáculos
Etc.
38
8. Ejemplo
39
8. Ejemplo
OPENCV Y PYTHON
openCV 2.4
Python 2.7
Instalar python https://www.python.org/
www.youtube.com/watch?v=NEo4tDu6tU8
Instalar numpy
cmd
pip install numpy
Instalar Opencv
https://sourceforge.net/projects/opencvlibrary/files/
Conectar Python y OpenCV
Ir a opencv/build/python/2.7 copiar cv2.pyd a
C:/Python27/lib/site-packeges
40
8. Ejemplo
# Prueba opencv
import numpy as np
import cv2
from matplotlib import pyplot as plt
41
8. Ejemplo
#tamanio de la imagen #canales
print img.shape b,g,r = cv2.split(img)
print img.size img_bgr = cv2.merge((b,g,r))
print img.dtype cv2.imshow('bgr_b',img_bgr[:,:,0])
cv2.waitKey(0)
print gray.shape
#pixeles de la imagen
px = img[100,100]
print px
px_g=gray[100,100]
print px_g
42
8. Ejemplo
#Histograma
hist = cv2.calcHist([gray],[0],None,[256],[0,256])
plt.subplot(121),plt.imshow(gray,'gray')
plt.subplot(122),plt.plot(hist)
plt.xlim([0,256])
plt.show()
43
8. Ejemplo
#Binario
ret, binario = cv2.threshold(gray,128,255,cv2.THRESH_BINARY)
cv2.imshow('binario',binario)
print "retval: "+ str(ret)
http://docs.opencv.org/2.4/doc/tutorials/imgproc/threshold/thresho
ld.html
44
8. Ejemplo
#Erosion dilatacion
kernel = np.ones((5,5),np.uint8)
erosion = cv2.erode(binario,kernel)
cv2.imshow('erosion',erosion)
dilatacion = cv2.dilate(erosion,kernel,iterations=2)
cv2.imshow('dilatacion',dilatacion)
kernel = np.ones((3,3),np.uint8)
erosion = cv2.erode(dilatacion,kernel)
cv2.imshow('erosion',erosion)
cv2.waitKey(0)
45
8. Ejemplo
#bordes
edges_img = cv2.Canny(img,100,100)
edges_bin = cv2.Canny(binario,100,100)
cv2.imshow('bordes img',edges_img)
cv2.imshow('bordes binario',edges_bin)
cv2.waitKey(0)
46
8. Ejemplo
#contornos
contorno, jerarquia =
cv2.findContours(erosion,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
print "lista contornos:", len(contorno)
cnt = contorno[1] #leer cada contorno
cv2.drawContours(img, contorno,-1, (0,255,0),2) # grafica todos los contornos
(-1)
cv2.drawContours(img,[cnt],0,(0,255,0),2) #grafica el contorno cnt
cv2.drawContours(img, contorno, 1, (0,255,0), 3) #grafica el contorno cnt
cv2.imshow('contornos',img)
http://docs.opencv.org/2.4/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html
Modos y métodos:
http://docs.opencv.org/3.1.0/d3/dc0/group__imgproc__shape.html#ga4303f45752694956374734a03c54d5ff
47
8. Ejemplo
#propiedades de la region
#area:
area = cv2.contourArea(cnt)
print "Area: " + str(area)
cnt1 = contorno[1] #leer cada contorno
cnt3 = contorno[3] #leer cada contorno
area1 = cv2.contourArea(cnt1)
area3 = cv2.contourArea(cnt3)
print "Area1: " + str(area1)
print "Area3: " + str(area3)
48