Sei sulla pagina 1di 17

Universidad de Concepción

Facultad de Ingeniería
Departamento de Ingeniería Eléctrica DIE

Tarea Nº 2
Filtrado de Imágenes
Procesamiento Digital de Imágenes
[547501-0]
I-2008

Nombre : Carlos Ulloa Sierpe


Profesor : Eligio Amthauer
Sergio Torres
Fecha de Entrega : 16 de junio de 2008
Tarea 2 - Encabezado Procesamiento Digital de Imágenes

DESARROLLO TAREA 2

I. Selecciones, según su propio criterio una imagen que contenga frecuencias


espaciales altas, medias y bajas.

Informe brevemente sobre el proceso

II.Redúzcala a una imagen de 512 x 512 píxeles en 256 niveles de gris, por el
método
(software) que considere más adecuado.

Informe sobre la imagen y haga un breve análisis de ella y las frecuencias


espaciales presentes en dicha imagen.

III.Realice un filtrado pasabajo mediante un filtro promediador. Seleccione el


orden y los parámetros del filtro según su propio criterio. Realice un primer
filtrado con una aplicación del filtro y un segundo filtrado con varias (más de 3)
aplicaciones del filtro. Obtenga el módulo de la transformada de Fourier para la
imagen original y la imagen filtrada repetidamente.

Informe sobre diferencias observables en la imagen y en su transformada de


Fourier.

IV.Repita lo anterior para un filtro de mediana.

V.Efectúe una detección de bordes mediante un detector de Sobel y uno de


Prewitt.

Informe haciendo un análisis comparativo de ambos casos.

NOTA: En los análisis visuales de las imágenes, es posible que no se observen


diferencias notables. En tal caso no trate de forzar los comentarios. Decir “no
se observan diferencias” es válido cuando esto es evidente.

Entregar:
Un informe escrito con la información solicitada, incluyendo las imágenes en
niveles de Gris. Entregar además, copia del informe en formato PDF en un CD
anexo al informe escrito
Tarea 2 - Desarrollo Procesamiento Digital de Imágenes

I. Selecciones, según su propio criterio una imagen que contenga frecuencias espaciales
altas, medias y bajas.

Filtrado Espacial
El filtrado espacial es la operación que se aplica a una imagen para resaltar o
atenuar detalles espaciales con el fin de mejorar la interpretación visual o
facilitar un procesamiento posterior, y constituye una de las técnicas
comprendidas dentro del realce de imágenes.

Ejemplos comunes incluyen aplicar filtros para mejorar los detalles de bordes
en imágenes, o para reducir o eliminar patrones de ruido. El filtrado espacial es
una operación "local" en procesamiento de imagen, en el sentido de que
modifica el valor de cada píxel de acuerdo con los valores de los píxeles que lo
rodean; se trata de transformar los niveles de gris originales de tal forma que se
parezcan o diferencien más de los correspondientes a los píxeles cercanos.

Frecuencia Espacial

La frecuencia espacial define la magnitud de cambios en el nivel de gris por


unidad de distancia en una determinada zona de la imagen. Las áreas de la
imagen con pequeños cambios o con transiciones graduales en los valores de
los datos se denominan áreas de bajas frecuencias. Las áreas de grandes
cambios o rápidas transiciones se conocen como áreas de altas frecuencias
(por ejemplo, los bordes). Así, los filtros espaciales se pueden dividir en tres
categorías:

Filtros pasa bajos: enfatizan las bajas frecuencias, suavizando las imágenes y
atenuando ruidos. Se trata de asemejar el nivel de gris de cada píxel al nivel de
gris de los píxeles vecinos, reduciendo la variabilidad espacial de la imagen.
Ello produce un borroneado de los bordes, perdiéndose en nitidez visual de la
imagen, pero ganando en homogeneidad.

Filtros pasa altos: enfatizan las altas frecuencias, para mejorar o afilar las
características lineales como los límites en general. Realizan por tanto el efecto
contrario a los filtros pasabajos, eliminando las bajas frecuencias.

Filtro detectores de bordes: realizan otro tipo de operaciones con los píxeles,
pero siempre con el resultado de enfatizar los bordes que rodean a un objeto
en una imagen, para hacerlo más fácil de analizar. Estos filtros típicamente
crean una imagen con fondo gris y líneas blancas y negras rodeando los
bordes de los objetos y características de la imagen.

Luego para saber si una imagen tiene una frecuencia espacial óptima para el
tipo el ejercicio a realizar de debe obtener el modulo de la transformada de
fourier, en el que se puede apreciar los distintos niveles de frecuencia de una
imagen, siendo este mayor al tener un número de puntos (los que representan
magnitudes de frecuencias) mas dispersos, además se puede decir que
mientras las frecuencias mas altas se encuentran en los bordes del módulo y
mientras mas se acerca al centro de la gráfica significa que son frecuencias
Tarea 2 - Desarrollo Procesamiento Digital de Imágenes

mas bajas, luego para encontrar una imagen que contenga frecuencias
espaciales altas, medias y altas debe haber un número de puntos lo mas
disperso posible en la grafica.

Se probó un set de imágenes para verificar cual de ellas puede tener un


espectro de frecuencias mas útil.

Estas imágenes se muestran a continuación:

Figura 1: Imágenes 1, 2, 3 y 4

Al hacer el análisis del Modulo de Transformada de Fourier de estas cuatro


imágenes es posibles apreciar como están distribuidas espacialmente sus
frecuencias, como se aprecia en la Figura 2.

Es posible deducir que las imágenes 2 y 4 la densidad espectral es inferior a


las imágenes 1 y 3 debido que no ocupan todo el espectro existente de
frecuencias habiendo un mayor número de módulos de baja frecuencia y según
avanza en los bordes se hace casi nulo en ambos casos. Por otra parte, la
imagen 1 presenta una densidad homogénea en casi todo el espectro de
frecuencias posibles, pero a la vez no tan densa como la imagen 3 sobre todo
en las frecuencias más altas, también hay que tener presente que la imagen 3
tiene una densidad inferior en los bordes, luego hay que decidir cual es la mas
apropiada.
Tarea 2 - Desarrollo Procesamiento Digital de Imágenes

Se elige la imagen 3 debido que es más exquisita para la detección de bordes


en desmedro de la imagen 1, así diferenciar de mejor manera los bordes en la
pregunta número 5.

Figura 2:Módulos de Transformada de Fourier de Imágenes 1, 2, 3 y 4 respectivamente

II. Reducción de Imagen

Todas las imágenes usadas son de 512 x 512 píxeles, luego no se utilizó
ningún tipo de reducción o en su defecto ampliación, pero para llevar a cabo
esto solo de debe utilizar el siguiente script:

clear all;close all;


P=imread('image1.jpg');
P=rgb2gray(P);
figure(6);
P2 = imresize(P, [512 512]); %B = imresize(A, [mrows ncols])
imshow(P2);

Acá se lee la imagen, se guarda en P, luego se pasa a escala de grises en la


misma matriz, la imagen de prueba en este caso es de 375x500 píxeles que
son almacenados de manera de datos en 256 niveles de gris. Finalmente se
vuelve a leer los datos guardados en P con el comando imresize( ) y transformando
Tarea 2 - Desarrollo Procesamiento Digital de Imágenes

ahora la imagen a una de 512x512 píxeles tal como se muestra en el código. Para mayor
información ver ayuda de Matlab.

III. Filtrado pasabajo mediante un filtro promediador.

Figura 3: Dos máscaras de 3x3 para realizar un filtrado pasabajos (suavizado, promediado)

El resultado de aplicar un filtro pasabajos a una imagen es simplemente el


promediado de los píxeles contenidos en el vecindario (o entorno) de la
máscara utilizada.

Figura 4: Imagen Original, Filtros 1, 2 y 3

Generalmente estos filtros se les utiliza para atenuar los detalles irrelevantes
en una imagen. Otra de las utilidades del filtro pasabajos, aparte de las más
obvia que es la atenuación del ruido, es el suavizado de los falsos contornos
producidos por una cuantización con un número insuficiente de niveles de gris.

El procedimiento básico del filtro pasabajos es reemplazar el valor de cada


píxel en una imagen por el promedio de los niveles de gris del vecindario
definido por la máscara.
Tarea 2 - Desarrollo Procesamiento Digital de Imágenes

La figura 3 muestra dos máscaras (o núcleos) de 3x3. Usando la primera se


tiene el promediado estándar de los píxeles abarcados por aquella. Se debe
notar que, en lugar de ser 1/9, los coeficientes de la máscara son todos 1’s.
Esto se hace así debido a que es más eficiente computacionalmente tener
todos los coeficientes con el valor 1. Luego, la imagen completa se divide por 9
(o sea, por la suma de todos los coeficientes).

La Figura 4 muestra primeramente a la imagen original a usar, luego el Filtro Nº


1 en donde se usa una máscara de (3x3), el Filtro Nº 2 con una máscara de
(9x9) y finalmente el Filtro Nº 3 con una máscara (9x9) la que se le aplica el
filtro 5 veces.

Figura 5: Módulos Transformadas de Fourier Filtros Promediador Pasabajos

Como se puede apreciar en la Figura 5, el Filtro Nº 1 representa el promedio


estándar de los píxeles en la máscara ya mencionada. El Filtro Nº 2 se aprecia
como se homogenizan los valores aun mas que el Filtro Nº 2 debido a que el
filtro es mayor, luego en le Filtro Nº 3 tiene la misma máscara que el anterior
pero el filtro es aplicado 6 veces, acá se ve la como la imagen queda suavizada
de forma completa haciendo que los bordes sean muy atenuados haciendo
más difícil de visualizar.
Tarea 2 - Desarrollo Procesamiento Digital de Imágenes

IV. Filtro de Medianas

El filtro de mediana, es el cual reemplaza el valor del píxel central por la


mediana de los niveles de gris del vecindario de ese píxel (el valor original del
píxel es incluido en el cálculo de la mediana). Los filtros de mediana son muy
usados debido a que, para ciertos tipos de ruidos aleatorios, proveen una
excelente reducción de ruido y un borroneado considerablemente menor que
los filtros lineales de suavizado del mismo tamaño. Los filtros de mediana son
particularmente efectivos cuando el ruido es del tipo impulso (también llamado
ruido sal y pimienta) debido a que aparece como puntos negros o blancos
sobrepuestos en la imagen.

La mediana, ξ, de un conjunto de valores es aquella en la que la mitad de los


valores en el conjunto son menores o iguales que ξ, y la otra mitad es mayor o
igual a ξ. Por ejemplo, si en una imagen tomamos un conjunto de píxeles de
3x3 con valores {1, 9, 5, 0, 8, 7, 1, 2, 4} la mediana para este caso será el valor
4, ya que la mitad de este conjunto es menor (o igual) y la otra mitad es mayor
(o igual) a éste: {0, 1, 1, 2, 4, 5, 7, 8, 9}.

El procedimiento general para realizar el filtro de mediana en cualquier punto


consiste en ordenar los valores de dicho píxel y los de su vecindario,
determinar la mediana, y asignar éste último valor al píxel en cuestión. Para un
vecindario de 3x3, la mediana es el 5to valor más grande; para uno de 5x5 es el
13mo valor más grande, y así. Cuando algunos valores en un vecindario son
iguales, éstos se ven agrupados. Por ejemplo, supongamos que un vecindario
de 3x3 tiene los valores {10, 20, 20, 20, 15, 20, 20, 25, 100}. Ordenando este
conjunto nos queda {10, 15, 20, 20, 20, 20, 20, 25, 100}, de donde se ve que la
mediana es 20. Así, la principal función de los filtros de mediana es hacer que
los puntos con niveles de gris distintos sean más parecidos a los de su
vecindario.

En la figura 4 puede verse los efectos que produce el filtro de mediana en una
imagen contaminada con ruido sal y pimienta, este ruido es que se ocupa en el
programa presentado y el cual se desea eliminar de la mejor manera.
Tarea 2 - Desarrollo Procesamiento Digital de Imágenes

Figura 6: Imagen original, Imagen mas ruido sal y pimienta, Filtros de mediana (3x3), (5x5),
(7x7), (10x10)

En la Figura 7 se ve la imagen original seguida de la imagen con ruido sal y


pimienta de valor en este caso 0,1, luego esta se filtra una vez en una máscara
de 3x3, se vuelve a filtrar la imagen anterior pero con una máscara de 5x5, la
imagen que queda nuevamente se filtra con una máscara de 7x7 y para
finalizar se reitera el filtro a la última imagen con una máscara de 10x10. Se
puede apreciar que los contornos y bordes no son suavizados tanto como en el
caso de filtro pasabajos con promediadores siendo una mejor opción en
comparación al caso anterior, finalmente a simple vista solo con un filtro de 3x3
se puede quietar el ruido sal y pimienta, con los siguientes se depura la
imagen, perdiendo algo de contrastes y aumentando el brillo.
Tarea 2 - Desarrollo Procesamiento Digital de Imágenes

Figura 7: Módulos Transformada de Fourier (MTF) Imagen original, Imagen mas ruido, Imagen
filtrada 1, 2, 3 y 4 veces.

En las siguientes graficas se puede ver como en el caso sonde se le adhiere el


ruido sal y pimienta se pierde la densidad de distribución espacial en
comparación a la imagen original. a medida que se le aumentan los pasos de
cada uno de los filtros vuelve a tomar valores similares a los que tenía al inicio
de la imagen inicial.

En el caso del filtro 5x5 es la gráfica mas similar a la inicial y su contraste


también es parecido, luego a medida que aumentan el numero de filtro hay
sectores que quedan sin densidad espectral lo que disminuye un mas el
contraste y dando un aspecto mas luminoso o de claridad a la imagen, con
esto de puede obtener una información diferente a la imagen original.
Tarea 2 - Desarrollo Procesamiento Digital de Imágenes

V. Detectores de Sobel y Prewitt

El Filtro Sobel y el Filtro Prewitt son filtros que trabajan con el operador gradiente, la
idea general es que dentro de una vecindad de píxeles se encuentre la mayor pendiente,
luego esa será la mayor diferencia, de esta manera se detectan los bordes, este utiliza
dos mascaras o filtros los cuales uno detecta los bordes verticales y el otro los
horizontales, para obtener los bordes completos se realiza la suma de las imágenes que
nos resultaron con los bordes verticales y horizontales. Otro filtro para la detección de
bordes es Prewitt, el cual consta de 8 matrices, que se aplican píxel a píxel en la imagen
y luego se suman las imágenes para obtener los bordes bien marcados. El filtro de
Prewitt, marca muy bien los bordes, ya que sus matrices atacan estos de seis lados
diferentes, en general cada matriz toma el nombre de un punto cardinal: Norte, Sur,
Este, Oeste, Noroeste, Noreste, Suroeste, Sureste. Las respectivas matrices son:

 −1 −1 1  −1 −1 −1 1 −1 −1
E =  −1 −2 1 N =  1 −2 1  NE = 1 −2 −1
 1 1 1  1 1 1  1 1 1 
1 1 −1 1 1 −1
O = 1 −2 −1 E = 1 −2 −1
1 1 −1 1 1 −1
 1 1 1 1 1 1 1 1 1 
E =  −1 −2 1 S =  1 −2 1  NE = 1 −2 −1
 −1 −1 1  −1 −1 −1 1 −1 −1
Figura 8: Matrices de Prewitt

Para este caso se utiliza la detección de bordes no con las matrices vistas en la
Figura 8, sino que con las siguientes matrices.

 −1 −1 −1 1 0 −1
fprewitt − h =  0 0 0  ⋅ fprewitt − v = 1 0 −1 ⋅
1 1
3 3
 1 1 1  1 0 −1
Figura 9: Matrices de Prewitt utilizadas en el filtro programado

El filtro Sobel tiene la ventaja de que proporciona un suavizado además del


efecto de derivación. Ya que la derivación acentúa el ruido, el efecto de
suavizado es particularmente interesante, puesto que elimina parte del ruido. El
requisito básico de un operador de derivación es que, el que en el que la suma
de los coeficientes de la máscara sea cero.
Tarea 2 - Desarrollo Procesamiento Digital de Imágenes

Finalmente para el programa utilizado se hace la convolución de las de las


matrices horizontales con las verticales tanto en el filtro Sobel como en el
Prewiit, luego se obtiene:

dh = A * fprewitt − h ∨ A * fsobel − h
dv = A * fprewitt − v ∨ A * fsobel − v
dh 2 + dv 2
d prewiett ∨ sobel =
2

Con A matriz de 512x512, * es la función convolución. Luego d queda una


matriz de 512x512 con la detección de borne de manera de un arreglo escalar.

 −1 −2 −1 1 0 −1
fsolve − h =  0 0 0  ⋅ fsolve − v =  2 0 −2  ⋅
1 1
4 4
 1 2 1  1 0 −1
Figura 9: Matrices de Sobel horizontal y vertical

En la Figura 10 se pueden apreciar la detección de bordes de los dos filtros


anteriormente explicados, al ver las 2 detecciones no se evidencia a simple vista una
diferencia mayor entre las dos imágenes, pero viendo las imágenes mas en detalles la
detección de bordes de Sobel es ligeramente superior en cuanto a errores ya que atenúa
ciertos sectores en donde no hay bordes sino mas bien ruido, pero de todos modos es
mínima la diferencia.
.

Figura 10: Imagen Original, Detector de Bordes Sobel y Detector Prewitt


Tarea 2 - Desarrollo Procesamiento Digital de Imágenes
Tarea 2 - Anexo Procesamiento Digital de Imágenes

ANEXO

Pregunta I

clear all;close all


%%%%%%%%% Imagen 1 %%%%%%%%%%%%%%%%%%%
g8=[0:255]'*[1 1 1]/255;
P1=imread('4.jpg');
P1_=rgb2gray(P1);
g256(1:256,1)=linspace(0,1,256)';
[N,M]=size(P1_);N2=floor(N/2);M2=floor(M/2);
Pf1=fft2(P1_);
%%%%%%%%%%%%%% Imagen 2 %%%%%%%%%%%%%%%%%%%
g8=[0:255]'*[1 1 1]/255;
P2=imread('pperu.jpg');
P2_=rgb2gray(P2);
g256(1:256,1)=linspace(0,1,256)';
[N,M]=size(P2_);N2=floor(N/2);M2=floor(M/2);
Pf2=fft2(P2_);
%%%%%%%%%%%%% Imagen 3 %%%%%%%%%%%%%%%%%%%%%
g8=[0:255]'*[1 1 1]/255;
P3=imread('bebe2.jpg');
P3_=rgb2gray(P3);
g256(1:256,1)=linspace(0,1,256)';
[N,M]=size(P3_);N2=floor(N/2);M2=floor(M/2);
Pf3=fft2(P3_);
%%%%%%%%%%%% Imagen 4 %%%%%%%%%%%%%%%%%%%
g8=[0:255]'*[1 1 1]/255;
P4=imread('thno.jpg');
P4_=rgb2gray(P4);
g256(1:256,1)=linspace(0,1,256)';
[N,M]=size(P4_);N2=floor(N/2);M2=floor(M/2);
Pf4=fft2(P4_);
%%%%%%%%%%%%% Garfica de Imagenes %%%%%%%%%%%
figure(1);
subplot(2,2,1)
image(P1_);colormap(g8);axis image;title('Imagen 1')
subplot(2,2,2)
image(P2_);colormap(g8);axis image;title('Imagen 2')
subplot(2,2,3)
image(P3_);colormap(g8);axis image;title('Imagen 3')
subplot(2,2,4)
image(P4_);colormap(g8);axis image;title('Imagen 4')
%%%%%%% Modulos de Transformada de fourier %%%%%%%%
figure(2);
subplot(2,2,1)
imagesc(log10(1+abs(Pf1)));colormap(jet);axis image;title('Imagen 1')
subplot(2,2,2)
imagesc(log10(1+abs(Pf2)));colormap(jet);axis image;title('Imagen 2')
subplot(2,2,3)
imagesc(log10(1+abs(Pf3)));colormap(jet);axis image;title('Imagen 3')
subplot(2,2,4)
imagesc(log10(1+abs(Pf4)));colormap(jet);axis image;title('Imagen 1')
Tarea 2 - Anexo Procesamiento Digital de Imágenes

Pregunta II
clear all;close all;
P=imread('image1.jpg');
P=rgb2gray(P);
figure(6);
P2 = imresize(P, [512 512]); %B = imresize(A, [mrows ncols])
imshow(P2);

Pregunta III

% filtros promediadores
clear all; close all;pack
g256=[0:255]'*[1 1 1]/255;
a=imread('bebe2.jpg');
a=rgb2gray(a);
a= imresize(a, [512 512]);%reduccion de imagen a 512x512
%%%%% Imagen Original
figure(1);subplot(2,2,1);image(a);colormap(g256);axis image;
title('original');

%%%%% Filtro 1
f1=ones(3,3)/9; %0.11
b=conv2(a,f1,'same');
figure(1);subplot(2,2,2);image(b);colormap(g256);axis image;
title('Filtro Nº 1');

%%%%% Filtro 2
f2=ones(9,9)/81; %0.01234
c=conv2(b,f2,'same');
figure(1);subplot(2,2,3);image(c);colormap(g256);axis image;
title('Filtro Nº 2');

%%%%% Filtro 3
f3=ones(9,9)/81; %0.00694
d=b;
for i=1:5
d=conv2(d,f3,'same');
end
figure(1);subplot(2,2,4);image(d);colormap(g256);axis image;
title('Filtro Nº 3');

%%%%% Fin filtros promediadores


af=fft2(a);
figure(2);subplot(2,2,1);imagesc(log10(1+abs(af)));colormap(jet);axis
image;title('log10(1+abs(af))');
bf=fft2(b);
figure(2);subplot(2,2,2);imagesc(log10(1+abs(bf)));colormap(jet);axis
image;title('log10(1+abs(bf))');
cf=fft2(c);
figure(2);subplot(2,2,3);imagesc(log10(1+abs(cf)));colormap(jet);axis
image;title('log10(1+abs(cf))');
df=fft2(d);
figure(2);subplot(2,2,4);imagesc(log10(1+abs(df)));colormap(jet);axis
image;title('log10(1+abs(df))');
Tarea 2 - Anexo Procesamiento Digital de Imágenes

Pregunta IV

clear all; close all;pack


g256=[0:255]'*[1 1 1]/255;
a=imread('bebe2.jpg');
a=rgb2gray(a);
b=imnoise(a,'salt & pepper',0.1);

figure(1);subplot(3,2,1);image(a);colormap(g256);axis image;
title('original');

figure(1);subplot(3,2,2);image(b);colormap(g256);axis image;
title('Imagen mas ruido');

c=medfilt2(b,[3,3]);
figure(1);subplot(3,2,3);image(c);colormap(g256);axis image;
title('Filtro Mediana (3 x 3)');

d=medfilt2(c,[5,5]);
figure(1);subplot(3,2,4);image(d);colormap(g256);axis image;
title('Filtro Mediana (5 x 5)');

e=medfilt2(d,[7,7]);
figure(1);subplot(3,2,5);image(e);colormap(g256);axis image;
title('Filtro Mediana (7 x 7)');

f=medfilt2(e,[10,10]);
figure(1);subplot(3,2,6);image(f);colormap(g256);axis image;
title('Filtro Mediana (10 x 10)');

af=fft2(a);
figure(2);subplot(3,2,1);imagesc(log10(1+abs(af)));colormap(jet);axis image;title('MTF Imagen
Original');
bf=fft2(b);
figure(2);subplot(3,2,2);imagesc(log10(1+abs(bf)));colormap(jet);axis image;title('MTF Imagen +
Ruido');
cf=fft2(c);
figure(2);subplot(3,2,3);imagesc(log10(1+abs(cf)));colormap(jet);axis image;title('MTF Imagen Filtrada 1
vez');
df=fft2(d);
figure(2);subplot(3,2,4);imagesc(log10(1+abs(df)));colormap(jet);axis image;title('MTF Imagen Filtrada
2 vez');
ef=fft2(e);
figure(2);subplot(3,2,5);imagesc(log10(1+abs(ef)));colormap(jet);axis image;title('MTF a Imagen Filtrada
3 vez');
ff=fft2(f);
figure(2);subplot(3,2,6);imagesc(log10(1+abs(ff)));colormap(jet);axis image;title('MTF a Imagen Filtrada
4 vez');
Tarea 2 - Anexo Procesamiento Digital de Imágenes

Pregunta V

clear all; close all;pack


g256=[0:255]'*[1 1 1]/255;
a=imread('bebe2.jpg');
a=rgb2gray(a);
[N,M]=size(a);
figure(1);subplot(1,3,1);image(a);colormap(g256);axis image;
title('Imagen Original');

%%% Detector Sobel


fsobelh=[-1 -2 -1; 0 0 0; 1 2 1]/4;
fsobelv=[ 1 0 -1; 2 0 -2; 1 0 -1]/4;
ch=abs(conv2(a,fsobelh,'same'));
cv=abs(conv2(a,fsobelv,'same'));
c=sqrt(ch.*ch+cv.*cv)/sqrt(2);
figure(1);subplot(1,3,2);imagesc(c);colormap(g256);axis image;
title('Detector Sobel');

%%%% Detector Prewitt

fprewitth=[-1 -1 -1; 0 0 0; 1 1 1]/3;


fprewittv=[ 1 0 -1; 1 0 -1; 1 0 -1]/3;
dh=abs(conv2(a,fprewitth,'same'));
dv=abs(conv2(a,fprewittv,'same'));
d=sqrt(dh.*dh+dv.*dv)/sqrt(2);
figure(1);subplot(1,3,3);imagesc(d);colormap(g256);axis image;
title('Detector Prewitt');

Potrebbero piacerti anche