matlab中image和colormap是什么关系?像这个代码,image中的元素(0到255),对应于干gray(256)中的256个元素么?但如果使用的是colormap(gray),这样gray默认的只有64行,而不是256,行,matlab是怎么处理的cle
像这个代码,image中的元素(0到255),对应于干gray(256)中的256个元素么?但如果使用的是colormap(gray),这样gray默认的只有64行,而不是256,行,matlab是怎么处理的
clear all
close all
x=linspace(-pi,pi,100);
sf=6; % spatial freq in cycles per image
sinewave=sin(x*sf);
close all
onematrix=ones(size(sinewave));
sinewave2D=(onematrix'*sinewave);
scaled_sinewave2D=((sinewave2D+1)*127.5)+1;
image(scaled_sinewave2D)
% rescales numbers between -1 and 1 to lie between 1 and 256
colormap(gray(256))
axis equal
axis off
您好,我仔细阅读了帮助文档并进行实验,有如下结论,希望共同探讨:
关于image函数:在您的程序中,scaled_sinewave2D是double类型二维矩阵,其取值在[1,256]之间,matlab会认为其是一个indexed图像,即像素取值对应于colormap中的颜色索引.因此其应当对应于一个256行的colormap.但在未显式指明colormap前,matlab的帮助文档中有个说法是colormap的行数与scaled_sinewave2D的行数一样,但实际测试表明默认colormap(也就是直接调用gray后返回的行数)是64行的,这点暂不清楚原因.但我认为可以忽略之,毕竟只有指定了正确的colormap才有意义,错误的情形可以不管它.
关于gray函数:在没有参数时,gray会获取当前figure的colormap,并转换成行数相同的灰度map.在给出参数是就形成指定行数的灰度map.所以gray本身并没有”默认“一个什么行数.某种植物的表现型有高茎(H)和矮茎(h)、紫花和白花.已知紫花形成的生物化学途径是:其中,A和a、 2020-04-06 …
如果a*b=才(a,b,c,为非0的整数),那么,c是()和()的倍数,a和b是c的().如果A, 2020-04-09 …
羧酸A是饱和一元羧酸,酯B是饱和一元羧酸跟饱和一元醇形成的.现有A和B的混合物共1.5mol,质量 2020-05-13 …
a÷b=c,a,b,c都是非零自然数,那么b和c是a的(),a是b和c的()急,回答快好加财富悬赏 2020-05-14 …
基因型为AaBb的生物体,两对等位基因位于非同源染色体上,其中能体现自由组合的基因是( )A.A和 2020-05-17 …
a=bc,那么,a是b和c的倍数.. 2020-05-21 …
几道数学题,厉害来!一.代数式3m+2n可以表示什么二.2a-b除以a+b的意义是()A.a与b差 2020-06-03 …
a=bc,那么,a是b和c的倍数.. 2020-06-13 …
三只猫A,B,C一起吃了120条鱼.A吃的是B和C的二分之一;B吃的是A和C的三分之一;C吃的是A 2020-06-16 …
机车A拉着一节车厢B向右行驶.用F(AB)和F(BA)分别代表A对B和B对A的作用力,已知B行驶时 2020-07-06 …