Está en la página 1de 24

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
1

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

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.

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 d e
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.

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.

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])
imshow(Mbin)
for i=1:40:120
Mbin(i:i+19,:)=true;
end
imshow(Mbin)
Mbin=Mbin';
imshow(Mbin)

%este comando nos muestra la imagen en blanco


cuando es falso definiendo tambin el tamao de
la imagen(120,200)
%muestra la imagen
%aqui iniciamos con separacin de 40 hasta cubrir
los 120 pixeles
%aqui se pone el tamao del cual queremos que
sean las divisiones
%muestra la imagen modificada

FIN DEL PROGRAMA.

figura 1

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]);
for i=1:1:256
A(i,:)=i;
end

%hace la matriz a zeros


%se fija el rango de la imagen
%este inicia el barrido de la imagen

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

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
for j=1:2:n
B(a,b)=A(i,j);
b=b+1;
end
b=1;
a=a+1;

%para igualar los tamaos de la matriz


%para igualar los tamaos de la matriz
%se iguala la imagen B a la A, igualando sus
variables
%para que siga recorriendo en x
%translado en y
%translado en y

end
B=uint8(B);
figure
subplot(1,2,1)
imshow(A)
subplot(1,2,2)
imshow(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.
%sirve para
deseadas a
%muestra la
%sirve para
deseadas a
%muestra la

mantener en la ventana las imgenes


ver en este caso 2, esta es el orden1
primer imagen
mantener en la ventana las imgenes
ver en este caso 2, esta es el orden2
segunda imagen modificada

FIN DE PROGRAMA.

8
figura 3

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)
imshow(B)
subplot(1,2,2)
imshow(D)

%sirve para
deseadas a
%muestra la
%sirve para
deseadas a
%muestra la

mantener en la ventana las imgenes


ver en este caso 2, esta es el orden1
primer imagen
mantener en la ventana las imgenes
ver en este caso 2, esta es el orden2
segunda imagen

FIN DEL PROGRAMA

figura 4

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);
B(a,b+1)=A(i,j);
B(a+1,b)=A(i,j);
B(a+1,b+1)=A(i,j);
b=b+2;
end
b=1;
a=a+2;
end
subplot(1,2,1)
imshow(A)
subplot(1,2,2)
imshow(B)

%estas son coordenadas para posicionar cada


pixel en
su lugar,
%aumentando al doble un pixel de la figura
original
%aumentando al doble un pixel de la figura
original
%aumentando al doble un pixel de la figura
original
%aumentando de igual forma en y

%sirve para
deseadas a
%muestra la
%sirve para
deseadas a
%muestra la

mantener en la ventana las imgenes


ver en este caso 2, esta es el orden1
primer imagen
mantener en la ventana las imgenes
ver en este caso 2, esta es el orden2
primer imagen

FIN DEL PROGRAMA.

figura 5

10

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

11

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)
C=A(80:1:200,80:1:200)
A(80:1:200,80:1:200)=0
size(A)
size(B)
imshow(A);
figure
imshow(B);
imshow(C)

%delimita el rea de la imagen


%en esta instruccin como en la siguiente se
fijan coordenadas y zona de corte
%Donde A es la imagen mxn:i:m

FIN DEL PROGRAMA.

figura 8

12

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,j1)+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

13

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

14

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,j1)+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

15

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);

16

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);
CC=uint8(CC);
CE=uint8(CE);
CEE=uint8(CEE);
subplot(1,4,1)
imshow(B)
subplot(1,4,2)
imshow(CC)
subplot(1,4,3)
imshow(CE)
subplot(1,4,4)
imshow(CEE)

%convierte
%convierte
%convierte
%convierte
%comando
%muestra
%comando
%muestra
%comando
%muestra
%comando
%muestra

los
los
los
los

elementos
elementos
elementos
elementos

para adjuntar
la imagen
para adjuntar
la imagen
para adjuntar
la imagen
para adjuntar
la imagen

del
del
del
del

arreglo
arreglo
arreglo
arreglo

imgenes en una misma ventana


imgenes en una misma ventana
imgenes en una misma ventana
imgenes en una misma ventana

FIN DE PROGRAMA.

figura 12

17

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

18

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');
[m1 n1]=size(A);
A=double(A);
B=A;
for x=2:1:m1-1

%lee la imagen
%muestra el tamao de la matriz original
%se igualan las matrices
%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

19

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(x1,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.

20
figura 15

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.

figura 16

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 17

figura 18

21

Enseguida se utilizara la misma imagen, pero ahora se utilizara un detector de bordes, con la
herramienta EDGE DETECTION, utilizando el operador SOBEL.

figura 19

A continuacion se muestra la imagen resultante

figura 20

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 21

22

Obteniendo el siguiente resultado con un envase de botella

figura 22

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.

23

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

figura 23

Se carga el programa y se muestran los resultados siguientes

figura 24

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.

24

También podría gustarte