please help>>>how to fix (Matrix dimensions must agree.) error in matlab?
Ältere Kommentare anzeigen
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?
Antworten (3)
Walter Roberson
am 14 Nov. 2013
0 Stimmen
Why are you expecting that a matrix that is 4 x 4 can be multiplied by a matrix that is 2 x 2 ?
4 Kommentare
Walter Roberson
am 14 Nov. 2013
What is the intent? To tile the 2 x 2 into a 4 x 4 and then multiply?
Walter Roberson
am 15 Nov. 2013
Perhaps you should be using conv2() ?
Youssef Khmou
am 15 Nov. 2013
Bearbeitet: Youssef Khmou
am 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 Kommentare
Asma
am 15 Nov. 2013
Asma
am 15 Nov. 2013
0 Stimmen
1 Kommentar
Youssef Khmou
am 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
Kategorien
Mehr zu Resizing and Reshaping Matrices finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!