HI All ,Here i want to Reshape 2D images into 1D image vectors , why i get this error ? Error using '?? Transpose on ND array is not defined. Error in testauto (line 14) temp = reshape(img',r*c,1); .please help its urgent Thanks.

26 views (last 30 days)
clear all close all clc
path = dir('e:\testImage\*.png'); X = [];
n = length(path);
for i = 1 : n
file = strcat('e:\testImage\',path(i).name);
img = imread(file);
% figure,imshow(img);
[r,c] = size(img);
temp = reshape(img',r*c,1);
X = [X temp];
end
  3 Comments

Sign in to comment.

Accepted Answer

Ahmet Cecen
Ahmet Cecen on 28 Dec 2016
Not enough information, but it is likely that the image you are reading is a color image and is actually r by c by 3. I will also speculate you probably want to do:
img = rgb2gray(img);
  4 Comments
Enayat Ansari
Enayat Ansari on 28 Dec 2016
so what is the right way to store temp(which is now 1D array) into a matrix.help me i am pretty beginner

Sign in to comment.

More Answers (1)

Greg
Greg on 28 Dec 2016
The error tells you exactly where the problem is: transposing an ND array on line 14. More specifically, the single tick (') operator is matrix transpose. Replace "img'" with "img". temp = reshape(img',r*c,1);
Better way to convert ANYTHING into a single column vector is "temp = img(:);"

Community Treasure Hunt

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

Start Hunting!

Translated by