Bonjour tout le monde,
j'essai de faire une moyenne de trois images successives pour reduire le bruit sur mes images ... le truc tout bete
mais voila etant debutant en matlab je comprend pas pkoi ca ne marche pas : qq peux t il m'aider SVP
Code:
im1 = imread('../../../Images/Radiolarian/radiolarian000000.ppm');
im2 = imread('../../../Images/Radiolarian/radiolarian000001.ppm');
im3 = imread('../../../Images/Radiolarian/radiolarian000002.ppm');
[l, c, n] = size(im1);
res = zeros(l,c,n);
for i = 1 : l,
for j = 1 : c,
for r = 1 : n
tmp = im1(i,j,r) + im2(i,j,r) + im3(i,j,r);
tmp = tmp/3;
res(i,j,r) = tmp;
end
end
end
imshow(res)
Bonjour,
le fait que ça ne marche pas vient d'une erreur de type sur les données utilisées. Tu peux faire un "help imread" puis un "help uint8" pour avoir des informations.
Pour apporter simplement des modifications à ton programme, tu peux copier-coller ce qui suit :
[l, c, n] = size(im1);
res = uint8(zeros(l,c,n));
for i = 1 : l,
for j = 1 : c,
for r = 1 : n
tmp = double(im1(i,j,r)) + double(im2(i,j,r)) + double(im3(i,j,r));
tmp = tmp/3;
res(i,j,r) = uint8(tmp);
end
end
end
figure
imshow(res)
Maintenant, lorsque tu souhaites diminuer le bruit sur des images, il existe des filtres que tu peux passer sur un tableau ( A ).
B = IMFILTER(A,H) filters the multidimensional array A with the multidimensional filter H.
Salut,
le code a l'air correct à première vue,
as-tu un message d'erreur précis ?
Sinon est-ce que tes images représentent un objet qui n'évolue pas en fonction du temps ?
C'est le même scanner qui prend les photos
Nous sommes toujours de la taille de l'univers que nous découvrons. [Frédérick Tristan]
19/07/2005 - 22h19
djey
Date d'inscription
juin 2005
Messages
9
Re : matlab - traitement d'images
merci pour toutes ces info
je reviendrais probablement ds le coin pour d'autres questions ...
22/07/2005 - 00h02
djey
Date d'inscription
juin 2005
Messages
9
Re : matlab - traitement d'images
Bonjour,
j'ai une autre petite question,
j'ai ecrit ce code ...
Code:
% Read the sample image in
im = imread('../../Images/Benthic_2344/benthic000790.ppm');
figure(1), imshow(im);
%im = imadjust(im,[],[],0.5);
im = rgb2gray(im);
%figure(1), imshow(im);
background = imopen(im,strel('disk',15));
im = imsubtract(im,background);
%im = adapthisteq(im);
%figure(2), imshow(im);
edgeim = edge(im,'canny',[0.1 0.2],1);
for i = 0 : 3
edgeim = imdilate(edgeim,strel('disk',3));
edgeim = imerode(edgeim,strel('disk',3));
end
%figure(3), imshow(edgeim);
edgeim = imfill(edgeim, 'holes');
%figure(4), imshow(edgeim);
[conect, nb] = bwlabel(edgeim,4);
rgb = label2rgb(conect,@jet,'K');
figure(2), imshow(rgb,'notruesize');
Sachant que je travaille sur des films, j'aimerais savoir si vous avez une idee pour suivre les classes et garder la meme couleur pour une classe a travers le film ...
merci d'avance ...
jerome
et maintenant j'aimerai savoir comment je peux faire pour