【问题标题】:AlphaData alternative in MatlabMatlab 中的 AlphaData 替代方案
【发布时间】:2015-07-22 22:08:12
【问题描述】:

在 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

【问题讨论】:

  • get(gcf,'renderer') 返回什么? (这将告诉您当前的渲染器)。还有set(gcf,'renderer')? (这是可能的渲染器列表)。尝试将渲染器设置为与您当前使用的不同的渲染器。一些渲染器不支持透明度。 (在 Windows 上,我认为只有 'opengl' 可以)
  • 你试过alpha(.4)甚至set(h, 'alpha',.5);吗?
  • 谢谢,路易斯。这样就解决了!
  • 我只需要从调用“matlab -softwareopengl”的终端启动matlab即可更改为OpenGL渲染器
  • 将其作为答案发布?对于遇到同样问题的 Linux 用户可能会有所帮助

标签: linux matlab matlab-figure alpha-transparency


【解决方案1】:

正如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 

完成此操作后,可以在特定绘图中设置透明度,如问题描述中所示。

【讨论】:

    猜你喜欢
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多