Apéndice A: Funciones del programa LightPAP

Documentos relacionados
ANALISIS Y DETERMINACIÓN DE PROPIEDADES EN IMÁGENES DE CITOLOGÍA

5. Software desarrollado

7. Ejemplos con LightPAP

FILTRO DE COLOR FUZZY BASADO EN EL HISTOGRAMA PARA LA RESTAURACIÓN DE IMÁGENES. Jesús López de la Cruz Grupo 10

Ingeniería en Informática

Contenido. Capítulo 1. Capítulo 2. Capítulo 3. Prólogo

Nota: se pueden usar funciones de Matlab para filtrado de imágenes. Se dará importancia al tiempo de cómputo de los métodos.

Porqué analizar imágenes?

Extracción de Bordes

Tema 5: SEGMENTACIÓN (I) I N G E N I E R Í A I N F O R M Á T I C A

Índice 1. Introducción Imagen digital. Formación imagen Histograma de una imagen digital 2. Transformaciones puntuales. Introducción.

Análisis de imágenes biomédicas

Tema 2: PROCESAMIENTO EN EL DOMINIO ESPACIAL (Parte 2)

RECONOCIMIENTO DE MENSAJES EN CÓDIGO BRAILLE MEDIANTE TÉCNICAS DE PROCESADO DE IMÁGENES

MODELO FUNCIONAL DEL SISTEMA

Tema 5: SEGMENTACIÓN (II) I N G E N I E R Í A I N F O R M Á T I C A

Morfología matemática en color para el análisis de imágenes neuronales

Tema 5: SEGMENTACIÓN (II) I N G E N I E R Í A I N F O R M Á T I C A

Procesamiento Digital de Imágenes

Procesamiento Digital de Imágenes. Pablo Roncagliolo B. Nº 14

CAPITULO 3: PASOS REALIZADOS PARA LA DETECCIÓN DE BORDES DE IMÁGENES A COLOR

Capítulo 4 IMPLEMENTACIÓN EN MATLAB DEL MÉTODO LIVE WIRE

Detección de bordes en una imagen.

Orden de las clases...

Procesamiento Digital de Imágenes. Pablo Roncagliolo B. Nº 18

Procesamiento de Imágenes. Prof. Alexandra La Cruz, PhD

PROCESAMIENTO DIGITAL DE IMÁGENES

PROCESAMIENTO DE IMÁGENES CON TITERE

PROCESAMIENTO DE IMÁGENES CON TITERE

Capítulo 4. Detección del Objeto Conocido, Medición de su Tamaño Virtual y Cálculo de la Distancia

Procesamiento Avanzado de Imágenes Astronómicas. Filtrado Espacial

Segmentación de Imágenes Parte 2

Preguntas tema 4: MORFOLOGÍA

Análisis de imágenes digitales

Examen correspondiente a la evaluación alternativa. Procesamiento de imágenes digitales curso 2007/2008

Manual del Usuario para el programa de reconocimiento de caracteres.

3 Fundamentos y algoritmos de visión artificial

Fundamentos de Visión por Computador

Análisis de imágenes digitales

Software Desarrollado: la aplicación HAdDA

CAPÍTULO 2. Desde el punto de vista más simple, hoy una imagen digital consiste de lo que se puede ver

Tema 5. Detección de bordes

Conceptos Básicos para el Procesamiento Digital de Imágenes

Segmentación de imágenes. Procesamiento de imágenes biomédicas Curso 2011

UNIDAD 3. CANALES Y MÁSCARAS CAPAS - FILTROS

[20380] Visió per Computador Prueba 1 (2016) [A] Teoría (10p) (una pregunta test fallada descuenta 1/4 de pregunta acertada)

Filtrado lineal. Digital image processing, Gonzalez & Woods, chpt 4 Digital Image Processing, WK Pratt, part 3. filtrado lineal 1

M.C. ENRIQUE MARTÍNEZ PEÑA

Conceptos Básicos para el Procesamiento Digital de Imágenes

Contenido Capítulo 1 Introducción Capítulo 2 Conceptos Básicos Capítulo 3 Procesamiento de Imágenes en el Dominio Espacial

Conteo de Objetos en una Imagen

Procesamiento Digital de Imágenes. Pablo Roncagliolo B. Nº 5b

Estadística básica con R Commander. María Eugenia Fernández de Luco

UNIVERSIDAD POLITÉCNICA DE MADRID

Contornos de objetos. Marcados por varios usuarios.

Revista Aristas Ciencia Básica y Aplicada

Capítulo 2. Técnicas de Procesamiento de Imágenes

Práctica 6. Tratamiento de imágenes mediante Matlab

Fundamentos de Visión por Computador

Laboratorio de Visión para Robots. Práctica 2

Detección y segmentación de objetos

Sistemas de Percepción Visión por Computador

Apuntes Curso Doctorado: Análisis de Imágenes y Reconocimiento de formas. Elena Díaz Fernández

Procesamiento digital de señales Semana 14. Procesamiento de Imágenes: introduccción

Korell, Guillermo Pohl, Nancy. Universidad Nacional del Litoral. Facultad de Ingeniería y Ciencias Hídricas

UNIVERSIDAD DE CARABOBO FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA ELÉCTRICA DEPARTAMENTO DE SISTEMAS Y AUTOMÁTICA

5 PROCESADO DE IMÁGENES

Manejo de Archivos DICOM. (Utilización de Osirix) Parte II

Segmentación de imágenes biomédicas

CAPITULO 3 ANÁLISIS Y DISEÑO DEL SISTEMA RECONOCEDOR DE PARTITURAS MUSICALES (S.R.P.M.)

ANEXO N 3. Estudio Del Color En Videos De Tráfico

Clasificación. Agrupación de las partes de una imagen de forma homogénea

Introducción a Matlab. Ing. Laura López López

Capítulo 2: Segmentación de imágenes

Realzado de Imagen. 11 de junio de El histograma de una imagen digital con niveles de gris en la amplitud de [0, L 1], es función discreta

GUIA DE USUARIO REQUISITOS DEL SISTEMA. Equipo. Sistema Operativo

Tema 4. Reducción del ruido

Procesamiento de Imágenes. Curso 2011 Clase 3 Eliminación del ruido mediante filtrado espacial

INDICE Prefacio 1. Introducción 2. Fundamentos de la imagen digital

Manual de utilización del Módulo Binar_V2. A la abertura aparece el cuadro reportado en la figura 1.

[20380] Visió per Computador Prueba 1 (2017) [A] Teoría (10p) (una pregunta test fallada descuenta 1/4 de pregunta acertada)

Percepción visual aplicada a la robótica

Técnicas de inteligencia artificial. Visión Artificial Detección de aristas y puntos característicos

Procesamiento Digital de Imágenes LCC-594

Capítulo 7 Algoritmos de Segmentación

Segmentación. Transformada de Hough.

Análisis de imágenes digitales

Para comenzar a ejecutar la interfaz se escribirá lo siguiente en la pantalla principal de Matlab: >>proyecto

6 Analizador de escena

PRÁCTICA 2. Detección de características entre pares de imágenes y reconstrucción proyectiva y euclídea entre los puntos correspondidos

UNIVERSIDAD AUTÓNOMA DE TLAXCALA FACULTAD DE CIENCIAS BÁSICAS, INGENIERÍA Y TECNOLOGÍA PROCESAMIENTO DIGITAL DE LA IMAGEN

Manual de Uso: Portal de Ana lisis Dina mico de Indicadores de Cre dito Contenido

Análisis Bioseñales I

Tratamiento de imágenes Operaciones con el histograma de una imagen

TABLA DE CONTENIDOS. Dedicatoria. Agradecimientos. Tabla de Contenidos. Índice de Figuras. Índice de Tablas. Resumen

Mejora de la Imagen Image Enhancement. Ref: Capítulo 3 Digital Image Processing Gonzalez, Woods

Práctica 3: Realce de imágenes

Preproceso: mejora de la imagen

Transcripción:

Apéndice A: Funciones del programa LightPAP A continuación se van a explicar las funciones principales que se han desarrollado para esta aplicación. 1 calcula_prop.m function [nc,cv,posicion,tinta,saturacion,luminancia] = calcula_prop (im_celula, im_nucleo,n_nucleos,celula_color) im_celula: matriz que contiene la imagen de la célula segmentada. im_nucleo: matriz que contiene la imagen del núcleo segmentado. n_nucleos: número de núcleos detectados en la célula. celula_color: matriz 3D que contiene la imagen de la célula a color segmentada. nc: Valor de la relación núcleo/citoplasma. cv: Valor del coeficiente de variación del núcleo. posicion: Valor del coeficiente de variación del núcleo. tinta: Valor de parámetro de color tinta. saturacion: Valor del parámetro de color saturación. 1

luminancia: Valor del parámetro de color luminancia. Esta función calcula los parámetros que relacionan el núcleo con el citoplasma y que se detallan en el apartado Error! No se encuentra el origen de la referencia.. 2 citoplasma.m function varargout = citoplasma(varargin) varargout{1} = Bandera que indica si se desea calcular el área (bien de la célula, bien varargout{2} = Bandera que indica si se desea calcular el área convexa (bien de la célula, bien varargout{3} = Bandera que indica si se desea calcular el centroide (bien de la célula, bien varargout{4} = Bandera que indica si se desea calcular la excentricidad (bien de la célula, bien varargout{5} = Bandera que indica si se desea calcular el eje mayor (bien de la célula, bien varargout{6} = Bandera que indica si se desea calcular el eje menor (bien de la célula, bien varargout{7} = Bandera que indica si se desea calcular la solidez (bien de la célula, bien 2

varargout{8} = Bandera que indica si se desea calcular el valor medio de intensidad y su desviación típica en el interior (bien de la célula, bien varargout{9} = Bandera que indica si se desea calcular el perímetro (bien de la célula, bien varargout{10} = Bandera que indica si se desea calcular el valor medio de intensidad y su desviación típica en el borde (bien de la célula, bien varargout{11} = Bandera que indica si se desean calcular todos los parámetros definidos (bien de la célula, bien Archivo.m para la creación de la pantalla citoplasma.fig. En esta ventana el usuario puede elegir las propiedades de la célula o del núcleo que desea que se calculen. 3 crear_matriz_xls.m Function[matrix_xls]=crear_matriz_xls(prop_cell,area,areac, centroid,ejemayor,ejemenor,solid,int,perim,excentric, int_borde,celula,bordes,nucleos,esnucleo) prop_cell = estructura de propiedades de la célula obtenidas con regionprops. area = Bandera que indica si se desea calcular el área (bien de la célula, bien del núcleo). 3

areac = Bandera que indica si se desea calcular el área convexa (bien de la célula, bien centroid = Bandera que indica si se desea calcular el centroide (bien de la célula, bien ejemayor = Bandera que indica si se desea calcular el eje mayor (bien de la célula, bien ejemenor = Bandera que indica si se desea calcular el eje menor (bien de la célula, bien solidez = Bandera que indica si se desea calcular la solidez (bien de la célula, bien del núcleo). int = Bandera que indica si se desea calcular el valor medio de intensidad y su desviación típica en el interior (bien de la célula, bien perim = Bandera que indica si se desea calcular el perímetro (bien de la célula, bien del núcleo). excentric = Bandera que indica si se desea calcular la excentricidad (bien de la célula, bien int_borde = Bandera que indica si se desea calcular el valor medio de intensidad y su desviación típica en el borde (bien de la célula, bien celula = Matriz que contiene la imagen de la célula segmentada, con los valores que no pertenecen a la célula a cero. bordes = Matriz que contiene la imagen de bordes que marcan los límites de segmentación de la célula. nucleos = Matriz que contiene una imagen máscara con los núcleos detectados marcados a uno lógico. 4

esnucleo = Vale 1 cuando es llamado para calcular los parámetros del núcleo y 0 cuando lo es para el citoplasma. matrix_xls = vector que almacena los parámetros calculados. Almacena en un vector los valores ordenados de los parámetros calculados. Cuando no se calcula un parámetro (porque el usuario decida que no es necesario), el valor por defecto es cero. 4 fanalizacell.m function [celula,nucleos,n_nucleos,bw]=fanalizacell(l,aproc, prop_region,nucleo_max,nucleo_min,ex_limit) L = Matriz con la imagen de bordes resultado de una segmentación. Imagen de regiones. Aproc = Matriz con la imagen preprocesada. prop_region = Propiedades de la región que estamos estudiando. nucleo_max = Valor del tamaño máximo de un núcleo en pixeles. nucleo_min = Valor del tamaño máximo de un núcleo en pixeles. ex_limit = Valor límite de circularidad de un núcleo 5

celula = matriz con la imagen de la célula segmentada. nucleos = matriz con la imagen binaria indicando la posición de los núcleos. n_nucleos = valor del número de núcleos detectados en una célula. BW = matriz con la imagen binaria indicando la segmentación de la célula. Vale uno donde la región corresponde a la célula y cero donde no. Esta función recorta la célula y ajusta la ventana al tamaño de la misma y asigna las propiedades de la célula. Además detecta los núcleos y crea una máscara para segmentar los núcleos. 5 fcelulas.m function L = fcelulas(mask,im_gray,umbral_nucleo,se_nucleo) mask = matriz con la imagen de máscara de regiones. im_gray = matriz con la imagen prerpocesada en escala de grises. umbral_nucleo = valor para segmentar los marcadores. se_nucleos = tamaño del elemento estructural para aumentar el tamaño de los marcadores. 6

L = matriz con la imagen de regiones segmentada por Watershed. Esta función aplica la segmentación Watershed con marcadores explicada en apartados anteriores. 6 fpreprocesado.m function Aproc = fpreprocesado(a,color,media,mediana,histo, realce,alpha,size) A = Imagen que se desea procesar. color = Plano de la imagen con la que se va a trabajar. Vale 2 si la imagen la queremos en escala de grises; 3 si cogemos el plano rojo, 4 si el plano verde, y 5 si el plano azul. media = Bandera para el filtro de la media. mediana = Bandera para el filtro de la mediana. histo = Bandera para la ecualización adaptativa de histograma. realce = Bandera para el filtro de realce de bordes. alpha = Parámetro variable para el filtro de realce de bordes. size = Tamaño del filtro. 7

Aproc = Imagen procesada con los parámetros indicados. posteriores. Aplica la fase de preprocesado a la imagen, la prepara para los pasos 7 fregiones.m function BW = fregiones(a,umbral,tam_min,flagbordes,radio1) A = Imagen en 2D preparada. Salida de preprocesado. umbral = Umbral para segmentar las regiones de interés del fondo. tam_min = Para eliminar las regiones por debajo de este tamaño. flagbordes = Elige entre dos tipos de detección de bordes: Sobel y Prewitt. radio1 = Determina el tamaño del elemento morfológico que se va a usar en las operaciones. BW = Máscara que elimina el fondo de la imagen, dejando sólo las regiones de interés. 8

Esta función detecta automáticamente la región de interés de una imagen, eliminando el fondo. Crea una máscara que aplicada a la imagen elimina las regiones no deseadas. 8 pap.m function varargout = pap(varargin) Fichero.m para la creación de la aplicación pap.fig. Esta pantalla es la ventana principal de programa, donde el usuario puede cargar las imágenes que desee analizar, puede modificar los parámetros y aplicar procesados sobre las imágenes, y a la vez visualizar los resultados. 9 salir.m function varargout = salir(varargin) Fichero.m para la creación del cuadro de diálogo salir.fig. 9

Funciones del programa HighPAP A continuación se van a explicar las funciones principales que se han desarrollado para esta aplicación. 1 calculo_lmpx.m function varargout = calculo_lmpx(varargin) Argumentos de Entrada varargin: imagen sobre la cual queremos calcular la resolución. Debe estar en escala de grises. Argumentos de Salida varargout: devuelve el valor numérico de la resolución calculada. Abre una pequeña interfaz que calcula la resolución de la imagen fijando dos puntos sobre la misma e indicando la distancia real entre estos. 2 fpreprocesado.m function sprocess = fpreprocesado(soptions) 10

Argumentos de Entrada soptions: estructura que contiene la imagen a procesar y los parámetros de preprocesado. Contiene los siguientes campos: image: que contiene la imagen que se quieres procesar. ncolor: que contiene el plano de color con el que se va a trabajar. nflagmedia: bandera que está a 1 cuando se desea aplicar un filtro de media. nflagmedian: bandera que está a 1 cuando se desea aplicar un filtro de mediana. nflaghisto: bandera que está a 1 cuando se desea aplicar una ecualización de histograma. nflagunsharp: bandera que está a 1 cuando se desea aplicar un filtro de realce de bordes. nalpha: valor del parámetro para realce de bordes. nsizefilter: tamaño del filtro de ruido. Argumentos de Salida sprocess: estructura que devuelve la imagen procesada y mensajes de error en caso de que los haya. 3 calcula_prop.m function [nc,cv,posicion,tinta,saturacion,luminancia] = calcula_prop (im_celula, im_nucleo,n_nucleos,celula_color) 11

im_celula: matriz que contiene la imagen de la célula segmentada. im_nucleo: matriz que contiene la imagen del núcleo segmentado. n_nucleos: número de núcleos detectados en la célula. celula_color: matriz 3D que contiene la imagen de la célula a color segmentada. nc: Valor de la relación núcleo/citoplasma. cv: Valor del coeficiente de variación del núcleo. posicion: Valor del coeficiente de variación del núcleo. tinta: Valor de parámetro de color tinta. saturacion: Valor del parámetro de color saturación. luminancia: Valor del parámetro de color luminancia. Esta función calcula los parámetros que relacionan el núcleo con el citoplasma y que se detallan en el apartado Error! No se encuentra el origen de la referencia.. 4 crear_matriz_xls.m function [matrix_xls]=crear_matriz_xls(prop_cell,area,areac,centroid,... ejemayor,ejemenor,solid,int,perim,excentric,int_borde,celula,bordes,... nucleos,esnucleo) 12

prop_cell = estructura de propiedades de la célula obtenidas con regionprops. area = Bandera que indica si se desea calcular el área (bien de la célula, bien del núcleo). areac = Bandera que indica si se desea calcular el área convexa (bien de la célula, bien centroid = Bandera que indica si se desea calcular el centroide (bien de la célula, bien ejemayor = Bandera que indica si se desea calcular el eje mayor (bien de la célula, bien ejemenor = Bandera que indica si se desea calcular el eje menor (bien de la célula, bien solidez = Bandera que indica si se desea calcular la solidez (bien de la célula, bien del núcleo). int = Bandera que indica si se desea calcular el valor medio de intensidad y su desviación típica en el interior (bien de la célula, bien perim = Bandera que indica si se desea calcular el perímetro (bien de la célula, bien del núcleo). excentric = Bandera que indica si se desea calcular la excentricidad (bien de la célula, bien int_borde = Bandera que indica si se desea calcular el valor medio de intensidad y su desviación típica en el borde (bien de la célula, bien celula = Matriz que contiene la imagen de la célula segmentada, con los valores que no pertenecen a la célula a cero. 13

bordes = Matriz que contiene la imagen de bordes que marcan los límites de segmentación de la célula. nucleos = Matriz que contiene una imagen máscara con los núcleos detectados marcados a uno lógico. esnucleo = Vale 1 cuando es llamado para calcular los parámetros del núcleo y 0 cuando lo es para el citoplasma. matrix_xls = vector que almacena los parámetros calculados. Almacena en un vector los valores ordenados de los parámetros calculados. Cuando no se calcula un parámetro (porque el usuario decida que no es necesario), el valor por defecto es cero. 5 buscaroi.m function BW = fregiones(a,umbral,tam_min, radio1) A = Imagen en 2D preparada. Salida de preprocesado. umbral = Umbral para segmentar las regiones de interés del fondo. tam_min = Para eliminar las regiones por debajo de este tamaño. radio1 = Determina el tamaño del elemento morfológico que se va a usar en las operaciones. 14

BW = Máscara que elimina el fondo de la imagen, dejando sólo las regiones de interés. Esta función detecta automáticamente la región de interés de una imagen, eliminando el fondo. Crea una máscara que aplicada a la imagen elimina las regiones no deseadas. 6 FindMarks.m function smarks = FindMarks (soptions) soptions: estructura que contiene los siguientes campos image: La imagen que se quiere procesar ntipo: el tipo de operación morfológica que se desea hacer nsetam: tamaño del elemento morfológico smarks: estructura que contiene los siguientes campos image: la imagen de marcadores obtenida ctipo: cadena de caracteres con el filtrado aplicado Esta función encuentra máximos locales sobre una imagen en escala de grises previamente filtrada. 15

7 Region_grow2.m function [seg]=region_grow2(im,seg,criterion,connectivity) im: imagen en escala de grises sobre la que tengo que hacer la segmentación. seg: imagen binaria con las regiones semilla necesarias para la segmentación por crecimiento de región. criterion: umbral que sirve de criterio para admitir un pixel en una región. connectivity: conectividad del crecimiento de región. Puede valer 4 y 8. nucleos_final: imagen binaria con el resultado de la segmentación. Función que partiendo de unas regiones semilla, añade píxeles conectados que cumplen un criterio de intensidad fijado por el usuario de la aplicación. 8 pap.m function varargout = pap(varargin) Fichero.m para la creación de la aplicación pap.fig. Esta pantalla es la ventana principal de programa, donde el usuario puede cargar las imágenes que desee analizar, 16

puede modificar los parámetros y aplicar procesados sobre las imágenes, y a la vez visualizar los resultados. 9 SegWatershed.m function L = SegWatershed(mask,im_gray,marcadores,tipo,tipofiltro) mask: máscara de ROI calculada previamente. im_gray: imagen a segmentar en escala de grises. marcadores: imagen binaria con los marcadores necesarios para la segmentación Watershed. tipo: se han implementado dos tipos de transformada Watershed. La primera toma como entrada la imagen original (en escala de grises); y la segunda la imagen gradiente. tipofiltro: en el caso de que se tome como entrada a la transformada la imagen gradiente, este parámetro especifica el tipo de filtro usado para calcular el gradiente. L: imagen binaria con el resultado de la segmentación. Aplica el algoritmo de Watershed con marcadores para segmentar la imagen de entrada. 17

10 SegGradient.m function nucleos_final = SegGradient (soptions) soptions: estructura que contiene los siguientes campos: image: Imagen que se desea segmentar. ntypefilter: especifica el tipo de filtro usado para calcular el gradiente. numbral: umbral de segmentación del gradiente. nucleos_final: imagen binaria con el resultado de la segmentación. Segmenta la imagen de entrada umbralizando el gradiente de la imagen. 11 nucleos_final.m function nucleos_final = selec_nucleos(nucleoseg,flag_circ,flag_tam, MIN,MAX,CIRC) nucleoseg: Imagen binaria con la segmentación de los núcleos. flag_circ: Flag para filtro de circularidad. Cuando está a 1 se le pasa el filtro. flag_tam: Flag para filtro de tamaño. Cuando está a 1 se le pasa el filtro. 18

MIN: Umbral inferior de tamaño. MAX: Umbral superior de tamaño. CIRC: Umbral para el filtro de circularidad. nucleos_final: Imagen binaria de los núcleos segmentados que han pasado el filtro. Filtra las regiones segmentadas que no cumplan con unas características definidas a priori para un núcleo. 12 salir.m function varargout = salir(varargin) Fichero.m para la creación del cuadro de diálogo salir.fig. 19