Octave 图像的八度离散余弦变换

Octave 图像的八度离散余弦变换,octave,Octave,根据倍频程,dct2(x)计算矩阵x的二维离散余弦变换,但当我尝试以下代码时,我得到了一个错误,我可能会做错什么 A= imread('img.jpg') [m,n]=size(A) B=dct2(A) 它返回一个错误: ERROR: 'dct2' undefined near line 4 column 3 我试着检查A是否是矩阵,它是否是矩阵,那么bug在哪里?我正在windows上使用OCtave 3.2.4。OCtave找不到函数定义。您必须首先安装信号包,您可以从下载它,并在文件的

根据倍频程,
dct2(x)
计算矩阵
x
的二维离散余弦变换,但当我尝试以下代码时,我得到了一个错误,我可能会做错什么

A= imread('img.jpg')
[m,n]=size(A)
B=dct2(A)
它返回一个错误:

ERROR: 'dct2' undefined near line 4 column 3

我试着检查
A
是否是矩阵,它是否是矩阵,那么bug在哪里?我正在windows上使用OCtave 3.2.4。

OCtave找不到函数定义。您必须首先安装信号包,您可以从下载它,并在文件的同一文件夹中,提示octave并调用:

pkg install signal-1.2.0.tar.gz 
或者,正如@carandraug在评论中所建议的,由于Octave 3.4,您可以通过键入以下内容自动下载和安装软件包:

pkg install -forge signal
在出现权限错误时,尝试使用
sudo octave
提示,并在安装后添加:

pkg load signal

在使用
dct2
功能之前。

无需实际下载信号包。他可以使用
pkg安装-forge signal
命令代替。另外,别忘了加载软件包(它们不再自动加载)我使用的是Octave 3.2.4!而且它不满足依赖关系!:(在我的版本中,它说-forge不存在:(@sadaf2605是的,您可以将octave升级到>=3.6的版本以满足“信号”包的依赖性,或者选择在此提供的包的早期版本。碰巧与octave 3.2.4兼容的较新版本是signal-1.1.0。希望它能有所帮助!这对我非常有效,谢谢!FWIW,我还必须安装
控件
我的特定倍频程安装软件包(以及
sudo-apt-install liboctave-dev
首先从我的CLI)为了安装
signal
,以防其他人遇到此问题。您可以指定您使用的操作系统和倍频程版本吗?以及如何安装倍频程?倍频程软件包的安装可能会有所不同。我使用的是倍频程3.2.4!:SY您没有指定(操作系统)操作系统。无论如何,您必须升级Octave,因为信号包至少需要3.6.0。升级!在Windows中安装它有多个选项。您可以在MinGW和MSV之间进行选择。有关说明和下载链接,请参阅。