Ошибка функции mex при выполнении проекта matlab в октаве - PullRequest
1 голос
/ 17 марта 2019

Я на самом деле новичок в Matlab.

Я пытаюсь запустить этот проект matlab в октаве на моей машине с 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') в моем пути к октаве.

Проблема в том, что когда я пытаюсь запустить проект (говоря «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 Ответ

1 голос
/ 20 апреля 2019

Бинарные MEX-файлы из Matlab не совместимы с Octave . Вам нужно перекомпилировать все MEX-файлы в вашем проекте из исходного кода с помощью команд Octave * mex или mkoctfile --mex.

Если авторы не предоставили источник для этого MEX-файла, вы СОЛ. Опубликуйте их репозиторий на GitHub с просьбой предоставить исходный код. И удачи. :)

...