matlab 怎样使rgb阈值0-255之间画图,使用什么语句可以实现呢?

分别用已知的rgb值,在0-255之间,用画图语句实现生成图像?

第1个回答  推荐于2017-12-16
生成RGB格式的图片(类似照片),还是画曲线,标出的颜色是该RGB值?
如果是生成图片,方法如下:
设R、G、B三个通道的图像分别为 I1,I2,I3,这里取的是随机数,注意RGB格式的图片数据类型是8位整数,后面的ceil是用来取整的。
clear
I1 = 256 * rand(100,100); I1 = ceil(I1);
I2 = 256 * rand(100,100); I2 = ceil(I2);
I3 = 256 * rand(100,100); I3 = ceil(I3);
% 将3个通道连接
I = cat(3,I1,I2,I3);
% 改变数据类型为8位,即生成好图片
I = uint8(I);
% 查看图片
imshow(I)

如果是画曲线标颜色,可用以下语句
plot(x,y,'Color',[R,G,B]/255)追问

得到的rgb值对应每个坐标点,生成的图片的rgb也对应每个坐标,我是用plot画点得到图片的,但是plot语句颜色设置rgb的值在0-1之间,而我最开始的到的rgb值是0-255之间,我就除以255,虽然能画出图片,但是颜色却只有红黄蓝绿黄黑这几种,我在想有没有用0-255直接画图的方法,或者不用plot,用其他的语句实现呢?

追答

将原来的数据分[R, G, B](x,y)成三套,分成R(x,y), G(x,y), B(x,y),然后用方法一就可以了:

% 将3个通道连接
I = cat(3,R,G,B);
% 改变数据类型为8位,即生成好图片
I = uint8(I);
% 查看图片
imshow(I)

追问

谢谢你的解答,是的,这样可以实现,是和原来一样的图片,我想用电脑自带的颜色画出来让图片更清晰颜色更明亮,而不是原图仍然会有像素和拍照是光线的问题显得不清楚的问题。

本回答被提问者和网友采纳
相似回答