星期五, 3月 07, 2014

最後,mexopenCV 在 matlab下一個簡單的實作

我的mexopenCV,經過前置作業error的解決,終於編好了,可以用了吧??

一在matlab run下去,就出現傳說中的Invalid MEX file。差點拿電腦起來砸!!!
不過,這個錯誤在之前爬文時就有看見,所以就是我的openCV版本太多,compile失敗太多次的結果吧。
回到/Applications/MATLAB_R2013b.app/bin/maci64 中,一不作二不休,把目錄下的所有 libopencv___.dylib全砍了。
終於,它乖乖的可以在matlab下執行了。

我現在執行的是東大的code,不過我個人把它修改過了,將兩個code連結起來,就可以啟動camera,同時做人臉辨視:

% Load a face detector and an image
detector = cv.CascadeClassifier('/Users/chaoh2/Documents/MATLAB/haarcascade_frontalface_alt.xml');

% Connect to a camera
camera = cv.VideoCapture();
pause(1);

for i = 1:100
% Capture frame
frame = camera.read; 

% Preprocess
gr = cv.cvtColor(frame, 'RGB2GRAY');
gr = cv.equalizeHist(gr);

% Detect
boxes = detector.detect(gr, 'ScaleFactor',  1.3, ...
                            'MinNeighbors', 2, ...
                            'MinSize',      [30, 30]);
% Draw results
imshow(frame);

for i = 1:numel(boxes)
        rectangle('Position',  boxes{i}, ...
                  'EdgeColor', 'g');
end
    
pause(0.001);
end

camera.delete;
pause(1);
close all

突然有了小小的成就感,不必砸電腦了。

沒有留言:

//for syntaxhighlighter 3 //看一下載入的JS模組有哪些,不要的就刪掉 //end syntaxhighlighter 3