Octave imread功能

leo*_*eon 8 octave

我在Ubuntu 14.04机器上安装了最新的Octave.但是,当我尝试运行imread命令时,它显示以下错误消息:

octave:12> imread('newfile.png')
error: imread: invalid image file: /usr/lib/x86_64-linux-gnu/octave/3.8.1/oct/x86_64-pc-linux-gnu/__magick_read__.oct: failed to load: /usr/lib/x86_64-linux-gnu/octave/3.8.1/oct/x86_64-pc-linux-gnu/__magick_read__.oct: undefined symbol: _ZN6Magick5ColorC1Ehhh
error: called from:
error:   /usr/share/octave/3.8.1/m/image/private/__imread__.m at line 181, column 7
error:   /usr/share/octave/3.8.1/m/image/private/imageIO.m at line 66, column 26
error:   /usr/share/octave/3.8.1/m/image/imread.m at line 107, column 30
Run Code Online (Sandbox Code Playgroud)

有人可以建议如何解决它?

谢谢!

car*_*aug 0

你是如何安装八度的?该错误表明您缺少 GraphicsMagick C++ 接口(包libgraphicsmagick++3),但是

  • 如果你从 Ubuntu 的包管理器安装了 Octave,你就不应该遇到这个问题;* 如果你自己编译它,Octave 应该完全禁用 imread,并且你会得到一个非常不同的错误消息。

所以我的猜测是你自己构建它,或者使用:

  • 您自己构建的 GraphicsMagick++ 不再被加载,您可能需要将它们的路径添加到动态链接器加载路径( on/etc/ld.so.conf.d./graphicsmagick或 Define LD_LIBRARY_PATH);

  • 您意外删除的包管理器中的库(由于您没有从存储库安装 Octave,您的包管理器将不知道 libgraphicsmagick++ 的安装是有原因的)。

无论哪种方式,解决方案都很简单。从 Ubuntu 的包管理器安装 Octave。包管理器存在的主要原因之一是为了避免此类问题,即缺少依赖项。

  • 我在 15.04 上看到同样的问题;我通过包管理器安装,安装了 libgraphicsmanager++3,并且 aptitude 显示没有任何损坏:( (2认同)