Octave 倍频程:';rgb2gray';未定义错误

Octave 倍频程:';rgb2gray';未定义错误,octave,Octave,请建议如何使rgb2gray以八度工作。 我找到了,但仍然希望使用rgb2gray功能,而不是手动计算每个颜色通道 我运行的代码: I = imread('smile.jpg'); G = rgb2gray(I); 我得到的错误是: error: 'rgb2gray' is undefined near line 10 column6 附加: 八度版本:3.6.4 已安装映像包。版本:2.0.0。 “rgb2gray.m”安装在C:\Octave\share\Octave\package

请建议如何使
rgb2gray
以八度工作。 我找到了,但仍然希望使用
rgb2gray
功能,而不是手动计算每个颜色通道

我运行的代码:

I = imread('smile.jpg');
G = rgb2gray(I);

我得到的错误是:

error: 'rgb2gray' is undefined near line 10 column6

附加:
八度版本:3.6.4
已安装映像包。版本:2.0.0。
“rgb2gray.m”安装在C:\Octave\share\Octave\packages\image-2.0.0中


谢谢,

问题是您没有加载软件包。当您键入
pkg list
时,您可以找到在名称前用星号加载的名称。加载带有
pkg Load image
的包


必须加载一个包,这是大多数用户觉得奇怪的事情,但是如果你与其他语言比较,比如Python、Perl或C++,你会期望它们在缺省情况下可以使用系统中的每个库吗?<代码>导入< <代码> > <代码>使用< /COD>,或<代码> >包含< /COD>每个库。有关更多详细信息,请参见。

函数rgb2ntsc从历史上一直是倍频程的一部分(我的意思是从1994年开始)。然而,自Octave 4.4版(2018年发布)以来,该功能已从Octave转移到Octave Forge图像包。自2.8.0版(2018年发布)以来,它一直是Octave Forge image软件包的一部分

基本上,如何使用rgb2ntsc取决于您的版本:

倍频程>=4.4.0 您需要安装并加载映像包版本2.8.0或更高版本(最新版本为2.12.0)

不幸的是,它对我不起作用。因此,我使用了代码,它是有效的。哪个来自

我正在看Andrew Ng的五周讲稿。人工智能机器学习课程


请参阅:

WooW。成功了。超级的。谢谢对不起,我可以投赞成票。还没有评级。您关于导入的解释现在完全有道理了。@vbnk您至少还可以将其标记为正确答案。类似于“向下投票”按钮下的灰色复选按钮。
octave> pkg install -forge image
octave> pkg load image
    function yiq_img = rgb2ntsc(rgb_img)
%RGB2NTSC Transform a colormap or image from red-green-blue (RGB) 
%   color space to luminance-chrominance (NTSC) space. 
%   The input may be of class uint8, uint16, single, or double. 
%   The output is of class double.

% https://octave.sourceforge.io/octave/function/rgb2ntsc.html

if isa(rgb_img, 'uint8') || isa(rgb_img, 'uint16') || ...
        isa(rgb_img, 'double')
    
    red = rgb_img(:, :, 1);
    green = rgb_img(:, :, 2);
    blue = rgb_img(:, :, 3);
    
    y = 0.299 * red + 0.587 * green + 0.114 * blue;
    i = 0.596 * red - 0.274 * green - 0.322 * blue;
    q = 0.211 * red - 0.523 * green + 0.312 * blue;
    
    yiq(:, :, 1) = y;
    yiq(:, :, 2) = i;
    yiq(:, :, 3) = q;
    
    yiq_img = double(yiq);
else
    error('Input image datatype is not supported')
end

end