使用opengl硬件渲染器导出带有颜色条的MATLAB冲浪图会导致png文件损坏

时间:2014-05-08 11:58:11

标签: matlab opengl plot colorbar

当我将带有MATLAB颜色条的2D曲面图导出到png文件时,会导致损坏 我使用opengl硬件渲染器时的图像,如下所示:

corrupted surface plot png export from MATLAB

其他一切都很好。但是在我创建了一个带有颜色条的图形之后 我导出到png文件的其他表面图已损坏,即使它们不包含 任何颜色条。

MATLAB中的

opengl info给出以下输出:

    Version         = 3.0 Mesa 10.1.0
    Vendor          = Intel Open Source Technology Center
    Renderer        = Mesa DRI Intel(R) Haswell Desktop 
    MaxTextureSize  = 8192
    Visual          = 0x20 (TrueColor, depth 24, RGB mask 0xff0000 0xff00 0x00ff)
    Software        = false
    # of Extensions = 190

    Driver Bug Workarounds:
    OpenGLBitmapZbufferBug    = 0
    OpenGLWobbleTesselatorBug = 0
    OpenGLLineSmoothingBug    = 0
    OpenGLClippedImageBug     = 0
    OpenGLEraseModeBug        = 0

我尝试了所有这些OpenGL的解决方法,但没有任何帮助。

有人知道如何解决这个问题吗?

我的系统:

  • 内核:3.13.0-24-通用64位
  • Prozessor:Intel Haswell i7 4770K
  • 图形:Intel HD 4000
  • MATLAB版本:R2013b

在我同事的计算机上,这是完全一样的,但有不同的操作系统(debian wheezy),这个问题没有出现。在他的电脑上opengl info给出:

    Version         = 2.1 Mesa 8.0.5
    Vendor          = VMware, Inc.
    Renderer        = Gallium 0.4 on llvmpipe (LLVM 0x209)
    MaxTextureSize  = 4096
    Visual          = 0xfc (TrueColor, depth 24, RGB mask 0xff0000 0xff00 0x00ff)
    Software        = false
    # of Extensions = 143

    Driver Bug Workarounds:
    OpenGLBitmapZbufferBug    = 0
    OpenGLWobbleTesselatorBug = 0
    OpenGLLineSmoothingBug    = 0
    OpenGLClippedImageBug     = 0
    OpenGLEraseModeBug        = 0

在他的情况下是否可行,因为Gallium/llvmpipe实际上是一个软件渲染器?

彩条有什么问题?

1 个答案:

答案 0 :(得分:1)

不幸的是,MATLAB在标准化方面并不出色,色彩问题的问题在于,当保存或不与MATLAB以外的其他东西一起使用时,编码图像不会被保存或生成以便于其他应用程序使用,因为MATLAB只优化了MATLAB应用程序的映射,如果我找到一个可以帮助你的例子,我将编辑我的答案,但我希望这可以解释你的问题。

否则其matlabs故障并且无法正确保存图像。