Octave 倍频程可以';t使用GraphicsMagick读取文件
我正在尝试在OS X上使用GraphicsMagick 1.3.27(通过brew)在Octave 4.2.1中加载图像。错误如下:Octave 倍频程可以';t使用GraphicsMagick读取文件,octave,graphicsmagick,Octave,Graphicsmagick,我正在尝试在OS X上使用GraphicsMagick 1.3.27(通过brew)在Octave 4.2.1中加载图像。错误如下: >> img = imread('./myimg.jpg') error: Magick++ exception: octave-cli-4.2: No decode delegate for this image format (<path to myimg.jpg>) reported by magick/constitute.c:1
>> img = imread('./myimg.jpg')
error: Magick++ exception: octave-cli-4.2: No decode delegate for this
image format (<path to myimg.jpg>) reported by magick/constitute.c:1535 (ReadImage)
error: called from
__imread__ at line 80 column 10
imageIO at line 117 column 26
imread at line 106 column 30
尝试加载png文件会导致相同的错误。直接从命令行使用
gm
效果很好。您的倍频程和gm安装可能与不同的GraphicsMagick库相链接,因此gm-version
的输出可能不准确。您可能应该从八度音阶本身内部进行检查,如下所示:
octave:1> imformats
Extension | isa | Info | Read | Write | Alpha | Description
----------+-----+------+------+-------+-------+------------
bmp | yes | yes | yes | yes | yes | Microsoft Windows bitmap image
cur | yes | yes | yes | no | yes | Microsoft Cursor Icon
gif | yes | yes | yes | yes | yes | CompuServe graphics interchange format
ico | yes | yes | yes | no | yes | Microsoft Icon
jbg | yes | yes | yes | yes | yes | Joint Bi-level Image experts Group interchange format
jbig | yes | yes | yes | yes | yes | Joint Bi-level Image experts Group interchange format
jpg, jpeg | yes | yes | yes | yes | yes | Joint Photographic Experts Group JFIF format
pbm | yes | yes | yes | yes | yes | Portable bitmap format (black/white)
pcx | yes | yes | yes | yes | yes | ZSoft IBM PC Paintbrush
pgm | yes | yes | yes | yes | yes | Portable graymap format (gray scale)
png | yes | yes | yes | yes | yes | Portable Network Graphics
pnm | yes | yes | yes | yes | yes | Portable anymap
ppm | yes | yes | yes | yes | yes | Portable pixmap format (color)
ras | yes | yes | yes | yes | yes | SUN Rasterfile
tga, tpic | yes | yes | yes | yes | yes | Truevision Targa image
tif, tiff | yes | yes | yes | yes | yes | Tagged Image File Format
xbm | yes | yes | yes | yes | yes | X Windows system bitmap (black/white)
xpm | yes | yes | yes | yes | yes | X Windows system pixmap (color)
xwd | yes | yes | yes | yes | yes | X Windows system window dump (color)
您还可以通过ldd
(因为您使用的是Mac,您可能没有ldd
,但google告诉我otool-L
是Mac的解决方案)检查Octave实际使用的库。就我而言,我知道它们是一样的:
$ ldd /usr/local/lib/octave/5.0.0/liboctinterp.so | grep Magick
libGraphicsMagick++-Q16.so.12 => /lib/libGraphicsMagick++-Q16.so.12 (0x00007f858a896000)
libGraphicsMagick-Q16.so.3 => /lib/libGraphicsMagick-Q16.so.3 (0x00007f858a52e000)
$ ldd /usr/bin/gm | grep Magick
libGraphicsMagick-Q16.so.3 => /lib/libGraphicsMagick-Q16.so.3 (0x00007f5041f66000)
一旦知道Octave用于GraphicsMagick的实际库,就可以检查该库是否与libjpeg链接:
$ ldd /lib/libGraphicsMagick++-Q16.so.12 | grep jpeg
libjpeg.so.62 => /lib/x86_64-linux-gnu/libjpeg.so.62 (0x00007f63e910c000)
您还可以从octave配置中获得一些提示:
octave:1> __octave_config_info__.build_environment.MAGICK_CPPFLAGS
ans = -I/usr/include/GraphicsMagick
octave:2> __octave_config_info__.build_environment.MAGICK_LDFLAGS
ans =
octave:3> __octave_config_info__.build_environment.MAGICK_LIBS
ans = -lGraphicsMagick++ -lGraphicsMagick
您的倍频程和gm安装可能与不同的GraphicsMagick库相链接,因此
gm-version
的输出可能不准确。您可能应该从八度音阶本身内部进行检查,如下所示:
octave:1> imformats
Extension | isa | Info | Read | Write | Alpha | Description
----------+-----+------+------+-------+-------+------------
bmp | yes | yes | yes | yes | yes | Microsoft Windows bitmap image
cur | yes | yes | yes | no | yes | Microsoft Cursor Icon
gif | yes | yes | yes | yes | yes | CompuServe graphics interchange format
ico | yes | yes | yes | no | yes | Microsoft Icon
jbg | yes | yes | yes | yes | yes | Joint Bi-level Image experts Group interchange format
jbig | yes | yes | yes | yes | yes | Joint Bi-level Image experts Group interchange format
jpg, jpeg | yes | yes | yes | yes | yes | Joint Photographic Experts Group JFIF format
pbm | yes | yes | yes | yes | yes | Portable bitmap format (black/white)
pcx | yes | yes | yes | yes | yes | ZSoft IBM PC Paintbrush
pgm | yes | yes | yes | yes | yes | Portable graymap format (gray scale)
png | yes | yes | yes | yes | yes | Portable Network Graphics
pnm | yes | yes | yes | yes | yes | Portable anymap
ppm | yes | yes | yes | yes | yes | Portable pixmap format (color)
ras | yes | yes | yes | yes | yes | SUN Rasterfile
tga, tpic | yes | yes | yes | yes | yes | Truevision Targa image
tif, tiff | yes | yes | yes | yes | yes | Tagged Image File Format
xbm | yes | yes | yes | yes | yes | X Windows system bitmap (black/white)
xpm | yes | yes | yes | yes | yes | X Windows system pixmap (color)
xwd | yes | yes | yes | yes | yes | X Windows system window dump (color)
您还可以通过ldd
(因为您使用的是Mac,您可能没有ldd
,但google告诉我otool-L
是Mac的解决方案)检查Octave实际使用的库。就我而言,我知道它们是一样的:
$ ldd /usr/local/lib/octave/5.0.0/liboctinterp.so | grep Magick
libGraphicsMagick++-Q16.so.12 => /lib/libGraphicsMagick++-Q16.so.12 (0x00007f858a896000)
libGraphicsMagick-Q16.so.3 => /lib/libGraphicsMagick-Q16.so.3 (0x00007f858a52e000)
$ ldd /usr/bin/gm | grep Magick
libGraphicsMagick-Q16.so.3 => /lib/libGraphicsMagick-Q16.so.3 (0x00007f5041f66000)
一旦知道Octave用于GraphicsMagick的实际库,就可以检查该库是否与libjpeg链接:
$ ldd /lib/libGraphicsMagick++-Q16.so.12 | grep jpeg
libjpeg.so.62 => /lib/x86_64-linux-gnu/libjpeg.so.62 (0x00007f63e910c000)
您还可以从octave配置中获得一些提示:
octave:1> __octave_config_info__.build_environment.MAGICK_CPPFLAGS
ans = -I/usr/include/GraphicsMagick
octave:2> __octave_config_info__.build_environment.MAGICK_LDFLAGS
ans =
octave:3> __octave_config_info__.build_environment.MAGICK_LIBS
ans = -lGraphicsMagick++ -lGraphicsMagick
您确定Octave使用的
gm
版本与您在终端命令行中使用的版本相同吗?您确定Octave使用的gm
版本与您在终端命令行中使用的版本相同吗?