2013-06-25 165 views
2

我搜索matlab人臉檢測到我的項目。 我發現一個: http://people.kyb.tuebingen.mpg.de/kienzle/fdlib/fdlib.htmmatlab人臉檢測

我下載的源代碼,但它沒有工作,我得到了從MATLAB的錯誤:

??? Undefined function or method 'fdmex' for input arguments of type 'uint8'.

Error in ==> tinytest at 10 s = fdmex(x', threshold);

主要腳本是:

x = imread('geeks.jpg'); 

% decision threshold. 
% change this to a smaller value, if too many false detections occur. 
% change it to a larger value, if faces are not recognized. 
% a reasonable range is -10 ... 10. 
threshold = 0; 

imagesc(x); hold on; colormap gray; 
s = fdmex(x', threshold); 

for i=1:size(s,1) 
    h = rectangle('Position',[s(i,1)-s(i,3)/2,s(i,2)-s(i,3)/2,s(i,3),s(i,3)], ... 
     'EdgeColor', [1,0,0], 'linewidth', 2); 
end  

axis equal; 
axis off 

你能找到錯誤嗎?

回答

0

根據你的matlab版本,它看起來像fdlib,帶有.dll,將它重命名爲.mexw32或任何你的主機想要的東西。您可以通過運行確定:

>> mexext 

mexw32 

在Matlab命令提示符下。使用mex擴展名並將fdmex.dll重命名爲fdmex.mexw32,或者任何mexext返回,並且它應該完美無缺地運行。

如果我在我的Windows XP機器上運行,我得到那個美麗的picure:

enter image description here

但是,如果你沒有一個32位機,該軟​​件的作者在link in the question寫:

Please note that all builds were optimized for Intel Pentium CPUs. If you would like to run it on a different platform, or have any other questions, please let me know.

他有一個鏈接到他的個人資料和電子郵件,所以我建議他與64位版本的可執行文件聯繫。

+0

我將.dll更改爲.mexw64,但我又收到另一個錯誤: ???無效的MEX文件'C:\ ran \ Dropbox \ IST Project \ face detection \ face \ fdmex.mexw64': C:\ ran \ Dropbox \ IST Project \ face detection \ face \ fdmex.mexw64אינוחוקי ביישוםWin32。 錯誤==> tinytest at 11 s = fdmex(x',threshold); – user2299317

+0

@ user2299317,如果你使用的是64位窗口,那麼你需要一個64位的DLL。 fdmex.dll是一個32位的DLL。聽起來你需要重新編譯源代碼。 – macduff

+0

我該如何重新編譯源代碼? – user2299317

0

通常當我看到一個UINT8錯誤和灰度圖像,它的紅旗,我認爲我需要做

colorImg=imread('imageName.jpg') 

% Even if the image is grayscale, if its png or jpg, 
% it will load in as a color image almost exclusively 

img=rgb2gray(colorImg) 

如果你看一下IMG輸出,你現在看到double類型的其而不是uint8 :)

如果這不起作用,希望macduffs會,我的看起來更容易,如果這實際上確實修復它。 :)

0

如果您安裝了計算機視覺系統工具箱的Matlab的最新版本,則可以使用vision.CascadeObjectDetector系統對象檢測圖像中的臉部。