標籤:super pixel computer vision 64bit greg mori matlab
SuperPixel最初由Xiaofeng Ren提出(ICCV 2003),但我在網路上尚未找到有關這個最初想法的原始碼;比較容易獲得的倒是Greg Mori(CVPR 2004,ICCV 2005)基於Xiaofeng Ren演算法做的代碼https://www.cs.sfu.ca/~mori/research/superpixels/.程式碼封裝分為32bit版和64bit版.
這個代碼用到了C與M混合編程,並非是拿來即可啟動並執行,在代碼和matlab的配置上還是有一定需要注意的問題。
搜尋了下,有關Greg Mori代碼的配置主要都是針對32bit的.網路上共有兩個版本.一個是Linux(32bit+matlab 2010a)下的配置指導:http://kittipatkampa.wordpress.com/2011/02/28/how-to-install-greg-moris-superpixel-matlab-code/
配置的步驟非常詳細,對產生的問題也是有預見性.參考價值較大.
另一個版本是國內研究者的簡單修改版http://blog.csdn.net/likuan/article/details/7389761也是針對32bit版進行的測試,適用於windows版本的測試。
本人下載的是64bit的程式包,在配置上還是遇到了上述兩種修改方法都不一樣的地方。先把具體過程列出來。
1.從berkeley上下載image segmentation的benchmark的庫,解壓到你的superpixel代碼的檔案夾下(假設你的代碼解壓到名為superpixel的檔案夾下),解壓後的目錄結構如下:
2.按照kittipatkampa的方法修改‘segbench/Dataset/bsdsRoot.m‘中的路徑;
3.mex目錄yu_imncut下的所有C檔案,要逐個mex,‘mex *.c’不好用....這步驟和上述兩種方法差不多,唯一不同由於是64bit上運行,mex命令要求帶如下參數:
mex -O -largeArrayDims csparse.cmex -O -largeArrayDims ic.cmex -O -largeArrayDims imnb.cmex -O -largeArrayDims parmatV.cmex -O -largeArrayDims spmd1.c
你也可以把這些命令寫入一個名為‘make.m‘檔案,batch運行;
4.修改sp_demo.m的頭部,加入對當前路徑的擷取(這個基本參照likuan的指導)
s_cur_path = fileparts(mfilename(‘fullpath‘));cd(s_cur_path);addpath(genpath(s_cur_path));
5.likuan的guidence中要求修改cncut.m中的兩處spmd為spmd2,這個在64bit代碼中不需要,針對64bit代碼,此步可以忽略;
6.Then Enjoy It!
7.一些註記 由於不同系統 不同內建編譯器(gcc,vc2008,2010 etc ),建議需要把代碼移植到不同機器上的童鞋在運行代碼前都要把原先mex的檔案刪除,然後重新mex,這樣可以避免一些不必要的報錯.
當然代碼中還是有些warning的,本人較懶 還來不及深究 哪位同好有好的suggestion pm我