首页 > 解决方案 > 错误:在 Octave 4.2.2 中未定义 rgb2gray

问题描述

我是 Octave 平台的新手,正在尝试图像处理版本 2.8.0 的图像工具。我已经使用“pkg install -forge image”安装了这个工具。它安装完美,甚至包含在包列表中。现在,当我尝试将彩色图像转换为灰度时,它给了我以下错误。

警告:“rgb2gray”功能属于 Octave Forge 的图像包,但尚未实现。
请阅读http://www.octave.org/missing.html以了解如何贡献缺失的功能。
错误:'rgb2gray' 在第 1 行第 1 列附近未定义 *

这是我的代码:

    pkg load image;
    img = imread('IMG_20170815_004922_213.jpg');
    img_gray = rgb2gray(img);
    imshow(img_gray);

我已经阅读了一些错误,这些错误是由于没有类似于导入语句的“pkg load image”行。但就我而言,即使这个陈述也没有解决我的问题。我正在使用 Octave Version-4.2.2 、Windows 7 64 位和 i5 处理器。

标签: imageimage-processingoctave

解决方案


镜像包在安装时决定是否安装该rgb2gray功能。Octave 4.4 包含一个实现,rgb2gray因此安装时的映像包执行以下操作:

  1. 在另一个进程中启动 Octave ( octave -qf)
  2. 检查rgb2gray这个新进程中是否存在
  3. rgb2gray仅在缺少功能时才添加到要安装的功能列表中

这意味着如果在安装包时启动一个新的 Octave 进程有这样的符号,那么您最终可能会得到没有该功能的图像包。我不确定这是怎么发生的,因为检查是在启动 octave 之后完成的,而没有读取任何初始化文件。

一种可能性是,如果您在 Octave 中有一些 hack 来自动加载映像包,并且您完成的映像包的安装是升级。

解决方法:卸载再安装镜像包。


推荐阅读