help with image processing code

2 views (last 30 days)
aaa on 11 Jul 2011
Hi, i am new to matlab and need some help with this
i have used imread to read in a jpg image. however the workspace reads this as a 3 dimensional matrix, e.g. 150x100x3 uint8
how can i change this to a 2 dimensional matrix? i believe i have to use a gray scale image to accomplish this, but i cant seem to get it to work.
i have:
a = imread('image.jpg')
b = gray(a);
secondly, how can i read in a bunch of images into matlab for processing? i.e. i want to read in 1.jpg, 2.jpg, 3.jpg into the workspace. I know I need a for loop ,but i can't quite put the code together using the imread syntax.
for i = 1:5
a(i) = imread(xxxxx.jpg);
thank you

Accepted Answer

Walter Roberson
Walter Roberson on 11 Jul 2011
b = rgb2gray(a);
To read a bunch of images, please see this FAQ
Walter Roberson
Walter Roberson on 12 Jul 2011
mydata{k} = imread(jpegFiles(k).name);
Notice the {k} instead of (k)

Sign in to comment.

More Answers (1)

aaa on 11 Jul 2011
thanks for the quick reply, i read through the faq and tried this but i get the following error
In an assignment A(:) = B, the number of elements in A and B must be the same.
Error in ==> test at 11 b(i) = sprintf('%d.jpg',k(i));
my code looks like
for i = 1:3
b(i) = sprintf('%d.jpg',i);
c(i) = imread(b(i));
thank you
  1 Comment
Image Analyst
Image Analyst on 11 Jul 2011
Try b{i} instead of b(i).

Sign in to comment.


Find more on Install Products 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!

Translated by