Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

image reading and writing

Asked by James on 8 Aug 2011

Hi

I have been developing an algorithm which reads and imports 2 different images (.jpg files) and undertakes calculations to output and write a third different image file.

At first when reading in the images I just used double() and then I started to using rgb2gray and finally it seemed to work when using im2double instead of just double.

Why do I need to use this code:

object = mmreader('train.mpg')
frame1=read(object,1)
frame1=rgb2gray(thisframe)
frame1=im2double(thisframe)

Is this even correct what I have finally used?? Please help!

1 Comment

Image Analyst on 9 Aug 2011

Actually it worked after your call to read. Anything you do after that is just part of your algorithm, like throwing away the color info or changing from integer to floating point or whatever you do after that. Anyway, why not use VideoReader, which is the more modern way of reading videos?

James

Products

No products are associated with this question.

1 Answer

Answer by Walter Roberson on 8 Aug 2011

You define "frame1" three times, but you twice use "thisframe" without ever defining it.

object = mmreader('train.mpg');
frame1 = read(object,1);
thisframe = rgb2gray(imdouble(frame1));

5 Comments

James on 10 Aug 2011

why not double() instead of im2double()??

Well this might not be a great addition but you can avoid the third step.
object= mmreader('train.mpg'); %If you have R2011a then you can replace mmreader with VideoReader
frame1= rgb2gray(read(object,1));
thisFrame = im2double(frame1);

Walter Roberson on 10 Aug 2011

James, in the table of the Tips section I referred to, what is the valid data range for RGB data represented as double precision values?

Walter Roberson

Contact us