平滑matlab图数字

时间:2013-02-21 13:46:55

标签: matlab matlab-figure

我使用120x120矩阵和surf函数获得了下图。

enter image description here

是否有一种简单的方法可以使不同颜色之间的线条看起来更平滑?

1 个答案:

答案 0 :(得分:3)

首先,surf可能不是显示2D图像的最佳方式 - 如果您实际上不需要高度信息,imagesc将正常工作。更好的是,它不会在六边形之间显示不同颜色的线条,因为它不会在交叉点处穿过色彩图。

然而,无论你的方法如何,低分辨率的位图都不会自动转换为“任意”分辨率的矢量图形 - 你可能不会想要,无论如何,如果你使用这个图来允许你在您在给定值下获得的(x,y)组合。

有三种方法可以让您的图像更漂亮 - (1)分割六边形,并使用patch创建矢量图形图像。 (2)用imresample对图像进行上采样。 (3)创建一个RGB图像并分别平滑每种颜色以获得更柔和的过渡:

%# assume img is your image
nColors = length(unique(img));
%# transform the image to rgb
rgb = ind2rgb((img+fliplr(img)),jet(nColors)); %# there are much better colormaps than jet
%# filter each color
for i=1:3,rgbf(:,:,i)=imfilter(rgb(:,:,i),fspecial('gaussian',9,3),'replicate');end