jueves, 15 de julio de 2010
Ejemplo Delimitacion Imagenes
Codigo:
%% Adquirir imagenes
I_original=imread('frutas.jpg');
%% Cambiar la imagen a escala de grises
I=rgb2gray(I_original);
%% Obtener el fondo de la imagen
background=imclose(I,strel('disk',58));
%% Identificacion de objetos
I2=imsubtract(background,I);
%% Binarizar imagen
lavel=graythresh(I2);
intensidad=lavel*255
BW=im2bw(I2,lavel);
%% Relleno de objetos (filtro de la media)
fill=imfill(BW,'holes');
%% Identificar objetos
[niveles, numObjects]=bwlabel(BW,4);
numObjects
stats=regionprops(niveles,'Eccentricity','Area','BoundingBox');
areas=[stats.Area];
excentricidad=[stats.Eccentricity]
%% Delimitar manzana
cantidad=0;
manzana=find(areas>80 & areas < style=""> statsmanzana=stats(manzana)
axes(handles.axes1)
imshow(I_original)
hold on;
cantidad =length(statsmanzana)*1+ cantidad ;
for idx = 1:length(statsmanzana);
h = rectangle ('Position',statsmanzana(idx).BoundingBox,...
'Curvature',[1,0.8],'LineWidth',5,'LineStyle','-.');
set (h,'EdgeColor',[0 0 1]);
hold on
end
hold off
disp([cantidad,'manzana'])
set(handles.valor,'string',cantidad)
Conteo de monedas
%% Primero convertimos la imagen a BW
coin1 = im2bw (imread ('coins.png'));
%% Llenamos las regiones de la imagen y los agujeros
coin2 = imfill (coin1, 'agujeros');
%% Etiquetamos y contarmos con los componentes conectados
[L Ne] = bwlabel (doble (coin2));
%% Determinamos la medina de las regiones de la imagen
prop = regionprops (L, 'Espacio', 'Centroide');
%% Inicializamos el contador a cero
total = 0;
%% Mostramos la imagen
imshow (imread ('coins.png')); conservar
Dinero% count% en base al área de la moneda
para n = 1: el tamaño (por la Proposición 1)% De 1 a número total de monedas
ciento = helice (n). Centroide;
X = centavo(1); Y = centavo (2);
2000" uc="Si la Prop (n). Área> 2000 ">If Prop (n). Area> 2000
texto (X-10, Y, '5 C ')
total = 5;
else
total = 10;
texto (X-10, Y, '10 C ')
end
end
hold on
título ([Total de monedas: num2str(total,'Cents'])
jueves, 10 de junio de 2010
EJERCICIO (Filtro de la Mediana)
EJERCICIO (Filtro de la Mediana)
4.)
Los píxeles de la nueva imagen se generan calculando la mediana del conjunto de píxeles del entorno de vecindad del píxel correspondiente a la imagen origen. De esta forma se homogeneizan los píxeles de intensidad muy diferente con respecto a la de los vecinos. Este tipo de filtro es bastante indicado cuando se tiene ruido aleatorio.
En Matlab la instrucción empleada para realizar el filtro de la mediana es medfilt2.
B = medfilt2(A)
Donde A es la matriz de entrada a la que se le aplica el filtro de la mediana utilizando por defecto una vecindad de 3X3.
CODIGO
imc=imread('C:\MATLAB7\work\imagenes\lena.jpg');
im=rgb2gray(imc);
fg = imnoise(im,'gaussian');
fs = imnoise(im,'salt & pepper',0.1)
h1=fspecial('average');
media1=imfilter(fg,h1);
media2=imfilter(fs,h1);
mediana1=medfilt2(fg);
mediana2=medfilt2(fs);
%Representaciones de las imágenes
subplot(2,3,1),subimage(fg),title('Imagen con ruido gaussiano');
subplot(2,3,4),subimage(fs),title('Imagen con ruido aleatorio');
subplot(2,3,2),subimage(media1),title('Filtro media');
subplot(2,3,5),subimage(media2),title('Filtro media');
subplot(2,3,3),subimage(mediana1),title('Filtro mediana');
subplot(2,3,6),subimage(mediana2),title('Filtro mediana');
EJERCICIO (Filtro de la mediana)
EJERCICIO (Filtro de la mediana)
3.)
El filtrado mediana (mediante la función medfilt2) es útil para eliminar valores de píxeles extremos. El filtrado mediana utiliza vecindarios deslizantes para procesar una imagen, esto es, determina el valor de cada píxel de salida examinando un vecindario de tamaño mxn alrededor del correspondiente píxel de entrada.
El filtrado mediana ordena los valores de los píxeles en un vecindario y elige el valor mediana como resultado.
Como ejemplo se añadirá ruido del tipo “salt&peper” a una imagen y posteriormente se filtrará mediante un filtro media y un filtro mediana para que se observe la diferencia.
CODIGO
I=im2double(imread('eight.tif'));
J=imnoise(I,'salt & pepper',0.02); %Añade a imagen I ruido sal y pimienta de densidad 0.02
figure, imshow(I); title('imagen original ');
figure, imshow(J);title('imagen con ruido sal y pimienta');
K=filter2(fspecial('average',3),J); %Filtro J con filtro promedio en entorno de vecindad 3x3
L=medfilt2(J,[3 3]); %Filtro imagen J con filtro mediana en entorno de vecindad 3x3
figure, imshow(K); title('Resultado filtro media ');
figure, imshow(L); title('Resultado filtro mediana ');
3.)
El filtrado mediana (mediante la función medfilt2) es útil para eliminar valores de píxeles extremos. El filtrado mediana utiliza vecindarios deslizantes para procesar una imagen, esto es, determina el valor de cada píxel de salida examinando un vecindario de tamaño mxn alrededor del correspondiente píxel de entrada.
El filtrado mediana ordena los valores de los píxeles en un vecindario y elige el valor mediana como resultado.
Como ejemplo se añadirá ruido del tipo “salt&peper” a una imagen y posteriormente se filtrará mediante un filtro media y un filtro mediana para que se observe la diferencia.
CODIGO
I=im2double(imread('eight.tif'));
J=imnoise(I,'salt & pepper',0.02); %Añade a imagen I ruido sal y pimienta de densidad 0.02
figure, imshow(I); title('imagen original ');
figure, imshow(J);title('imagen con ruido sal y pimienta');
K=filter2(fspecial('average',3),J); %Filtro J con filtro promedio en entorno de vecindad 3x3
L=medfilt2(J,[3 3]); %Filtro imagen J con filtro mediana en entorno de vecindad 3x3
figure, imshow(K); title('Resultado filtro media ');
figure, imshow(L); title('Resultado filtro mediana ');
EJERCICIO (Filtro de la Media)
EJERCICIO (Filtro de la Media)
2.)
Procedimiento para el suavizado de imágenes reduciendo la variación de intensidad entre un píxel y el siguiente.Se utiliza para reducir el ruido en las imágenes.
Filtrado por la mediana
Píxeles originales {2, 3, 8, 4, 2}
Ventana {-1, 0, 1}
Mediana de {2, 3, 8} = 3
Mediana de {3, 8, 4} = 4
Mediana de {8, 4 , 2} = 4
Píxeles transformados {2, 3, 4, 4, 2}
2.)
Procedimiento para el suavizado de imágenes reduciendo la variación de intensidad entre un píxel y el siguiente.Se utiliza para reducir el ruido en las imágenes.
Filtrado por la mediana
Píxeles originales {2, 3, 8, 4, 2}
Ventana {-1, 0, 1}
Mediana de {2, 3, 8} = 3
Mediana de {3, 8, 4} = 4
Mediana de {8, 4 , 2} = 4
Píxeles transformados {2, 3, 4, 4, 2}
lunes, 7 de junio de 2010
Histograma
El histograma es una ventana de diálogo que presenta, de forma gráfica, un resumen estadístico del recuento de los píxeles de una imagen según su distribución, es decir, relaciona los niveles de intensidad de una imagen y el número de píxeles que poseen tal nivel de intensidad.
Fórmula del Histograma:
De dondeel valor de la k-ésima intensidad en el intervalo [0, I máx] y es el número de píxeles que posee la intensidad
El histograma puede estar normalizado:
Ejemplo:
Suscribirse a:
Entradas (Atom)