Error using ./ Matrix Dimensions Must Agree ??!! how to solve this??

im getting error in the 4th line for ./ wat should i change ?
l=getimage(handles.axes1);
s=getimage(handles.axes3);
imsave(handles.axes3);
r=double(s)./(double(l)+1.0);
imshow(r,'Parent',handles.axes5);
i used images of same dimensions too

댓글 수: 13

"wat should i change"
The size of s and/or l.
the size of an image loaded will it be the dimension if so then it is for example : 278 X 370pixels both images
@Divya Praisy: please put these two commands on the line before the one with the error:
size(l)
size(s)
and then tell us exactly what they print in the command window.
Stephen23
Stephen23 2017년 1월 18일
편집: Stephen23 2017년 1월 18일
"i used images of same dimensions too"
No you didn't. Array l has a different size to array s. The fact that these arrays represent images with the same number of pixels is irrelevant: these are two arrays with different sizes.
i have given the size of images is not the same still
Guillaume
Guillaume 2017년 1월 18일
편집: Guillaume 2017년 1월 18일
It must be noted that if Divya was using the latest version of matlab the error would not have occured due to the implicit expansion for compatible array sizes introduced in R2016b.
It's always worth mentioning in your question if you're not using the latest version.
i am using R2016b
Either you're not using R2016b, or the dimensions are not as you've stated:
s = rand(370, 278); %a 370 x 278 matrix
l = rand(370, 278, 3); %a 370 x 278 x 3 matrix
r = double(s) ./ (double(l) + 1)
produces no error in R2016b. r has size 370 x 278 x 3
then is it not working did i write anything wrong??
Sorry i am using R2016a
is it not available in it
I answered your question over an hour ago with a solution that works in any version of matlab. See down there
||
||
\/

댓글을 달려면 로그인하십시오.

 채택된 답변

Guillaume
Guillaume 2017년 1월 18일
편집: Guillaume 2017년 1월 18일
Clearly, one of the image is a grayscale image and the other is RGB.
And clearly, you're not using R2016b since your division would have succeeded in that version due to the introduction of implicit expansion. In older versions, to achieve the same result:
r = bsxfun(@rdivide, double(s), double(l)+1);
That is assuming, of course, that you want to compute the ratio of each RGB channel with the grayscale image.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Image Filtering and Enhancement에 대해 자세히 알아보기

질문:

2017년 1월 18일

댓글:

2017년 1월 18일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by