如何在 MATLAB 中将 uint8 灰度可视化为 RGB?无法添加第三维

How to visualize aa unit8 grayscale as RGB in MATLAB? Unable to add 3rd dimention

问这个问题之前我查看的链接:

  1. Convert RGB Image to Grayscale and Grayscale to RGB Image?

  2. Conversion to unit8 data class in MATLAB

我有一张图片 img。我想在 MATLAB 中可视化矩阵中的像素值(经过一些操作后)。 R1、R2、R3是我创建的三个矩阵,分别用来存放R、G、B的像素值

for i=1:30

R1(:,1:30:) = toeplitz(img(i,:,1)); 
R2(:,1:30,:) = toeplitz(img(i,:,2)); 
R3(:,1:30,:) = toeplitz(img(i,:,3)); 
R = (R1+ R2+ R3)/3 ;  %%I know this part is incorrect

end

然而,imshow(R) 显示灰度图像,但我想在 RGB 中可视化。我能理解的是将像素值从 0 到 255 取为 0:Black 和 255:White。我想要实现的是它对 R1、R2 和 R3 中第三维的像素值进行平均,并显示颜色中的像素。

我们将不胜感激。

参考:https://www.mathworks.com/help/matlab/ref/toeplitz.html

imshow 需要一个 m-by-n-by-3 数组(参见 documenation) 所以为了创建这样一个数组,你需要三个 m-by-n 矩阵(在你的例子中是 R1、R2、R3) 然后你可以通过

在三维中连接它们
imshow(cat(3,R1,R2,R3))

这应该会产生所需的 RGB 图像。