【发布时间】:2014-10-17 00:20:21
【问题描述】:
我正在比较 Ansys Fluent 和 Matlab 的各种等高线图。一切都绘制在相同的坐标和相同的 caxis 限制。但是我正在努力让颜色图匹配。不幸的是,将数据从 fluent 导出到 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);
非常感谢您的想法。
【问题讨论】:
-
(A)
'custom_colormap.jpg'是否被裁剪为仅包含实际的颜色图部分? (B) 该图像的质量有多高,您是否应该为此使用无损图像格式,例如位图? -
感谢您的回复。 (A) 是的,我已将图像裁剪为仅包含颜色图部分。我还尝试将其旋转 90 度(B)我截取了屏幕截图。所以它的分辨率不是很高。为了安全起见,我用位图尝试了它,但没有帮助。 (C)也许它可以不使用 imread 来完成,但以某种方式选择颜色。我知道情节中有 50 种不同的颜色,我不需要更多。我想我可以找出轮廓中每种颜色应该代表的确切 z 值。
-
接下来要尝试在您的图像上调用
unique以查看有多少种颜色(即确定图像上是否有噪点) -
如果噪音不大,那么您可以使用独特的(使用
'stable')选项自己创建颜色图。rgb2ind可能只是选错了顺序…… -
您需要那张精确的地图吗?您可以通过修剪 Matlab 的
hsv地图获得相当接近:n = 20; cm = hsv(ceil(n/.7)); cm = cm(1:n,:); colormap(cm), colorbar
标签: matlab color-mapping