如果我可以补充您的问题,在我看来,您只是想单独(或组合)隔离和可视化红色、绿色和蓝色荧光。我特别认为这是因为您提到了“粉红色”。
只隔离通道可能会更好:
>> F_red = F; F_red(:,:,[2,3]) = 0;
>> F_green = F; F_green(:,:,[1,3]) = 0;
>> F_blue = F; F_blue(:,:,[1,2]) = 0;
>> F_pink = F; F_pink(:,:,2) = 0;
这是结果的子图:
此外,您应该知道,生成灰度图像的“简单”方式并不能保留人眼感知的颜色“亮度”,因为“绿色”与“红色”和“蓝色”的强度相同'实际上会被人眼感知为更亮,同样,'red' 比 'blue' 更亮。 Matlab 提供了一个rgb2gray 函数,该函数将 rgb 图像转换为正确保留亮度的灰度图像。这与您的纯红色、绿色和蓝色转换无关,但对于“粉色到灰度”图像可能需要考虑。例如,比较下面的两张图片,您会看到细微的对比度差异。
>> F_pinktogray_naive = mean(F(:,:,[1,3]), 3);
>> F_pinktogray_luminance = rgb2gray(F_pink);
两者的子图:
从某种意义上说,您可能更关心左(幼稚)的,因为您不关心“视觉上”将粉红色转换为灰色,但您更关心红色和蓝色荧光“在灰度图像上的强度方面具有可比性”(因为它们代表测量而不是视觉场景)。但在将 rgb 图像转换为灰度图像时,请牢记这一重要区别。