1

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

在此处输入图像描述

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

4

1 回答 1

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
于 2013-02-21T15:43:21.743 回答