RGB to Gray function with Matlab code

1 view (last 30 days)
hi all , we all know the Matlab belt in rgb2gray ,
i am tring to do it myself ,, here's my function
function out=gray(x)
[p,q,n]=size(x);
%out=uint8(ones(m,n,p));
R=x(:,:,1);
G=x(:,:,2);
B=x(:,:,3);
out=((R+G+B)/3);
and i have this error whn calling gray()
??? Subscript indices must either be real positive integers or logicals.
i don't know what's wrong , if any one know the solution .. Thanx in advance ..

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 1 Nov 2011
gray() is a MATLAB function too. Do the following to see if there are conflicts.
which gray -all
  3 Comments
Fangjun Jiang
Fangjun Jiang on 1 Nov 2011
You mean you change the name of your own gray() function? Why did the error message still say "Error in ==> gray at 6, G=x(:,:,2);"?
jenny mat
jenny mat on 1 Nov 2011
yes ,, i deleted the old one and it worked very well ..
thanx very much

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 1 Nov 2011
Chances are you are trying to call gray() from within a routine in which you have a variable named "gray".

Categories

Find more on Images in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!