首页 > 解决方案 > 如何在 MATLAB 中将 aa unit8 灰度可视化为 RGB?无法添加第三维

问题描述

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

  1. 将RGB图像转换为灰度和灰度转换为RGB图像?

  2. 在 MATLAB 中转换为 unit8 数据类

我有一个图像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

标签: matlabmatrixmatlab-figure

解决方案


imshow 需要一个 m×n×3 数组(请参阅文档),因此为了创建这样一个数组,您需要三个 m×n 矩阵(在您的情况下为 R1、R2、R3)然后您可以将它们连接起来在第三维通过

imshow(cat(3,R1,R2,R3))

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


推荐阅读