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

1 vue (au cours des 30 derniers jours)
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!

Réponse acceptée

Image Analyst
Image Analyst le 2 Juil 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 commentaire
Janett Göhring
Janett Göhring le 4 Juil 2012
Modifié(e) : Janett Göhring le 4 Juil 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;

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Convert Image Type dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by