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

2 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
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)

Community Treasure Hunt

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

Start Hunting!

Translated by