【发布时间】:2019-03-17 06:50:04
【问题描述】:
我实际上是 matlab 新手。
我正在尝试在我的 ubuntu 机器上以倍频程运行 this matlab 项目。它有一个名为“bm3d_thr”的函数,用于其中一个文件(BM3D-Net/library/bm3d-denoising/BM3D.m 文件的第 342 行),如下所示:
y_hat = bm3d_thr(z, hadper_trans_single_den, Nstep, N1, N2, lambda_thr2D,...
lambda_thr3D, tau_match*N1*N1/(255*255), (Ns-1)/2, (sigma/255), thrToIncStep, single(Tfor), single(Tinv)', inverse_hadper_trans_single_den, single(thr_mask), Wwin2D, smallLN, stepFS );
我的八度路径中还有相应的 mex 文件(名称为“bm3d_thr.mexa64”)。
问题是当我尝试运行项目时(通过说“演示”),它给出了以下错误:
error: 'bm3d_thr' undefined near line 342 column 9
error: called from
BM3D at line 342 column 7
bm3d_net_res at line 5 column 7
demo at line 9 column 7
有人可以帮我弄清楚这里出了什么问题并让它工作。我想问题是我的机器上没有编译 mex 文件,但作者没有提供这个 mex 文件的源代码。
任何帮助将不胜感激。
提前致谢。
【问题讨论】:
-
该 MEX 文件适用于在 64 位 Linux 上运行的 MATLAB。如果不先重新编译它,它将无法与 Octave 一起使用。如果你没有资源,那你就倒霉了。
-
您尝试运行的项目中的那个库来自另一个项目 (cs.tut.fi/~foi/GCF-BM3D/index.html#ref_software)。原网站不提供 Mex 文件的源代码。
-
哦!这听起来很不幸。无论如何,感谢@CrisLuengo 和 Rish 的回复。我想,我别无选择,只能离开 octave 并尝试在 matlab 本身中运行该项目。