How can I plot a sequence of images into one image using one colorscale as indicator of sequence position (Intensity-over-time)?

3 views (last 30 days)
Hello,
I want to see an intensity-over-time profile of an image sequence (i.e. the bleaching of a fluorophore over time). I created a 1x300 cell array of images á 128x128 pixel. Each cell resembles a frame of the sequence. Afterwards I subtracted the last frame from all other frames. Now, I want to encode the sequence position with one color to generate a single image with the information when the fluorophore bleached.
In short: I want to plot all images into one merged image, but coded with a color scale in that way, that i see from which sequence number the image came from.
I'm quite a beginner in MatLab, sorry for the missing technical terms. thanks!

Accepted Answer

Image Analyst
Image Analyst on 2 Jul 2012
Use jet(300) or some colormap to get an array of 300 colors, which is one unique color for each of your frames.
myColorMap = jet(300);
Then for each frame, convert to black and white, multiply by the colors for that frame. Something like
rgbForThisFrame{frameNumber} = cat(3, myColorMap(1)*grayImage, myColorMap(2)*grayImage, myColorMap(3)*grayImage);
Then average all 300 color images together to get the one color image that represents them all.
  1 Comment
Janett Göhring
Janett Göhring on 4 Jul 2012
Edited: Janett Göhring on 4 Jul 2012
thanks a lot, that worked fantastically!
For averaging I used following method:
a=zeros(128,128,3);
for i=1:300,
a=a+rgbForThisFrame{i};
end
a=a/299;

Sign in to comment.

More Answers (0)

Categories

Find more on Convert Image Type in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!