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

时间:2019-07-05 02:56:03

标签: matlab matrix matlab-figure

在问这个问题之前我检查过的链接:

  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:黑色和255:White。我要实现的是,将R1,R2和R3中第3维的像素值取平均值,然后向我显示颜色的像素。

任何帮助将不胜感激。

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

1 个答案:

答案 0 :(得分:0)

imshow需要一个m×n×3的数组(请参见documenation) 因此,要创建这样的阵列,您需要三个m×n矩阵(在您的情况下为R1,R2,R3) 然后,您可以通过

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

这将产生所需的RGB图像。