Saturday, March 13, 2010

MCALab安裝到可以使用

給未來的裕翔

MCALab toolbox是一套拿來做image decomposition的工具

不過它內附的mexglx檔我都無法使用

因此另外各自下載了CurveLabRWTtoolbox

以下(憑印象)講述如何重製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.hppoffvec.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了


No comments:

Post a Comment