Bonjour à tous,
voici le contexte de mon probléme,
On nous a donné à faire en tp une fonction de convolution à programmé et du coup elle marchait trés bien avec une matrice de 256 et un filtre de taille 3. et du coup lorsque je m'est en paramètre de la fonction de convolution une image ,cela pose probléme
voici le code de la convolution:
et le code principale:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function[img]=conv(I,filtre) [N M]=size(I); img = zeros(N); n=size(filtre,1); decal=ceil(n/2); for i=decal:1:N-(decal-1) for j=decal:1:N-(decal-1) V=I(i-(decal-1) : i+(decal-1) ,j-(decal-1) : j+(decal-1) ).*filtre; img(i,j)=sum(sum(V)); end end end
et voici ce qu'il m'affiche dans la fenetre command window:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 %% 2-2 Robustesse au bruit h= [0 -1 0; 0 0 0; 0 1 0];%matrice de filtrage Y=imread('C:\Users\Ilias\Desktop\lena.pgm'); T=uint8(randn(256,256));%création image bruiter O=T+Y;%image originale + image bruité J=conv(Y,h);%convolution avec le filtre verticale
qui pourrait m'aidé à débugger ceux code ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Error using .* Integers can only be combined with integers of the same class, or scalar doubles. Error in conv (line 8) V=I(i-(decal-1) : i+(decal-1) ,j-(decal-1) : j+(decal-1) ).*filtre; Error in test (line 23) J=conv(Y,h);%convolution avec le filtre verticale
Partager