給未來的裕翔
MCALab toolbox是一套拿來做image decomposition的工具
不過它內附的mexglx檔我都無法使用
因此另外各自下載了CurveLab和RWT的toolbox
以下(憑印象)講述如何重製mexglx
RWT比較簡單
下載經過解壓縮的資料夾名稱為rwt
開啟Matlab切換到rwt資料夾裡
執行compile即可, done!
CurveLab比較麻煩
下載經過解壓縮的資料夾名稱為CurveLab-2.1.2
首先, 安裝fftw2-devel的package
以terminal進入CurveLab-2.1.2後
make &> log.txt
去看log.txt訊息
可以看出似乎有些檔案需要添加#include <cstring>
像是CurveLab-2.1.2/fdct_wrapping_cpp/src底下的offmat.hpp和offvec.hpp
由於它們都有#include "fdct_wrapping_inc.hpp"
於是我決定把#include <cstring>添加加在fdct_wrapping_inc.hpp裡
接著執行make &> log2.txt
可以發現CurveLab-2.1.2/fdct_usfft_cpp/src也有類似問題
同上面的分析, 最後把#include <cstring>加在fdct_usfft_inc.hpp裡
以下都差不多, 所以都只列關鍵步驟
make &> log3.txt
CurveLab-2.1.2/fdct3d/src有問題
把#include <cstring>加在commoninc.hpp裡
make &> log4.txt
CurveLab-2.1.2/fdct3d_outcore/src有問題
把#include <cstring>加在commoninc.hpp裡
到此, 還剩兩個步驟
修改CurveLab-2.1.2/makefile.opt裡面的三個地方如下
FFTW_DIR = /usr/
INCLUDES = -I/usr/include
LIBS = -L/usr/lib -lfftw
由於分散在子資料夾的makefile都被寫死, 都要去複製
${FFTW_DIR}/fftw/.libs/libfftw.a
所以乾脆做個連結檔比較省事
mkdir -p /usr/fftw/.libs
(-p是如果目標目錄的上層目錄不存在, 會自動建立)
ln -s /usr/lib/libfftw.a /usr/fftw/.libs/libfftw.a
最後最後, make matlab, 搞定^^
接下來就是把MCALab自帶的mexglx全部取代掉
然後就可以順利執行裡面的script了
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment