2014-10-16 56 views
1

我正在比较Ansys Fluent和Matlab的各种轮廓图。一切都绘制在相同的坐标上,并具有相同的caxis限制。不过,我正在努力使颜色匹配匹配。不幸的是,将数据从流畅输出到matlab不是一种选择。Matlab,从图像制作自定义色彩图

我将Ansys Fluent色彩表保存为.jpg或.png。我试图从[url = http://www.arc.vt.edu/ansys_help/flu_ug/graphics/g_flu_ug_panel_cmap.png图像类似于这个[/ url]为matlab制作一个自定义颜色图表,所以我可以用相同的颜色图来绘制我的matlab数据。显然,我删除了不相关的数据,只留下了颜色表。

我试图用imread和rgb2ind做一些事情,但这给了我一些非常时髦的结果。

h=imread('custom_colormap.jpg') 
[X, map] = rgb2ind(h,50); 
colormap(map); 

您的想法值得赞赏。

+0

(A)是''custom_colormap.jpg''裁剪只包括实际colourmap部分? (B)图像的质量如何,您是否应该使用无损图像格式来表示位图? – Dan 2014-10-16 15:38:57

+0

谢谢你的回复。 (A)是的,我裁剪图像只包含色彩映射部分。我也尝试将它旋转90度 (B)我拍了一张截图。所以它不是非常高的分辨率。为了安全起见,我尝试了一下位图,但没有帮助。 (C)也许它可以不使用imread而是以某种方式挑选颜色。我知道剧情有50种不同的颜色,我不需要更多。我想我可以找出每种颜色所代表的轮廓中的确切z值。 – Arno 2014-10-16 15:59:32

+0

接下来要尝试的是在您的图像上调用'unique'以查看有多少颜色(即,确定图像上是否有噪声) – Dan 2014-10-16 16:02:55

回答

2

您是否尝试过创建自己的自定义颜色映射?你可以这样做很容易使用colormapeditor工具:

enter image description here

+0

+1我不知道那个工具!非常方便 – 2014-10-16 16:20:59

+0

谢谢,我设法使用此解决方案获得最佳结果。不幸的是,它不能让它足够接近地匹配数据。 – Arno 2014-10-16 17:17:12

2

你需要一个精确的地图?你可以通过修剪Matlab的HSV地图八九不离十:

n = 20; %// desired number of colors 
t = .7; %// trimming factor 
cm = hsv(ceil(n/t)); 
cm = cm(1:n,:); 
%// cm = flipud(cm); %// if needed. Thanks to Dan 
colormap(cm); 
colorbar 

enter image description here

+0

谢谢你。这是非常有用的,但我无法准确地满足我的需求。我也用jet colormap(我最初使用的那个)尝试过它。我明天再试一次。 – Arno 2014-10-16 17:17:54