这几天用.NET的c#做界面,然后老师想我在界面画一个类似matlab的那种矢量图,C#可以根据提供的RGB值生成颜色,可是郁闷的是,matlab的颜色渐变非常好,我用人工设定的方法基本无法达到这么好的渐变效果,这时候请教了一下许老师,许老师说matlab可以读取图片的RGB值。 也就是说,我可以先将 matlab的colorbar存成一个bmp的图片格式,然后用matlab读进去,在做一个简单的处理,就可以得到matlab的colorbar所使用RGB值了,虽然有点傻,但是比人工的还是要智能一些。 我们首先来看看用matlab画出的矢量图的效果:代码如下:
%首先我们把文件里面的数据导入到matlab里面来,这个文件里面的数据是一个2列N行的数据 然后我们单独把colorbar 的图片信息截出来:(注意要把图片格式保存成bmp格式的) 接下来就用matlab来处理并得到颜色信息了:代码如下: imread('colorbar.bmp') %把图片读进去,matlab就自己产生了一个443*32*3的数组了,443是长,32是宽,3是RGB的维度 color=ans(:,10,:) %得到中间一条的颜色信息 这么整理一下,然后把每个点的RGB值用switch case写进我的代码,然后,哈哈,看下成果啦,跟matlab画得差不多哦, 可能图片大小的关系,我resize了很多遍才传上来,原图要大一点
|
|