最大强度投影matlab与颜色

时间:2014-01-27 21:48:35

标签: matlab image-processing particles

大家好我有一堆荧光标记颗粒的图像正在经过时间。图像堆栈是灰度缩放的。

我通过获取第三维中图像堆栈的最大值来计算最大强度投影。

Example:
ImageStack(x,y,N) where N = 31 image frames.

2DProjection = max(ImageStack,[],3)

现在,由于2D投影图像是黑白的,我希望指定一个颜色渐变,这样我就可以了解粒子随时间的流动。有没有办法可以用彩色覆盖这个图像,这样我才能知道粒子的起始位置以及它最终的位置?

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用max的第二个输出来获取特定最大值来自哪个帧。 max返回一个索引矩阵,指示每个最大值的索引,在您的情况下,它将是它发生的特定帧。如果将此与imagesc函数一起使用,则可以绘制粒子随时间移动的方式。例如:

ImageStack(x,y,N) where N = 31 image frames.

[2DProjection,FrameInfo] = max(ImageStack,[],3);
imagesc(FrameInfo);
set(gca,'ydir','normal'); % Otherwise the y-axis would be flipped

答案 1 :(得分:1)

每个图像着色后,您可以将每个图像的亮像素相加。这样,您将在重叠区域上使用混合颜色,您将错过使用最大功能。虽然我比以前更喜欢上一个答案。

hStep = 1/N;
currentH = 0;
resultImage = uint8(zeros(x,y,3));
for i = 1 : N
   rgbColor = hsv2rgb(currentH,1,0.5);
   resultImage(:,:,1) = resultImage(:,:,1) + im(:,:,i) * rgbColor(1);
   resultImage(:,:,2) = resultImage(:,:,2) + im(:,:,i) * rgbColor(2);
   resultImage(:,:,3) = resultImage(:,:,3) + im(:,:,i) * rgbColor(3);
   currentH = currentH + hStep;
end