0

我得到的是灰度图像,而不是分别为红色、绿色和蓝色图像。请帮助获得正确的输出。假设我使用图像名称作为“2.jpg”。

这是我的代码:

i=imread('2.jpg');
[x y z]=size(i);
for x1=1:x;
    for y1=1:y;
        red(x1,y1)=i(x1,y1,1);
        green(x1,y1)=i(x1,y1,2);
        blue(x1,y1)=i(x1,y1,3);
    end;
end;
figure;imshow(red);
figure;imshow(green);
figure;imshow(blue)
4

1 回答 1

3

您的“红色”矩阵是一个 nxm 矩阵,根据定义,它是一个灰度图像。如果您希望“红色”成为只有红色的彩色图像,则必须用零填充其他通道并制作一个 nxmx3 矩阵。

img=imread('2.jpg');
%Preallocate variables with zeros
red=zeros(size(img));
green=red;
blue=red;
%fill one channel with data
red(:,:,1)=img(:,:,1)
green(:,:,2)=img(:,:,2)
blue(:,:,3)=img(:,:,3)
于 2013-10-27T20:52:43.327 回答