please help>>>how to fix (Matrix dimensions must agree.) error in matlab?
Afficher commentaires plus anciens
how to fix (Matrix dimensions must agree.) error in matlab?
my code is:
a=imread('lena.bmp');
I=im2double(a);
H=fspecial('log',5);
%convolution
[r,c]=size(I);
for y=2:r-1
for x=2 :c-1
windowI= I(y:y+3 , x: x+3);
windowH= H(y:y+1 , x: x+1);
IH= sum(sum(windowI .* windowH));
end
end
figure(2);
imshow (IH) ;
i think this line: IH= sum(sum(windowI .* windowH)); causes the error but how to fix it?
Réponses (3)
Walter Roberson
le 14 Nov 2013
0 votes
Why are you expecting that a matrix that is 4 x 4 can be multiplied by a matrix that is 2 x 2 ?
4 commentaires
Walter Roberson
le 14 Nov 2013
What is the intent? To tile the 2 x 2 into a 4 x 4 and then multiply?
Walter Roberson
le 15 Nov 2013
Perhaps you should be using conv2() ?
Youssef Khmou
le 15 Nov 2013
Modifié(e) : Youssef Khmou
le 15 Nov 2013
hi Asma,
the number of columns of WindowI must be the same as the number of lines in WindowH, take the two blocks with same dimensions or try :
a=imread('circuit.tif');
I=im2double(a);
H=fspecial('log',5);
[r,c]=size(I);
a=1;b=1;
for x=1:r-5 % ver
for y=1:c-4
windowI= I(x:x+4 , y: y+4);
%windowH= H(x:x+3 , y: y+1);
IH(x,y)= sum(sum(windowI .* H)); % element wise or matrix product????????
end
end
figure(2); imshow (IH)
2 commentaires
Asma
le 15 Nov 2013
Asma
le 15 Nov 2013
0 votes
1 commentaire
Youssef Khmou
le 15 Nov 2013
the size of windowI depends on H, as you fspecal is 5x5 then a window must have the size 5*m , for arbitrary m, try the example i posted
Catégories
En savoir plus sur Resizing and Reshaping Matrices dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!