im trying to add an image to a matrix of ones for which i have used the following code:
c=imread('C:\Users\Richik\Desktop\ima.png');
[x,y]=size(c)
m=ones(x,y);
g=m+c;
but even when the matrix dimensions are same,im getting this error:
??? Error using ==> plus
Matrix dimensions must agree.
i cant figure out why this is happening.....

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 12 Okt. 2015

0 Stimmen

Chances are that your PNG image is an RGB image and so is 3 dimensional. You should look at
s = size(c)
[x,y] = size(c)
and I think you will find that y is not equal to s(2). Read the documentation for size() to understand why not.

4 Kommentare

Terry McGinnis
Terry McGinnis am 12 Okt. 2015
Bearbeitet: Walter Roberson am 12 Okt. 2015
[x,y]=size(c)
m=ones(x,y);
[u,v]=size(m)
i get this:
x =
512
y =
1536
u =
512
v =
1536
and after using rgb2gray() and then calculating the size i get:
x =
512
y =
512
u =
512
v =
512
yet when i'm doing this operation:
e=c+m;
subplot(3,3,3);
imshow(e);
title('addition');
i'm getting a fully white image. shouldnt the output be a little brighter version of the original image?
Walter Roberson
Walter Roberson am 12 Okt. 2015
[d1,d2,d3,...,dn] = size(X), for n > 1, returns the sizes of the dimensions of the array X in the variables d1,d2,d3,...,dn, provided the number of output arguments n equals ndims(X). If n does not equal ndims(X), the following exceptions hold:
n < ndims(X) di equals the size of the ith dimension of X for 0<i<n, but dn equals the product of the sizes of the remaining dimensions of X, that is, dimensions n through ndims(X).
A change of 1/256 in the brightness of an image is not necessarily going to be very noticeable, especially if you have not used a full 256 entry colormap
colormap(gray(256))
Terry McGinnis
Terry McGinnis am 12 Okt. 2015
thank u

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Eng. Fredius Magige
Eng. Fredius Magige am 12 Okt. 2015

0 Stimmen

Hi It has to follow its rule, and might be g=[m,c];

1 Kommentar

Walter Roberson
Walter Roberson am 12 Okt. 2015
That would, if it worked, append c after m, not add 1 to each element of c.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Images 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!

Translated by