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

4 visualizzazioni (ultimi 30 giorni)
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!

Risposta accettata

Image Analyst
Image Analyst il 2 Lug 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 Commento
Janett Göhring
Janett Göhring il 4 Lug 2012
Modificato: Janett Göhring il 4 Lug 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;

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Images in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by