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本身并没有”默认“一个什么行数.同温同压下,已知下列各反应为放热反应,下列各热化学方程式中反应热最小的是A.2A(l)+B(l)= 2020-04-25 …
为括号部分发音相同的单词归类st(ay)m(ee)tn(o)d(ow)nr(oo)ml(oo)kt 2020-05-14 …
将括号内字母发音相同的单词归类W(e)st,tr(a)ffic,(c)lass,t(e)le)l, 2020-05-14 …
下列字母中含有共同读音/e/的一组是。[]A.f,l,m,nB.h,f,l,kC.b,e,g,pD 2020-05-15 …
已知A、B、C、D、E、F、G、H、L、K分别代表0至9中的不同数字,且有下列4个等式成立;D-E 2020-06-12 …
f(x),g(x),h(x)在[a,b]上连续,(a,b)上可导,求证存在一个e属于(a,b)使得 2020-07-16 …
根据下列热化学方程式:①C(s)+O2(g)=CO2(g)ΔH1=-393.5kJ/mol②H2( 2020-07-19 …
下面的反应中,哪一个满足ΔH°rxn=ΔH°f?A.½N2(g)+½O2(g)→NO(g)B.CO 2020-07-21 …
化学平衡中的气、液、固三系是否分开讨论…?比如,mA(g)+nB(l)=pC(g)+qD(l)+rE 2020-11-03 …
8.下图是设想的一条生物合成途径的示意图。若将缺乏此途径中必需的某种酶的微生物置于含X的培养基中生长 2020-12-12 …