我有一个关于 MATLAB 中的
CascadeObjectDetector
的问题。在 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
吗?仅仅是 OpenCV CascadeClassifier
吗? detectMultiScale
函数的源代码在哪里?
问题是 matlab 提供了以下对象检测器
现在谈谈opencv。用于人脸检测(通常用于对象检测)的 opencv 函数 cv.HaarDetectObjects() 使用 viola jones 算法,该算法又使用 harr 等特征。
我个人的观点是,实现可能略有不同,但它们本质上具有相同的算法。
如果您仍然不相信并且想使用 matlab 中的 opencv 函数,您可以使用 MEX。这样你就可以使用 matlab 中的 cv.HaarDetectObjects() 。更多详细信息请访问:http://www.mathworks.ch/discovery/matlab-opencv.html