1
INSTITUTO TECNOLGICO SUPERIOR
DEL SUR DE GUANAJUATO
Manipulacin de imgenes con MATLAB
CURSO DE TITULACION
Elaborado por:
Juan Manuel Jimnez Vzquez
Carrera:
Ingeniera Electrnica
Maestro:
Netzahualcyotl Martnez Czares.
Uriangato Gto. 29 de Abril de 2013
2
Contenido INTRODUCCION......................................................................................................................... 3
1.2 DONDE COMENZO EL PROCESAMIENTO DE IMGENES. ..................................................... 4
PARA QUE SIRVE.................................................................................................................... 5
DESARROLLO............................................................................................................................. 6
PROGRAMA 1. MOSTRAR LINEAS VERTICALES CON ANCHO DE 20. ........................................ 6
PROGRAMA 2. BARRIDO DE IMAGEN................................................................................... 7
PROGRAMA 3. PARA BAJAR PIXEL A UNA IMAGEN. .............................................................. 8
PROGRAMA 4. AGREGAR BRILLO A UNA IMAGEN................................................................. 9
PROGRAMA 5. AGRANDAMIENTO DE IMAGEN PIXEL A PIXEL. ..............................................10
PROGRAMA 6. INDEXADO DE IMAGEN (MUESTRA DIVERSAS IMGENES). ............................11
PROGRAMA 7. INDEXADO DE IMAGEN (MUESTRA PORCION DE IMAGEN DESEADA). ............12
PROGRAMA 8. FILTRO LINEAL (SUAVIZAR UNA IMAGEN) .....................................................13
PROGRAMA 9. METER RUIDO A UNA IMAGEN. ...................................................................14
PROGRAMA 10. METER RUIDO FILTRADO. ..........................................................................16
PROGRAMA 11. EXTRACCION DE BORDES. ..........................................................................18
PROGRAMA 12. SEGUNDA DERIVADA.................................................................................19
PROGRAMA 13. SEGUNDA DERIVADA MEJORADA. ..............................................................20
SIMULINK. ............................................................................................................................21
LABVIEW ..............................................................................................................................24
3
INTRODUCCION.
El procesamiento digital de imgenes es un campo de investigacin abierto. El constante progreso
en esta rea no ha sido por s mismo, sino en conjunto con otras reas con las cuales est
relacionada como las matemticas, la computacin, y el conocimiento cada vez mayor de ciertos
rganos del cuerpo humano que intervienen en la percepcin y en la manipulacin de las
imgenes. Aunado a esto, la inquietud del hombre por imitar y usar ciertas caractersticas del ser
humano como apoyo en la solucin de problemas. El avance del Procesamiento Digital de
Imgenes se ve reflejado en la medicina, la astronoma, geologa, microscopa, etc. Informacin
meteorolgica, transmisin y despliegue agilizado de imgenes por Internet tienen sustento
gracias a estos avances.
En el procesamiento digital de imgenes deben tomarse en cuenta varios aspectos como la percepcin psicovisual del ser humano. ste es un factor importante porque independientemente
del tratamiento que se le aplique a una imagen, el observador ser quien, segn su percepcin, decidir si dicha imagen le agrada o no.
El desarrollo de los mtodos de procesamiento digital de imgenes tiene su origen en dos reas
principales de aplicacin: el mejoramiento de la informacin pictrica para la interpretacin humana, y el procesamiento de datos de la imagen para la percepcin de mquina autnoma en
el que se incluyen etapas de transmisin y/o almacenamiento de estos datos. La herramienta usada en el tratamiento digital de las imgenes son las matemticas; los conceptos
que se vern son bsicos. La computadora y los algoritmos que se implementan sobre stas tambin tienen un papel muy importante en la manipulacin de las imgenes.
Representacin de una imagen digital El trmino "imagen monocromtica" o imagen simplemente, se refiere a una funcin de intensidad de luz bidimensional f (x, y), donde x e y indican las coordenadas espaciales y el valor de f en
cualquier punto (x, y) es proporcional a la luminosidad (o nivel de gris) de la imagen en dicho
punto. Una imagen digital es una imagen (funcin) f (x, y) que ha sido discretizada tanto en coordenadas
espaciales como en luminosidad. Una imagen digital puede ser considerada como una matriz cuyos ndices de rengln y columna identifican un punto (un lugar en el espacio bidimensional)
en la imagen y el correspondiente valor de elemento de matriz identifica el nivel de gris en aquel punto. Los elementos de estos arreglos digitales son llamados elementos de imagen o pixeles.
En el tratamiento de imgenes se pueden distinguir tres etapas principales:
Adquisicin de la imagen.
Procesamiento de la imagen.
4
1.2 DONDE COMENZO EL PROCESAMIENTO DE IMGENES. El procesamiento digital de imgenes aparece tardamente en la historia de la computacin, ya que antes de pensar en ello, haba que desarrollar el hardware y los sistemas operativos grficos que permitieran hacerlo. Por otro lado, los algoritmos y las tcnicas de optimizacin que han tenido que desarrollarse para el procesamiento digital de imgenes son muy sofisticados y elaborados. En la actualidad existen muchas aplicaciones de software que permiten el procesamiento digital de imgenes, mucho de este utiliza tcnicas o algoritmos que son bien conocidos por la comunidad que trabaja en ello, pero otros utilizan sus propias variantes o tcnicas nuevas que estn poco documentadas. Se puede decir que los primeros intentos de manipulacin, almacenamiento y transmisin de imgenes surgieron en 1920, cuando se desarroll un sistema de transmisin de fotografas a travs de cable trasatlntico usando cdigos telegrficos. Este sistema permita una codificacin de la imagen en cinco niveles de gris, y luego fue mejorado a 15 niveles de gris en 1929. Dicho sistema redujo la transmisin de imgenes, con calidad para publicacin en peridicos, de dos semanas (tiempo requerido para el envo por barco) a alrededor de quince minutos (Gonzlez, 1987). Un segundo momento importante se da al final de los aos cincuenta y consiste en la necesidad de analizar imgenes derivadas de las actividades ligadas a la guerra. La fotografa area y espacial. Las primeras imgenes cercanas de un cuerpo celeste diferente de la tierra fueron tomadas por la Unin Sovitica a principios de 1959, cuando la sonda espacial Luna 3 fotografi el lado oscuro de la luna. Las fotografas fueron reveladas dentro de la sonda espacial y posteriormente se hizo una transmisin tipo facsimilar. La calidad de las imgenes era bastante mala, pero despus de procesarlas digitalmente se pudo realizar un aceptable atlas del lado oscuro de la luna. Estas tcnicas tuvieron un renacimiento en 1964 con el procesamiento de las imgenes recibidas de la sonda estadounidense Ranger 7, que transmita cerca de la luna. Este procesamiento era bsicamente la correccin de distintos tipos de distorsin producida por las cmaras de TV. Algunas de las distorsiones que se eliminaron fueron: la distorsin geomtrica producida por la diferencia en velocidades de barrido entre el vidicon en la sonda y el tubo reproductor en la Tierra; la no linealidad fotomtrica debida a una respuesta irregular en el tubo; y un ruido oscilatorio debido a la contaminacin de la seal de televisin por los sistemas electrnicos de la sonda. Afortunadamente, estos tres problemas se pudieron solucionar y a partir de esta poca y con el impulso fundamental del Jet Propulsin Laboratory, el procesamiento digital de imgenes ha cobrado gran importancia en diversos mbitos de la vida actual.
5
PARA QUE SIRVE
La forma en cmo funciona, el objetivo de procesamiento de imgenes es mejorar el
aspecto de las imgenes adems que est ligada a la de visin computacional aunque
ambos son diferentes sirven para el mejoramiento de las imgenes.
El objetivo de la visin computacional es extraer caractersticas de una imagen para su
descripcin y as lo pueda interpretar la computadora como poder visualizarlo en ellas, en
otras que veremos son el proceso de filtrado que en si es un conjunto de tcnicas cuyo
objetivo fundamental es obtener, resultado sea ms adecuado para una aplicacin
especfica mejorando ciertas caractersticas una de estas es suavizar la imagen: reducir la
cantidad de variaciones de intensidad entre pxeles vecinos.
EL PROCESAMIENTO de imgenes tiene como objetivo mejorar el aspecto de las
imgenes y hacer ms evidentes en ellas ciertos detalles que se desean hacer notar. La
imagen puede haber sido generada de muchas maneras, por ejemplo, fotogrficamente, o
electrnicamente, por medio de monitores de televisin. El procesamiento de las
imgenes se puede en general hacer por medio de mtodos pticos, o bien por medio de
mtodos digitales, en una computadora. En la siguiente seccin describiremos muy
brevemente estos dos mtodos, pero antes se har una sntesis brevsima de los
principios matemticos implcitos en ambos mtodos, donde el teorema de Fourier es el
eje central.
Es el conjunto de tcnicas englobadas dentro del preprocesamiento de imgenes cuyo
objetivo fundamental es obtener, a partir de una imagen origen, otra final cuyo resultado
sea ms adecuado para una aplicacin especfica mejorando ciertas caractersticas de la
misma que posibilite efectuar operaciones del procesado sobre ella.
Los principales objetivos que se persiguen con la aplicacin de filtros son:
Suavizar la imagen: reducir la cantidad de variaciones de intensidad entre pxeles vecinos.
Eliminar ruido: eliminar aquellos pxeles cuyo nivel de intensidad es muy diferente al de
sus vecinos y cuyo origen puede estar tanto en el proceso de adquisicin de la imagen
como en el de transmisin.
Realzar bordes: destacar los bordes que se localizan en una imagen.
Detectar bordes: detectar los pxeles donde se produce un cambio brusco en la funcin
intensidad.
Por tanto, se consideran los filtros como operaciones que se aplican a los pxeles de una
imagen digital para optimizarla, enfatizar cierta informacin o conseguir un efecto especial
en ella.
6
DESARROLLO
PROGRAMA 1. MOSTRAR LINEAS VERTICALES CON ANCHO DE 20.
Este programa sirve para hacer un barrido de imagen en blanco y negro delimitando el ancho de sus columnas.
clc
clear %A=imread('rice.png'); %imshow('rice.png'); %imshow(A); %[m, n]=size(A); %B=im2bw(A); % imshow(B) % figure % imshow(A)
Mbin=false([120,200]) %este comando nos muestra la imagen en blanco
cuando es falso definiendo tambin el tamao de la imagen(120,200)
imshow(Mbin) %muestra la imagen for i=1:40:120 %aqui iniciamos con separacin de 40 hasta cubrir
los 120 pixeles Mbin(i:i+19,:)=true; %aqui se pone el tamao del cual queremos que
sean las divisiones
end imshow(Mbin) %muestra la imagen modificada
Mbin=Mbin'; imshow(Mbin)
FIN DEL PROGRAMA.
figura 1
7
PROGRAMA 2. BARRIDO DE IMAGEN.
Mediante este programa se puede hacer un barrido de una imagen de blanco al negro y viceversa.
clc clear A=zeros([256,256]); %hace la matriz a zeros for i=1:1:256 %se fija el rango de la imagen A(i,:)=i; %este inicia el barrido de la imagen end
A=uint8(A); %convierte los elementos del arreglo en un entero de 8 bits. %A puede ser cualquier numrico, como un doble. %Los valores estn en el rango de 0 a 255. imshow(A) figure %este comando sostiene la imagen A=A'; %este comando muestra la transpuesta de la matriz A imshow(A)
FIN DEL PROGRAMA.
figura 2
8
PROGRAMA 3. PARA BAJAR PIXEL A UNA IMAGEN.
Este programa sirve para bajar la resolucin de imagen pixel por pixel.
clc clear A=imread('cameraman.tif'); [m n]=size(A); %muestra el tamao de la matriz a=1; %se inicializan en 1 para la nueva matriz b=1; %se inicializan en 1 para la nueva matriz
for i=1:2:m %para igualar los tamaos de la matriz for j=1:2:n %para igualar los tamaos de la matriz B(a,b)=A(i,j); %se iguala la imagen B a la A, igualando sus
variables b=b+1; %para que siga recorriendo en x end b=1; %translado en y
a=a+1; %translado en y end
B=uint8(B); %convierte los elementos del arreglo en un entero
de 8 bits. A puede ser cualquier numrico, como un
doble. Los valores estn en el rango de 0 a 255. figure subplot(1,2,1) %sirve para mantener en la ventana las imgenes
deseadas a ver en este caso 2, esta es el orden1
imshow(A) %muestra la primer imagen subplot(1,2,2) %sirve para mantener en la ventana las imgenes
deseadas a ver en este caso 2, esta es el orden2 imshow(B) %muestra la segunda imagen modificada
FIN DE PROGRAMA.
figura 3
9
PROGRAMA 4. AGREGAR BRILLO A UNA IMAGEN.
Este programa sirve para subir o bajar el brillo de una imagen.
clc clear A=imread('cameraman.tif'); B=A; B=B*1; %se fija el brillo para las imgenes C=ones([256,256]); %para que la matriz se haga unos C=C*100; %es para ir aumentando el brillo de la imagen
modificada C=uint8(C); %convierte los elementos del arreglo en un entero
de 8 bits. A puede ser cualquier numrico, como
un doble. Los valores estn en el rango de 0 a
255. D=B+C; %se crea una nueva variable, donde se suman las
subplot(1,2,1) %sirve para mantener en la ventana las imgenes
deseadas a ver en este caso 2, esta es el orden1 imshow(B) %muestra la primer imagen subplot(1,2,2) %sirve para mantener en la ventana las imgenes
deseadas a ver en este caso 2, esta es el orden2 imshow(D) %muestra la segunda imagen
FIN DEL PROGRAMA
figura 4
10
PROGRAMA 5. AGRANDAMIENTO DE IMAGEN PIXEL A PIXEL.
Este programa sirve para aumentar la resolucin de una imagen pixel a pixel.
clc clear A=imread('cameraman.tif'); [m n]=size(A); a=1; b=1; for i=1:1:m for j=1:1:n
B(a,b)=A(i,j); %estas son coordenadas para posicionar cada
pixel en su lugar, B(a,b+1)=A(i,j); %aumentando al doble un pixel de la figura
original B(a+1,b)=A(i,j); %aumentando al doble un pixel de la figura
original
B(a+1,b+1)=A(i,j); %aumentando al doble un pixel de la figura
original b=b+2; %aumentando de igual forma en y end b=1; a=a+2; end subplot(1,2,1) %sirve para mantener en la ventana las imgenes
deseadas a ver en este caso 2, esta es el orden1 imshow(A) %muestra la primer imagen
subplot(1,2,2) %sirve para mantener en la ventana las imgenes
deseadas a ver en este caso 2, esta es el orden2 imshow(B) %muestra la primer imagen
FIN DEL PROGRAMA.
figura 5
11
PROGRAMA 6. INDEXADO DE IMAGEN (MUESTRA DIVERSAS IMGENES).
Este programa muestra la seleccin de imgenes.
clear clc IA=imread('cameraman.tif'); IB=imread('rice.png'); [m n]=size(IA); s=1; while(s==1)
alfa=input('dame el valor de alfa entre [0 1]') %comando para pedir
cualquiera de las dos
imgenes for x=1:1:m for y=1:1:n
IR(x,y)=((1-alfa)*(IA(x,y))+(alfa*(IB(x,y)))); %para mezclar dos
imgenes
end end imshow(IR) %muestra la respuesta end
FIN DEL PROGRAMA.
figura 7
figura 6
12
PROGRAMA 7. INDEXADO DE IMAGEN (MUESTRA PORCION DE IMAGEN DESEADA).
Este programa se utiliza para mostrar la porcin deseada de otra imagen.
clc clear A=imread('cameraman.tif'); B=A(1:2:end,1:2:end) %delimita el rea de la imagen
C=A(80:1:200,80:1:200) %en esta instruccin como en la siguiente se
fijan coordenadas y zona de corte A(80:1:200,80:1:200)=0 %Donde A es la imagen mxn:i:m size(A) size(B) imshow(A); figure imshow(B); imshow(C)
FIN DEL PROGRAMA.
figura 8
13
PROGRAMA 8. FILTRO LINEAL (SUAVIZAR UNA IMAGEN)
Este programa sirve para bajar o atenuar la resolucin de una imagen, utilizando un filtro.
clear clc A=imread('cameraman.tif'); %A es imagen original [m n]=size(A); A=double(A); %convierte a A en doble B=(A);
for i=2:1:m-1; %esto es para suavizar la imagen, siguiendo
un comando para la creacin de un filtro. for j=2:1:n-1; B(i,j)=(A(i-1,j-1)+A(i-1,j)+A(i-1,j+1)+A(i,j 1)+A(i,j)+A(i,j+1)+A(i+1,j-
1)+A(i+1,j)+A(i+1,j+1))*(1/9); end end [m1,n1]=size(B)
B=uint8(B); %convierte los elementos del arreglo en un
entero de 8 bits. A puede ser cualquier
numrico, como un doble. Los valores estn en el
rango de 0 a 255. A=uint8(A); subplot(1,2,1) %sirve para mantener en la ventana las imgenes
deseadas a ver en este caso 2, esta es el orden1 imshow(A) %muestra la primer imagen subplot(1,2,2) %sirve para mantener en la ventana las imgenes
deseadas a ver en este caso 2, esta es el orden1
imshow(B) %muestra la primer imagen
FIN DEL PROGRAMA.
figura 9
14
PROGRAMA 9. METER RUIDO A UNA IMAGEN.
Este programa sirve para introducir distorsiones a una imagen.
clear clc A=imread('cameraman.tif'); B=A; [re co]=size(B); %re es igual a renglon y co es igual a columna for v=1:50 %aqui se agrega el ruido deseado x=round(rand*re); %para encontrar valor de x aleatoriamente y=round(rand*co); %para encontrar valor de y aleatoriamente if x==0 %inicializar x x=1; end if y==0 %inicializar y y=1; end
if x==re %para delimitar el rea en x x=re-2; end if y==co %para delimitar el rea en y y=co-2; end
B(x,y)=255; %se agrega el ruido, siguiendo una serie de instrucciones
de coordenadas B(x,y+1)=255; B(x+1,y)=255;
B(x+1,y+1)=255; B(x+2,y)=255; B(x+2,y+1)=255; end B=double(B); %se convierte B a doble C=B;
figura 10
15
A continuacin se agrega al programa el filtro lineal para suavizar una imagen, quedando el programa como sigue:
for i=2:1:re-1; %esto es para suavizar la imagen, ejercicio
anterior for j=2:1:co-1; C(i,j)=(B(i-1,j-1)+B(i-1,j)+B(i-1,j+1)+B(i,j-1)+B(i,j)+B(i,j+1)+B(i+1,j-
1)+B(i+1,j)+B(i+1,j+1))*(1/9); end end
B=uint8(B); %convierte los elementos del arreglo en un
entero de 8 bits. B puede ser cualquier
numrico, como un doble. Los valores estn en el
rango de 0 a 255. C=uint8(C); subplot(1,2,1) %sirve para mantener en la ventana las imgenes
deseadas a ver en este caso 2, esta es el orden1 imshow(B) %muestra la primer imagen subplot(1,2,2) %sirve para mantener en la ventana las imgenes
deseadas a ver en este caso 2, esta es el orden1 imshow(C) %muestra la segunda imagen
FIN DEL PROGRAMA.
figura 11
16
PROGRAMA 10. METER RUIDO FILTRADO.
Este programa sirve para mejorar la imagen con ruido, haciendo uso de los filtros, as como
tambin haciendo uso de la mediana.
clear clc A=imread('cameraman.tif'); B=A; [re co]=size(B); %re es igual a renglon y co es igual a columna [m n]=size(B); for v=1:100 %aqui se agrega el ruido deseado x=round(rand*re); %para encontrar valor de x aleatoriamente
y=round(rand*co); %para encontrar valor de y aleatoriamente if x==0 %inicializar x x=1; end if y==0 %inicializar y y=1; end if x==re %para delimitar el rea en x x=re-2; end
if y==co %para delimitar el rea en y y=co-2; end
B(x,y)=255; %se agrega el ruido, siguiendo una serie de
instrucciones de coordenadas B(x,y+1)=255; B(x+1,y)=255; B(x+1,y+1)=255; B(x+2,y)=255; B(x+2,y+1)=255; end
B=double(B); %se inicia el proceso para filtrar de matriz en
matriz CC=B; for i=1:1:m-2 %aqui se inicia el ciclo for j=1:1:n-2 SS=B(i:i+2,j:j+2); %aqui toma las matrices de 3x3 C=[SS(:,1);SS(:,2);SS(:,3)]; C=sort(C,1); Me=C(5,1); CC(i,j)=Me; end end
CC=double(CC); %para este nuevo ciclo nicamente se cambian
las variables y se muestran despus CE=CC; %nueva matriz for i=1:1:m-2 for j=1:1:n-2 SS=CC(i:i+2,j:j+2); %aqui toma las matrices de 3x3 C=[SS(:,1);SS(:,2);SS(:,3)]; C=sort(C,1); Me=C(5,1);
17
CE(i,j)=Me; end end
CE=double(CE); %nueva matriz CEE=CE; for i=1:1:m-2 for j=1:1:n-2 SS=CE(i:i+2,j:j+2); %aqui toma las matrices de 3x3 C=[SS(:,1);SS(:,2);SS(:,3)]; C=sort(C,1); Me=C(5,1); CEE(i,j)=Me; end end
B=uint8(B); %convierte los elementos del arreglo CC=uint8(CC); %convierte los elementos del arreglo CE=uint8(CE); %convierte los elementos del arreglo CEE=uint8(CEE); %convierte los elementos del arreglo
subplot(1,4,1) %comando para adjuntar imgenes en una misma ventana imshow(B) %muestra la imagen subplot(1,4,2) %comando para adjuntar imgenes en una misma ventana imshow(CC) %muestra la imagen subplot(1,4,3) %comando para adjuntar imgenes en una misma ventana imshow(CE) %muestra la imagen subplot(1,4,4) %comando para adjuntar imgenes en una misma ventana imshow(CEE) %muestra la imagen
FIN DE PROGRAMA.
figura 12
18
PROGRAMA 11. EXTRACCION DE BORDES.
Los bordes representan cambios bsicos en los niveles de gris o intensidad, por este motivo su
extraccin se puede abordar desde el punto de vista especial, derivando la funcin (imagen).
clc clear A=imread('cameraman.tif'); %se carga la imagen %se introduce el comando de extraccin de borde ya sea PREWITT, SOBEL O
ROBERT [gx t]=edge(A,'sobel','horizontal'); %para este se utiliza el SOBEL,
donde A es la imagen, SOBEL es el
operador, HORIZONTAL es el umbral
dado [gy t]=edge(A,'sobel','vertical'); %para este se utiliza el SOBEL,
donde A es la imagen, SOBEL es el
operador, VERTICAL es el umbral
dado GT=gx+gy; %se suman las matrices generadas
por EDGE y se crea una nueva
variable imshow(GT) %se muestra la matriz final
FIN DEL PROGRAMA.
figura 13
19
PROGRAMA 12. SEGUNDA DERIVADA.
Los bordes representan cambios bsicos en los niveles de gris o intensidad, por este motivo su
extraccin se puede abordar desde el punto de vista especial, derivando la funcin (imagen).
Como se puede observar, ahora se aplica la segunda derivada para obtener una mejor resolucin
de la misma.
clear clc A=imread('cameraman.tif'); %lee la imagen [m1 n1]=size(A); %muestra el tamao de la matriz original A=double(A); B=A; %se igualan las matrices
for x=2:1:m1-1 %se inicia el ciclo anidado delimitando el
rea de la imagen for y=2:1:n1-1 B(x,y)=A(x+1,y)-(4*A(x,y))+A(x-1,y)+A(x,y+1)+A(x,y-1); %se introduce
el comando para la segunda derivada, siguiendo una serie de coordenadas end end [m2 n2]=size(B); %muestra el tamao de la nueva matriz
A=uint8(A); %convierte los elementos del arreglo en un
entero de 8 bits. B puede ser cualquier
numrico, como un doble. Los valores estn en el
rango de 0 a 255. B=uint8(B); subplot(1,2,1) %muestra las imgenes en una sola ventana imshow(A) %muestra la imagen A subplot(1,2,2) %muestra las imgenes en una sola ventana imshow(B) %muestra la imagen B
FIN DEL PROGRAMA.
figura 14
20
PROGRAMA 13. SEGUNDA DERIVADA MEJORADA.
Los bordes representan cambios bsicos en los niveles de gris o intensidad, por este motivo su
extraccin se puede abordar desde el punto de vista especial, derivando la funcin (imagen).
Como se puede observar, ahora se aplica la segunda derivada para obtener una mejor resolucin
de la misma.
clear clc A=imread('cameraman.tif'); [m1 n1]=size(A); %muestra el tamao de la matriz original A=double(A); B=A; %se igualan las matrices
for x=2:1:m1-1 %se inicia el ciclo anidado delimitando el rea de la
imagen for y=2:1:n1-1 B(x,y)=A(x+1,y)-(4*A(x,y))+A(x-1,y)+A(x,y+1)+A(x,y-1)+A(x-
1,y+1)+A(x+1,y+1)+A(x-1,y-1)+A(x+1,y-1); %se introduce el comando para
la segunda derivada, siguiendo una serie de coordenadas end end
w=1; %se fija esta variable como un parmetro para mostrar
mejor la nueva imagen, si es ms cercana a 0, es
mejor el filtro C=A-(w*B); %se declara esta variable para la funcin de segunda
derivada mejorada pmin=min(min(C)); %declaracin de variables para la formula C=C-pmin; %para bajar los valores de la matriz pmax=max(max(C)); %parmetros para la formula Cn=(C/pmax)*255; %formula de segunda derivada mejorada [m2 n2]=size(B); %muestra el valor
A=uint8(A);
B=uint8(B); Cn=uint8(Cn); subplot(1,2,1) imshow(A) subplot(1,2,2) imshow(Cn)
FIN DEL PROGRAMA.
figura 15
21
SIMULINK.
Por ltimo, se termin con un ejercicio utilizando SIMULINK, mediante el cual se agreg una
imagen para poder realizar los ejercicios anteriormente descritos, sin necesidad de escribir un
programa para su ejecucin. Para lo cual se inicializa SIMULINK, en seguida a la librera de VIDEO
AND IMAGE PROCESSING BLOCKSET.
Primero se cargara una imagen predeterminada y se mostrara, para verificar que los mdulos
funcionen correctamente; utilizando IMAGE FROM FILE y VIDEO VIEWER. A continuacion se
muestra la imagen cargada.
figura 16
figura 17 figura 18
22
Enseguida se utilizara la misma imagen, pero ahora se utilizara un detector de bordes, con la
herramienta EDGE DETECTION, utilizando el operador SOBEL.
A continuacion se muestra la imagen resultante
Por ultimo se hara el mismo proceso, pero ahora adquiriendo una imagen de la camara de la pc en
tiempo real, utilizando ahora la herramienta de FROM VIDEO DEVICE.
figura 19
figura 20
figura 21
23
Obteniendo el siguiente resultado con un envase de botella
Por lo tanto se puede concluir que se pueden realizar distintos tipos de procesamiento de
imgenes utilizando, ya sea la programacion o utilizando el modulo de SIMULINK.
figura 22
24
LABVIEW
Asi mismo se puede emplear un programa hecho en MATLAB, para utilizarlo en LABVIEW,
haciendo uso del archivo .M, esto es, cargar un programa hecho en MATLAB y despues exportarlo
a LabView.
Se inicia el ambiente de LABVIEW, a continuacion se utiliza el modulo MATLAB SCRIPT, y se carga
el programa hecho en MATLAB, como se muestra en la figura
Se carga el programa y se muestran los resultados siguientes
Como se observa en la figura, se puede realizar este tipo de comunicacin entre un programa y
otro, esto simplifica el trabajo si se quiere trabajar en el ambiente de LabView.
figura 23
figura 24
Recommended