我实际上是Matlab的新手。
我正在尝试在Ubuntu计算机上以八度运行this matlab项目。它具有在其中一个文件(BM3D-Net / library / bm3d-denoising / BM3D.m文件的第342行)中使用的名称为“ bm3d_thr”的功能,如下所示:
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')。
问题是当我尝试运行项目时(说“ demo”),它给出了以下错误:
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文件的源代码。
任何帮助将不胜感激。
谢谢。
答案 0 :(得分:1)
来自Matlab的二进制MEX文件为not compatible with Octave。您需要使用Octave的mex
或mkoctfile --mex
命令从源代码重新编译项目中的所有MEX文件。
如果作者未提供此MEX文件的源代码,则您是SOL。在他们的GitHub存储库上发布问题,要求提供源代码。还有祝你好运。 :)