MATLAB使用OpenCv CascadeClassifier吗?

Ego*_*orD 10 matlab opencv vision matlab-cvst

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

pCascadeClassifier; % OpenCV pCascadeClassifier 
Run Code Online (Sandbox Code Playgroud)

然后我看到:

%------------------------------------------------------------------
% Constructor
%------------------------------------------------------------------
function obj = CascadeObjectDetector(varargin)              
    obj.pCascadeClassifier = vision.internal.CascadeClassifier;
    ...
end
Run Code Online (Sandbox Code Playgroud)

并在stepImpl:

bbox = double(obj.pCascadeClassifier.detectMultiScale(I, ...
            double(obj.ScaleFactor), ...
            uint32(obj.MergeThreshold), ...            
            uint32(obj.MinSize), ...
            uint32(obj.MaxSize)));
Run Code Online (Sandbox Code Playgroud)

你知道vision.internal.CascadeClassifier吗,是什么?它只是OpenCV CascadeClassifier吗?detectMultiScale功能的源代码在哪里?

mku*_*use 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