5

当我在使用 imagesc (Matlab R2012a) 创建的图像上绘制透明度 < 1 的补丁时,我得到的东西看起来像很多“刻度标签”,或者图像上沿轴的数字。以下代码重现了该问题:

imagesc(rand(10,20))
hold on
patch([5 5 15 15],[3 7 7 3],'r','facealpha',.5)

这是一个错误,还是有办法正确地做到这一点?

编辑 如果我设置数字消失set(gca,'xtick',[],'ytick',[]),所以它确实与刻度有关。我当然更喜欢在我的身材上有刻度。

上面有数字的图像

4

1 回答 1

2

这种图形工件通常与渲染器有关。特别是 OpenGL 渲染器似乎在 Matlab 版本、显卡和操作系统的某些组合上搞砸了。

标准的解决方法是在图形属性中将渲染器从OpenGL更改为zBuffer,这是通过命令实现的

set(gcf,'renderer','zbuffer')

不幸的是,OpenGL 是唯一支持透明度的渲染器,所以这个解决方案对你不起作用。

作为一种可能的替代解决方法,您可以通过以下命令从硬件切换到软件 OpenGL 渲染器

opengl software

查看opengl 的帮助以了解如何在 *nix 环境中进行设置。

于 2013-01-07T21:42:29.223 回答