我在 MATLAB 中有一个 2336x3504 RGB uint8 文件。我还有一个由索引符号中感兴趣的像素组成的向量(基于 2336x3504 二进制图像)。我希望将 RGB 图像中与感兴趣的像素对应的所有点设置为特定颜色。
我的第一个想法是执行以下操作:
% Separate RGB image into three 3 uint8 arrays.
RGB1 = RGBImage(:,:,1);
RGB2 = RGBImage(:,:,2);
RGB3 = RGBImage(:,:,3);
% Change each layer based on the color I want (say for red, or [255 0 0])
RGB1(interestPixels) = 255;
RGB2(interestPixels) = 0;
RGB3(interestPixels) = 0;
% Then put it all back together
NewRGBImage = cat(3,RGB1,RGB2,RGB3);
虽然这有效,但它看起来很混乱。我确信有一个更优雅的解决方案,但我没有看到它。