图片是三维矩阵的颜色指定的,所以只需修改对应的颜色就好了。以下以100*100像素的红图为例,将第4-6行,第4-6列的元素变成黄色。只需将第4-6行,第4-6列的绿色成分从0变成1即可
以下为代码举例:
>> R=ones(100);
>> G=zeros(100);
>> B=zeros(100);
>> F(:,:,1)=R;F(:,:,2)=G;F(:,:,3)=B;
>> imshow(F)
%以上生成了红色图片,下面修改成黄色。
>> F(4:6,4:6,2)=ones(3);
>> imshow(F)
注意:彩色图片的三层颜色分别是红绿蓝,其中将红和绿设为1,蓝设为0时所呈现的颜色就是黄(颜色组合)。
array是1000×1000的数据矩阵 imrgb是输出的3维RGB图像矩阵
现在array假定为-0.01到0.01的随机数,运行以后输出图像
clear;clc;close all
array=unifrnd(-0.01,0.01,1000,1000);
imrgb=zeros(1000,1000,3);
for i=1:1000
for j=1:1000
if array(i,j)<-0.005
imrgb(i,j,3)=255; %%红
else if array(i,j)>0.005
imrgb(i,j,1)=255; %%绿
else imrgb(i,j,2)=255; %%蓝
end
end
end
end
figure(8);imshow(uint8(imrgb));