matlab的人脸检测

时间:2013-06-25 19:20:00

标签: matlab face-detection matlab-cvst

我在我的项目中搜索了matlab的面部检测。 我发现了一个: http://people.kyb.tuebingen.mpg.de/kienzle/fdlib/fdlib.htm

我下载了源代码,但它没有工作,我从matlab得到了这个错误:

  

???未定义的功能或方法' fdmex'对于类型的输入参数   ' UINT8'

     

==>中的错误最小的10秒= fdmex(x',阈值);

主要脚本是:

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

你能找到错误吗?

3 个答案:

答案 0 :(得分:0)

根据您的matlab版本,它看起来像fdlib,附带.dll,将其重命名为.mexw32或您的主机所需的任何内容。您可以通过运行以下来确定:

>> mexext

mexw32

在Matlab命令提示符下。使用mex扩展程序并将fdmex.dll重命名为fdmex.mexw32,或任何mexext返回,并且它应该完美运行。

如果我在我的Windows XP机器上运行,我会得到那美丽的照片:

enter image description here

但是,如果您没有32位计算机,则该软件的作者会在link in the question上写入:

  

请注意,所有版本都针对英特尔奔腾CPU进行了优化。如果   你想在不同的平台上运行它,或者有任何其他平台   问题,请告诉我。

他有自己的个人资料和电子邮件的链接,因此我建议您与他联系以获取64位版本的可执行文件。

答案 1 :(得分: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:)

如果这不起作用,希望macduff会发生,如果实际上确实修复了它,那么它似乎更容易了。 :)

答案 2 :(得分:0)

如果您安装了最新版本的Matlab并安装了计算机视觉系统工具箱,则可以使用vision.CascadeObjectDetector系统对象来检测图像中的面部。