在Matlab中,我使用imagesc在使用imshow的图像上绘制矩阵(让我们称之为M)。我希望M有一定程度的透明度,这样我就能看到下面的图片。这就是我正在做的:
imshow(img); hold on;
h = imagesc(M);
set(h,'AlphaData',0.4); % set transparency to 40%
但是,最后一行在Linux上运行时会产生一个错误。我一直在试图解决这个问题,但似乎什么都没用。我想知道是否有一个替代的"AlphaData"属性,使其透明。谢谢!
编辑:我在Linux CentOS 6.6上使用Matlab R2014a和Java 1.7
正如Luis Mendo所建议的,我只需要改变渲染器。您可以:
>get(gcf,'renderer'); % to see which render engine is Matlab using
>set(gcf,'renderer'); % to get a list with all the possible renderers in your machine
因此,至少在Linux中,要更改渲染器,有必要从终端启动Matlab,调用它为:
matlab -softwareopengl
一旦这样做了,就可以在特定的图中设置透明度,如问题的描述所示。