#matlab #octave #mex
#matlab #octave #mex
Вопрос:
На самом деле я новичок в matlab.
Я пытаюсь запустить этот проект matlab в octave на моей машине Ubuntu. В нем есть функция с именем ‘bm3d_thr’, используемая в одном из файлов (строка 342 файла BM3D-Net / library /bm3d-denoising / BM3D.m), как показано ниже:
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’) в моем octave path.
Проблема в том, что когда я пытаюсь запустить проект (сказав «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.
Будем признательны за любую помощь.
Заранее спасибо.
Комментарии:
1. Этот MEX-файл предназначен для MATLAB, работающего в 64-разрядном Linux. Он не будет работать с Octave без его предварительной перекомпиляции. Если у вас нет исходных текстов, вам не повезло.
2. Эта библиотека в проекте, который вы пытались запустить, взята из anthor project ( cs.tut.fi /~foi/GCF-BM3D/index.html#ref_software ). Исходный сайт не предоставляет исходный код файлов Mex.
3. о! Это звучит неудачно. В любом случае, спасибо @CrisLuengo и Rish за ответ. Я думаю, у меня нет другого выбора, кроме как уйти из octave и попробовать запустить проект в самом matlab.
Ответ №1:
Двоичные MEX-файлы из Matlab несовместимы с Octave. Вам необходимо перекомпилировать все MEX-файлы в вашем проекте из исходного кода, используя команды Octave mex
или mkoctfile --mex
.
Если авторы не предоставили исходный код для этого MEX-файла, вы SOL. Опубликуйте проблему в их репозитории GitHub с запросом исходного кода. И удачи. 🙂