0% encontró este documento útil (0 votos)
151 vistas43 páginas

Vision Computacional: Mathlab

Presentacion sobre mathlab y su uso para el procesamiento de imagenes. Vision Computacional FIME UANL
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
151 vistas43 páginas

Vision Computacional: Mathlab

Presentacion sobre mathlab y su uso para el procesamiento de imagenes. Vision Computacional FIME UANL
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

MATLAB y sus herramientas

MATLAB es una herramienta de software matemático que ofrece


un entorno de desarrollo integrado (IDE) con un lenguaje de programación
propio (lenguaje M).

Entre sus prestaciones básicas se hallan:

• Matrices
• Algoritmos
• GUI
• y la comunicación con programas en otros lenguajes y con otros
dispositivos hardware.
• El paquete MATLAB dispone de dos herramientas adicionales que
expanden sus prestaciones.

• Simulink
• GUIDE

• Además, se pueden ampliar las capacidades de MATLAB

• Toolboxes
• Blocksets

• MATLAB provee funciones y herramientas para visualizar datos en


2D y 3D
MATLAB combina un entorno de escritorio perfeccionado
para el análisis iterativo y los procesos de diseño con un
lenguaje de programación que expresa las matemáticas de
matrices y arrays directamente.

El desarrollo del algoritmo es fundamental para el


procesamiento de imágenes y la visión por computadora
porque cada situación es única y las buenas soluciones
requieren múltiples iteraciones de diseño.

MathWorks proporciona un entorno integral para obtener


información sobre su imagen y datos de video, desarrollar
algoritmos y explorar compensaciones de implementación.
EDGE

La detección de bordes es una técnica de procesamiento de imágenes


común, y se puede utilizar para una variedad de aplicaciones, como la
segmentación de imágenes, la detección de objetos y la detección de
líneas Hough.

• Es una técnica de procesamiento de imágenes para encontrar los límites de los


objetos dentro de las imágenes.
• Funciona al detectar discontinuidades en el brillo.
• La detección de bordes se usa para la segmentación de imágenes.
• La extracción de datos en áreas como el procesamiento de imágenes, la visión
por computadora y la visión artificial.
EDGE

• Sobel
• Canny
• Prewitt
• Roberts
• Métodos de lógica difusa.

• Método Sobel
Método Canny

Método de lógica difusa


Detección EDGE

En una imagen, un borde es una curva que sigue un camino de cambio


rápido en la intensidad de la imagen. Los bordes a menudo se asocian con
los límites de los objetos en una escena. La detección de bordes se usa
para identificar los bordes en una imagen.

Para encontrar bordes, puede usar la función de borde. Esta función busca
lugares en la imagen donde la intensidad cambia rápidamente, utilizando
uno de estos dos criterios:

Lugares donde la primera derivada de la intensidad es más grande en


magnitud que algún umbral

Lugares donde la segunda derivada de la intensidad tiene un cruce por


cero
Detección EDGE

Edge proporciona varios estimadores derivados, cada uno de los


cuales implementa una de estas definiciones.

Para algunos de estos estimadores, puede especificar si la operación


debe ser sensible a bordes horizontales, bordes verticales o ambos.
edge devuelve una imagen binaria que contiene 1's donde se
encuentran los bordes y 0 en otro lugar.
El método de detección de bordes más poderoso que
proporciona edge es el método Canny.

El método Canny difiere de los otros métodos de detección de


bordes en que utiliza dos umbrales diferentes (para detectar
bordes fuertes y débiles) e incluye los bordes débiles en la
salida solo si están conectados a bordes fuertes.

Por lo tanto, es menos probable que este método sea afectado


por el ruido y más probable que detecte los bordes débiles
verdaderos.
Detección EDGE

Es una técnica de procesamiento de imágenes para encontrar los límites


de los objetos dentro de las imágenes. Funciona al detectar
discontinuidades en el brillo. La detección de bordes se usa para la
segmentación de imágenes y la extracción de datos en áreas como el
procesamiento de imágenes.

Detectar bordes en imágenes

Este ejemplo muestra cómo detectar bordes en una imagen utilizando


el detector de bordes Canny y el detector de bordes Sobel.
Detectar bordes en imágenes

SOBEL CANNY
Detectando una celula usando la segmentación de imágenes
1. Se lee la imagen

2. detectar toda la célula


3. Dilata la imagen

4. Rellena los huecos interiores


5. eliminar los objetos conectados en el borde

6. suaviza el objeto
Un método alternativo para mostrar el objeto segmentado sería
colocar un contorno alrededor de la celda segmentada. El
esquema es creado por la función bwperim.
FUZY LOGIC TOOLBOX

Este ejemplo muestra cómo usar el software Fuzzy Logic Toolbox ™ para el
procesamiento de imágenes.
Específicamente, este ejemplo muestra cómo detectar bordes en una imagen.

Un borde es un límite entre dos regiones uniformes. Puede detectar un borde


comparando la intensidad de los píxeles vecinos.

Sin embargo, debido a que las regiones uniformes no están claramente definidas, las
pequeñas diferencias de intensidad entre dos píxeles vecinos no siempre representan
un borde.

El enfoque de lógica difusa para el procesamiento de imágenes le permite usar


funciones de membresía para definir el grado en que un píxel pertenece a un borde o
una región uniforme.
Importación de imagen RGB y conversión a escala de grises

Convierte Irgb a escala de grises


Convertir imagen en datos de doble precisión

El software Fuzzy Logic Toolbox funciona únicamente con


números de doble precisión. Por lo tanto, convierta Igray, una
matriz uint8, en una matriz doble.

Como los valores de uint8 están en el rango [0 2 ^ 8-1], todos los


elementos de I también están en ese rango. Escala I para que sus
elementos estén en el rango [0 1].
Obtener gradiente de imagen

El algoritmo de detección de bordes de lógica difusa para este


ejemplo se basa en el gradiente de imagen para ubicar las
roturas en regiones uniformes. Calcule el gradiente de la imagen
a lo largo del eje xy el eje y.
Gx y Gy son filtros simples de gradiente. Convierta I con Gx,
utilizando la función conv2, para obtener una matriz que
contenga los gradientes de eje x de I. Los valores de gradiente
están en el rango [-1 1]. Del mismo modo, convierta I con Gy
para obtener los gradientes del eje y de I.
Definir el sistema de inferencia difusa (FIS) para la detección de
bordes

Cree un sistema de inferencia difusa (FIS) para detección de


bordes, edgeFIS.

Especifique los gradientes de imagen, Ix e Iy, como las entradas


de edgeFIS.

Especifique una función de membresía gaussiana de media cero


para cada entrada. Si el valor del gradiente para un píxel es 0,
entonces pertenece a la función de membresía cero con un
grado de 1.
sx y sy especifican la desviación estándar para la función de
membresía cero para las entradas Ix e Iy. Puede cambiar los
valores de sx y sy para ajustar el rendimiento del detector de
bordes. Al aumentar los valores, el algoritmo es menos sensible
a los bordes de la imagen y disminuye la intensidad de los bordes
detectados.

Especifique la intensidad de la imagen detectada en el borde


como salida de edgeFIS
Especifique las funciones de membresía triangular, blancas y
negras, para Iout.

Como puede con sx y sy, puede cambiar los valores de wa, wb,
wc, ba, bb y bc para ajustar el rendimiento del detector de
bordes. Los trillizos especifican el inicio, el pico y el final de los
triángulos de las funciones de membresía. Estos parámetros
influyen en la intensidad de los bordes detectados.
Trace las funciones de membresía de las entradas / salidas de
edgeFIS.
Especifique las reglas de FIS

Añada reglas para hacer que un píxel sea blanco si pertenece a


una región uniforme. De lo contrario, haz que el píxel sea negro.
Evaluar FIS

Evalúe la salida del detector de borde para cada fila de píxeles


en I usando las filas correspondientes de Ix e Iy como entradas.
Trazar resultados
Trazar resultados
Ejemplo en MATLAB

Deteccion de bordes
En la primera parte se abre la imagen y se la aplica un filtrado
llamado sobel ,para eso se declaro la variable filt la cual
contiene el sobel y después se le aplica el filtro a la imagen con
imfilter, y se muestra con imagesc.

Devuelve un filtro de 3 por 3 que enfatiza los bordes


horizontales utilizando el efecto de suavizado al
aproximar un gradiente vertical. Para enfatizar los
bordes verticales
Se borró los anteriores comandos de la
consola para que se observe de una
mejor manera.
Por ejemplo aquí se muestra la imagen
de una manera normal.
Luego se muestra con el filtro aplicado
monochrome que es una escala de grises
a simple vista.

Tomando en cuenta los nuevos


comandos, se ve rgb2gray para aplicar el
filtro, y el otro sería ponerle un título a la
imagen con title
En esta parte se aplica el comando
fspecial con una manera gaussian lo que
nos arroja esta gráfica

Surf crea el grafico


Después de esto se aplicó un filtro
smoothed para posteriormente pasar a
encontrar los bordes de la imagen
Después de aplicar el filtro smoothed se
ven las diferencias entre el lado izquierdo
y derecho

Se extraen los valores de la matriz para


hacer la comparacion
Luego se ven los bordes de la imagen original
Estos son los bordes de la imagen con efecto smooth
Por último los bordes con parámetro log.
Que significa Laplacian of Gaussian.
En resumen

Detectó los bordes en una imagen usando un FIS, comparando el


gradiente de cada píxel en las direcciones xey. Si el gradiente de
un píxel no es cero, entonces el píxel pertenece a un borde
(negro). Usted definió el gradiente como cero usando las
funciones de membresía de Gauss para sus entradas FIS.
Ejemplo de detección de líneas

• Dentro de este ejemplo es importante destacar 3 funciones principales:

Donde podemos identificar la primera función para generar la Transformada de


Hough ( 𝜌 = 𝑥 𝐶𝑜𝑠𝜃 + 𝑦 𝑆𝑖𝑛 𝜃 ), con los parámetros que mas adelante le daremos
en la imagen.
La segunda línea es para identificar los picos dentro de la transformada de
Hough, estará alimentada de la transformada y de las acumulaciones en puntos
altos.
La ultima función nos arrojara las líneas, ya que nos traerá los resultados de los
puntos (función 2) dentro de la transformada de Hough (función 1)
Cargamos la imagen con la que vamos a trabajar y el
primer paso es pasar la imagen a escala de grises y
después detectar bordes, aquí lo hacemos con el
algoritmo “canny”.

Después pondremos la primera de las funciones ya


mencionadas especificando los parámetros de la
resolución en rho y la resolución en theta.
Enseguida podemos seguir con la segunda de nuestras
funciones importantes, aqui especificamos la cantidad
de puntos que queremos que no detecte dentro de la
transformada de Hough.
Para la tercera function ya tendremos detectadas las
lineas de nuestra imagen.
Podemos ver que se han encontrado
3 lineas, para verlo graficamente
complementamos nuestro codigo:

También podría gustarte