MATLAB: Rbg2gray problem when reading .png files

Image Processing Toolboxpcargb2gray

I'm trying to run the PCA code downloaded from here . I have no problems running with the provided images that are in .jpg. However, when I try to run with my own images (greyscale, in .png format), I keep getting the error
Error using rgb2gray>parse_inputs (line 77)
MAP must be a m x 3 array.
Error in rgb2gray (line 52)
[X, threeD] = parse_inputs(X);
Error in CreateDatabase (line 43)
img = rgb2gray(img);
Error in example (line 26)
T = CreateDatabase(TrainDatabasePath);
I even tried to convert the .png files to .jpg, first using imread to read the file, then imwrite to convert, but I still get the same error.
What is wrong?

Best Answer

Rayne - you say that you observe the above errors when you use your own greyscale images. Why would you call rgb2gray on an image that is already grayscale (and whose purpose is to Convert RGB image or colormap to grayscale)?
Look at the link to this method and check the input which is a three dimensional numeric array. Your grayscale images are most likely two dimensional only and so the above error message makes sense.