matlab 画出可见光谱,求懂MATLAB的高手相助,如何在MATLAB中画光谱曲线。

CODE:

function RGB=Wavelength2RGB(Wavelength)

Gamma = 0.8;

IntensityMax = 255;

if Wavelength >= 380 & Wavelength <= 439

Red = -(Wavelength - 440) / (440 - 350);

Green = 0.0;

Blue = 1.0;

elseif Wavelength >= 440 & Wavelength <= 489

Red = 0.0;

Green = (Wavelength - 440) / (490 - 440);

Blue = 1.0;

elseif Wavelength >= 490 & Wavelength <= 509

Red = 0.0;

Green = 1.0;

Blue = -(Wavelength - 510) / (510 - 490);

elseif Wavelength >= 510 & Wavelength <= 579

Red = (Wavelength - 510) / (580 - 510);

Green = 1.0;

Blue = 0.0;

elseif Wavelength >= 580 & Wavelength <= 644

Red = 1.0;

Green = -(Wavelength - 645) / (645 - 580);

Blue = 0.0;

elseif Wavelength >= 645 & Wavelength <= 780

Red = 1.0;

Green = 0.0;

Blue = 0.0;

else

Red = 0.0;

Green = 0.0;

Blue = 0.0;

end

if Wavelength >= 350 & Wavelength <= 419

factor = 0.3 + 0.7*(Wavelength - 380)/(420 - 380);

elseif Wavelength >= 420 & Wavelength <= 700

factor = 1.0;

elseif Wavelength >= 701 & Wavelength <= 780

factor = 0.3 + 0.7*(780 - Wavelength)/(780 - 700);

else

factor = 0.0;

end

r=255*(Red*factor)^Gamma;

g=255*(Green*factor)^Gamma;

b=255*(Blue*factor)^Gamma;

R=r;

G=g;

B=b;

RGB=[R G B];

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值