How to solve "Error using ' Transpose on ND array is not defined. Use PERMUTE instead." ?
Show older comments
i have convert image from rgb to gray using this code :
axes(handles.axes3)
cropface=imcrop(X,face);
newsize=imresize(cropface,[151 151]);
grayscale=rgb2gray(newsize);
and then i save that image using this code :
img = getframe(gca);
[filename2,pathname2] = uiputfile(...
{'*.jpg','jpeg image(*.jpg)';
'*.*','All file(*.*)'},...
'Save Image','H:\SKRIPSI\Citra Latih\');
imwrite(img.cdata,fullfile(pathname2,filename2));
then I intend to creating the image matrix X using grayscale image that I have and I save with the code above, use the following code:
X = [];
for i = 1 : imgcount
str = strcat(datapath,'\',int2str(i),'.jpg');
img = imread(str);
img = rgb2gray(img);
[r c] = size(img);
temp = reshape(img',r*c,1);
I want to ask is why should I rgbgray code reuse in the process of creating the image matrix X, whereas the image that I use have grayscale. when I remove the rgb2gray code, then I see an error like this:

Accepted Answer
More Answers (1)
David H
on 13 Jun 2016
0 votes
My guess is that your variable "img" has more than 2 dimensions. Identify which 2 dimensions of "img = imread(str);" are the ones you actually want.
2 Comments
Guillaume
on 13 Jun 2016
It's not a guess! a rgb image always have three dimensions.
Alvindra Pratama
on 16 Jun 2016
Categories
Find more on Image Processing Toolbox 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!