【问题标题】:eror: rgb2gray undefined in Octave 4.2.2错误:在 Octave 4.2.2 中未定义 rgb2gray
【发布时间】:2018-12-23 18:43:46
【问题描述】:

我是 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 处理器。

【问题讨论】:

  • 它说它不存在。你有没有想过它可能不存在?
  • rgb2gray 应该包含在 image-2.8.0 中。你能检查一下,你的安装中有“.../image-2.8.0/rgb2gray.m”吗?您是否在启动时看到一些警告,例如“blabla shadows blabla”?
  • 为我工作。你确定你使用的是 Octave 4.2 吗?重新安装镜像包。
  • @AnderBiguri 我使用了“pkg list”命令,它包括图像工具。即使在图像工具中,它也由图像包类型转换中的'rgb2gray'组成。
  • 另外,正如 carandraug 在他的回答中指出的那样,octave 4.4.0 现已推出,它提供了开箱即用的功能,无需加载图像包。您可能需要考虑将您的 octave 升级到最新版本

标签: image image-processing octave


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 我需要一个建议,我应该继续使用 Octave 还是转移到 Matlab。你认为哪一个更适合图像处理?既然 Octave 是开源的,那么它是坚持使用它的唯一理由吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-20
  • 1970-01-01
相关资源
最近更新 更多