11

我有一个关于CascadeObjectDetectorMATLAB 的问题。在 MATLAB 的源代码中CascadeObjectDetector,我看到:

pCascadeClassifier; % OpenCV pCascadeClassifier 

然后我看到:

%------------------------------------------------------------------
% Constructor
%------------------------------------------------------------------
function obj = CascadeObjectDetector(varargin)              
    obj.pCascadeClassifier = vision.internal.CascadeClassifier;
    ...
end

并在stepImpl

bbox = double(obj.pCascadeClassifier.detectMultiScale(I, ...
            double(obj.ScaleFactor), ...
            uint32(obj.MergeThreshold), ...            
            uint32(obj.MinSize), ...
            uint32(obj.MaxSize)));

你知道,什么是vision.internal.CascadeClassifier?它只是 OpenCVCascadeClassifier吗?函数的源代码在哪里detectMultiScale

4

1 回答 1

0

问题是matlab提供了以下对象检测器

  1. 模板匹配
  2. 斑点分析
  3. 中提琴琼斯算法更多信息在这里: http: //www.mathworks.ch/products/computer-vision/description4.html

现在谈谈opencv。用于人脸检测(通常用于对象检测)的 opencv 函数 cv.HaarDetectObjects() 使用 viola jones 算法,该算法又使用类似 harr 的特征。

我个人的看法是,实现可能略有不同,但它们本质上具有相同的算法。

如果您仍然不相信并想使用 matlab 中的 opencv 函数,您可以使用 MEX。因此,您可以使用 matlab 中的 cv.HaarDetectObjects()。更多详细信息,请访问:http: //www.mathworks.ch/discovery/matlab-opencv.html

于 2012-10-01T14:20:33.313 回答