RGB to Gray function with Matlab code

1 visualizzazione (ultimi 30 giorni)
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 ..

Risposta accettata

Fangjun Jiang
Fangjun Jiang il 1 Nov 2011
gray() is a MATLAB function too. Do the following to see if there are conflicts.
which gray -all
  3 Commenti
Fangjun Jiang
Fangjun Jiang il 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 il 1 Nov 2011
yes ,, i deleted the old one and it worked very well ..
thanx very much

Accedi per commentare.

Più risposte (1)

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

Categorie

Scopri di più su Images in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by