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的部分指定成红色,然后显示成图像,数据可以随便假设,谢谢大家了。 展开
 我来答
百度网友db4b04636
2015-05-16 · TA获得超过2915个赞
知道小有建树答主
回答量:834
采纳率:92%
帮助的人:337万
展开全部

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aronk_
2010-06-11 · TA获得超过532个赞
知道小有建树答主
回答量:121
采纳率:100%
帮助的人:201万
展开全部
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));
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式