imagen fundamentos ii
TRANSCRIPT
Software para el procesamiento de imagen
Sistemas para procesar imagen
Pasos del procesamientode imagen:
Selección de la óptica
Generación de imagen por la cámara
Evaluación y procesamiento de la imagen
Transmisión y presentación de los resultados
Algunos fabricantes de software: National Instruments: http://www.ni.com/ NeuroCheck: http://www.industrialvision.co.uk/ Sherlock: http://www.edmundoptics.com/ Inspection Builder: http://www.pptvision.com/ Sapera Essential: http://www.coreco.com/ VisiQuest: http://www.accusoft.com/ ImagePro: http://www.adept.net.au/ CommonVisionBlox: http://en.commonvisionblox.de/ VisionGuide: http://www.robots.epson.com/ eVision: http://www.euresys.com/ FanucRobot: http://www.fanucrobotics.com/ MatroxInspector: http://www.matrox.com/ PreciseVision: http://www.innovation-matrix.com/
Sistemas para procesar imagen (II)
Algoritmos: Mejora de imagen (contraste, histograma,…) Transformaciones geométricas (rotar, escalado,…) Filtros (suavizado, bordes, morfología,…) Transformación binaria Detección de bordes Posición de formas Coincidencia de formas Modelos geométricos (líneas, círculos,…) Características de formas geométricas Código de barras y matrices de puntos Reconocimiento de formas y caracteres Clasificación (Redes Neuronales) Medición de distancias …
Ejemplo: NeuroChek
¿Matlab?
Extensión de recursos para aplicaciones:Documentación: http://www.mathworks.comWebinars: http://www.mathworks.comDesarrolladores independientes: http://www.mathtools.net/MatlabCentral: http://www.mathworks.com/matlabcentral/
Matlab e imagen:Toolboxes: Adquisición de imágenes: Exportar e importar imágenes y vídeo,
Compatible con varios fabricantes Procesamiento de imágenes: Procesamiento y análisis
Simulink: Blockset de Procesamiento de Imágenes
Matlab e imagenOtras Toolboxes integrables a imagen: Procesamiento de señales Wavelet Redes Neuronales Estadística Lógica Borrosa Base de Datos Análisis de mapas
Aplicaciones independientes: MatlabCompiler
Libros clásicos: González, R.; Woods, R.; Eddins, S.: “Digital Image Processing using
Matlab”. 2004.
Desarrollos que utilizan MATLAB
Cápsula para análisis intestinal
Escáner huellas dactilares
Quemaduras en pacientes
Genes que reproducen cáncer
Estudio de medicamentos anti-inflamatorios
Instalación de la cámara
Guppy F-046B
Verificar controlador IEEE 1394
Software dedicado
Instalación de la cámara (II)
AVT SmartViewReconocer la cámara
Instalación de la cámara (III)
Definición de características
Instalación de la cámara (IV)
Adquirir imágenes
Instalación de la cámara (V)
Controlador genérico IEEE 1394 para interfaz de cámara a Matlab
I.- Descargar e instalar el programa "CMU 1394Camera“(Universidad de Carnegie Mellon )
•Controlador se instala con la cámara desconectada
•Se apaga el ordenador, se conecta la cámara
•Se inicializa el sistema
Instalación de la cámara (VI)
Ejecutar el programa "1394Camera Demo”
•Activar: Camera -> Check link (detecta la cámara).•Seleccionar la cámara: Camera -> Select Camera•Inicializar la cámara: Camera -> Init Camera•Mostrar la imagen: Camera -> Show Camera
Adquisición de imágenes y video con Matlab
Pasos para la adquisición de imágenes:
Creación: Crear un objeto de entrada de vídeo
Configuración: Definir las propiedades del objeto y visualizar propiedades de la configuración
Adquisición: Se adquieren datos del objeto de entrada de vídeo
Finalización: Se borra el objeto de entrada de vídeo que ha sido creado
La creación del objeto
IMAQHWINFO: Informa del hardware instalado (adaptadores)>>InstalledAdaptors: {'coreco' 'winvideo'}
IMAQHWINFO('winvideo'): Información de adaptador particular>>ans = >>DeviceIDs: {[1] [2] [3]} % Existen tres dispositivos de video
vid1 = videoinput('winvideo', 3): Crea objeto de entrada de vídeo (conexión Matlab-Hardware de Adquisición)>>Input Object Using 'Creative WebCam Live! Ultra (VFW)‘
vid2 = videoinput('winvideo', 2)>> Input Object Using 'Conceptronic Funcam‘
preview(vid1): Muestra en ventana el vídeo adquirido
Definir propiedades del vídeo
Propiedades actuales del objeto
src1 = getselectedsource(vid1)get(src1)>>VideoFormat = RGB24_352x288>>VideoResolution = [352 288]
• Definir nuevas propiedades
set(src1, 'Contrast', 100)set(src1,'ReturnedColorSpace','grayscale')
Ejemplo de sesión
% Se define el dispositivo de adquisición, incluyendo formato >>vidobj = videoinput('winvideo', 1,'YUY2_320x240');
% Ver propiedades actuales del dispositivo>>get(vidobj);
% Ver propiedades que pueden definirse>>set(vidobj);
% Si se desea en blanco y negro, establecer tal propiedad>>set(vidobj,'ReturnedColorSpace','grayscale'); % Verificar la adquisición>>preview(vidobj);
Ejemplo de sesión (II)% Cuando se desean adquirir 50 fotogramas, se define>>set(vidobj,'FramesPerTrigger', 50);% Comienza a adquirir las 50 imágenes y las almacena en vidobj>>start(vidobj)% Crea una variable con las imágenes adquiridas%Intensidad:[filas, columnas, 1, cantidad_imágenes]%Color:[filas, columnas, 3, cantidad_imágenes]>>imagenes = getdata(vidobj); % Visualiza la décima imagen>>imshow(imagenes(:,:,:,10)) % Se comprueba que se han adquirido 50 imágenes>>size(imagenes) % se devuelve 480 640 1 50
Ejemplo de sesión (III)% Se determina el número de fotogramas por segundo que se admite>>src = getselectedsource(vidobj);>>frameRates = set(src, 'FrameRate');% Lo anterior devuelve%'30.0000'%'20.0000' % Se define el número de fotogramas por segundo (30)>>src.FrameRate = frameRates{1}; % Si se desean adquirir 300 fotogramas, >>duracion = 10; % segundos % Este será el número de fotogramas que se adquirirán>>frameDelay = (str2num( frameRates{1})) * duracion;>>set(vidobj, 'FramesPerTrigger', frameDelay);
Ejemplo de sesión (IV)% Se adquieren fotogramas>>start(vidobj); % Esperar porque se termine de adquirir y se almacenan imágenes en % variable>>wait(vidobj, frameDelay+1);>>imagenes = getdata(vidobj); % Se comprueba la cantidad de imágenes adquiridas>>size(imagenes,4)
% Se descartan los primeros 30 fotogramas, parámetro ajustable>>set(vidobj,'TriggerFrameDelay',30);
Imaqtool
Ajuste de los parámetros de la cámara
Adquiriendo vídeoSimulink:
Image Adquisition Toolbox
Video and Image Processing
Blockset
Salvando vídeoSimulink:
Image Adquisition Toolbox
Video and Image Processing
Blockset
Formatos video
Image Processing Blockset:
• Soporta formatos: AVI, MPEG, WMV,…• Envía video a monitor o cualquier periférico
conectado al sistema• Ver vídeo en la pantalla del PC• Enviar vídeo al espacio de trabajo Matlab• Editar vídeo
Algoritmos de procesamiento
Descriptores estadísticos
• Media• Mediana• Desviación estándar• Varianza• Raíz media cuadrática• PSNR• Mínimo• Máximo
DIPUM: statxture()
Algoritmos de procesamiento (II)
Análisis y mejora
• Filtros• Mejora contraste• Ecualizar histograma• Detección de contornos• Detección de esquinas• Detección de movimiento• …..
Algoritmos de procesamiento (III)
Conversión de tipos
y transformaciones• Gris a binario• Color a gris• Complemento de imagen• Corrección Gamma• Tipos de datos (8, 16, ..)• Trasladar• Rotar• Cambio de tamaño
Algoritmos de procesamiento (IV)
Operaciones morfológicas• Botton-hat• Top-hat• Dilatación• Erosión• Apertura• Cerradura
Transformadas• Coseno• Fourier• Hough
Conversión a binario
Conversión a binario (umbral automático)
Cambiar tamaño de una imagen
Selección de submatriz
Contador de elementos de una imagen
Obtención de contornos
Extracción de líneas
Supresión de ruído