Translate

viernes, 2 de marzo de 2012

Problema de filtrado simple de imágenes en Matlab

Programa Original
ima=imread('F:\matlab\figuras\zu.bmp');
R=1;G=2;B=3;fondo=100;
[f,c,p]=size(ima);
for(i=1:f)
    for(j=1:c)
        if((ima(i,j,R)==255&&ima(i,j,G)==255&&ima(i,j,B)==255))
            sin_fondo(i,j,R)=fondo;
             sin_fondo(i,j,G)=fondo;
              sin_fondo(i,j,B)=fondo;
        else
             sin_fondo(i,j,R)=ima(i,j,R);
             sin_fondo(i,j,G)=ima(i,j,G);
             sin_fondo(i,j,B)=ima(i,j,B);
subplot(1,3,1)
imshow(ima)
subplot(1,3,3)
imshow(uint&(sin_fondo))
Respuesta

clear,clc
ima=imread('F:\matlab\figuras\zu.bmp');
R=1;G=2;B=3;fondo=100;
[f,c,p]=size(ima);
sin_fondo = ima;
for i=1:f
    for j=1:c
        if ima(i,j,R)==255 && ima(i,j,G)==255 && ima(i,j,B)==255 
            sin_fondo(i,j,R)=fondo;
             sin_fondo(i,j,G)=fondo;
             sin_fondo(i,j,B)=fondo;
% El código comentado no está mal, pero gasta procesamiento se soluciona
% con sin_fondo=ima
%         else
%              sin_fondo(i,j,R)=ima(i,j,R);
%              sin_fondo(i,j,G)=ima(i,j,G);
%              sin_fondo(i,j,B)=ima(i,j,B);
        end
    end
end
subplot(1,3,1)
imshow(ima)
subplot(1,3,3)
imshow(sin_fondo) 

No hay comentarios:

Publicar un comentario