matlab如何指定像素颜色
有一个1000*1000的矩阵的值介于-1到1之间,我想把【-0.005,+0.005】的区间指定成绿色,小于-0.005的部分指定成蓝色,大于0.005的部分指定成红色...
有一个1000*1000的矩阵的值介于-1到1之间,我想把【-0.005,+0.005】的区间指定成绿色,小于-0.005的部分指定成蓝色,大于0.005的部分指定成红色,然后显示成图像,数据可以随便假设,谢谢大家了。
展开
2个回答
展开全部
图片是弯老三维矩阵的颜色指定的,所以只需修改对应的颜色就好了。以下以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));
现在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));
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询