Octave imread功能

时间:2014-07-30 20:29:13

标签: 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

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

谢谢!

2 个答案:

答案 0 :(得分:4)

按照这些步骤为我工作[作者:ChristofferCronström(hymyly)]:

安装构建八度音程所需的开发包。

sudo apt-get build-dep octave

获取官方源代码包。在干净的目录中执行此操作,因为它会受到污染。

cd ~/some/suitable/directory
apt-get source octave

构建它。这花了大约一个小时的时间。

cd octave-3.8.2
dpkg-buildpackage

从构建目录运行它:

./run-octave

...或最优选将其安装在官方八度音阶上:

cd ..
sudo dpkg --install octave_3.8.2-4_amd64.deb

来自:https://bugs.launchpad.net/ubuntu/+source/octave/+bug/1372202

答案 1 :(得分:0)

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

  • 如果您从Ubuntu的软件包管理器安装了Octave,那么您应该没有遇到此问题; *如果你自己编译,Octave应该完全禁用imread,你会有一个非常不同的错误信息。

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

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

  • 您从意外删除的软件包管理器中的库(因为您没有从存储库安装Octave,您的软件包管理器不会知道安装了libgraphicsmagick ++)。

无论哪种方式,解决方案都很简单。从Ubuntu的软件包管理器安装Octave。包管理器存在的一个主要原因是避免这种类型的问题,即缺少依赖性。