我分别得到灰度图像而不是红色,绿色和蓝色图像。请帮助您获得正确的输出。假设我使用图像名称为'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)
答案 0 :(得分: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)