分享

用matlab读取图片的颜色信息

 永恒_世界 2014-12-06

        这几天用.NET的c#做界面,然后老师想我在界面画一个类似matlab的那种矢量图,C#可以根据提供的RGB值生成颜色,可是郁闷的是,matlab的颜色渐变非常好,我用人工设定的方法基本无法达到这么好的渐变效果,这时候请教了一下许老师,许老师说matlab可以读取图片的RGB值。

       也就是说,我可以先将 matlab的colorbar存成一个bmp的图片格式,然后用matlab读进去,在做一个简单的处理,就可以得到matlab的colorbar所使用RGB值了,虽然有点傻,但是比人工的还是要智能一些。

     我们首先来看看用matlab画出的矢量图的效果:代码如下:


>> load('outputFile2.txt')                           

%首先我们把文件里面的数据导入到matlab里面来,这个文件里面的数据是一个2列N行的数据
>> aa=reshape(outputFile2(:,1),68,55);    %提取第一行的数据,并将其重排成一个68*55的数组
>> imagesc(aa)                                        %然后用matlab的画图函数画出其矢量图和colorbar;
>> colorbar

然后我们单独把colorbar 的图片信息截出来:(注意要把图片格式保存成bmp格式的)

                                                                        

接下来就用matlab来处理并得到颜色信息了:代码如下:

imread('colorbar.bmp')

%把图片读进去,matlab就自己产生了一个443*32*3的数组了,443是长,32是宽,3是RGB的维度

color=ans(:,10,:) %得到中间一条的颜色信息
colorfinal=reshape(color,444,3) %最后得到中间一条每个点的RGB

这么整理一下,然后把每个点的RGB值用switch case写进我的代码,然后,哈哈,看下成果啦,跟matlab画得差不多哦, 可能图片大小的关系,我resize了很多遍才传上来,原图要大一点

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多