matlab如何指定像素颜色

2024-12-23 09:05:51
推荐回答(2个)
回答1:

图片是三维矩阵的颜色指定的,所以只需修改对应的颜色就好了。以下以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时所呈现的颜色就是黄(颜色组合)。

回答2:

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));