大家好我有一堆荧光标记颗粒的图像正在经过时间。图像堆栈是灰度缩放的。
我通过获取第三维中图像堆栈的最大值来计算最大强度投影。
Example:
ImageStack(x,y,N) where N = 31 image frames.
2DProjection = max(ImageStack,[],3)
现在,由于2D投影图像是黑白的,我希望指定一个颜色渐变,这样我就可以了解粒子随时间的流动。有没有办法可以用彩色覆盖这个图像,这样我才能知道粒子的起始位置以及它最终的位置?
谢谢!
答案 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