faces
正在這裏填入:
//-- Detect faces
face_cascade.detectMultiScale(frame_gray, faces, 1.1, 2, 0|CASCADE_SCALE_IMAGE, Size(30, 30));
根據OpenCV documentation:
void cv::CascadeClassifier::detectMultiScale ( InputArray image,
std::vector<Rect> & objects,
double scaleFactor = 1.1,
int minNeighbors = 3,
int flags = 0,
Size minSize = Size(),
Size maxSize = Size()
)
其中std::vector<Rect> & objects
(你的情況面)是
矩形矢量,其中每個矩形包含檢測到的 對象,rect角度可能部分在原始圖像之外。
正如你所看到的,objects
是passed by reference允許其修改函數內。
另外std::vector<Type>::size()
會給你你的載體的大小,所以,i<faces.size() is necessary to get the index i inside the bounds of the vector
。
'faces'確實是某種類型的容器(即'std :: vector'或'std :: map')的一個實例,'''只是返回元素的數量它在那個時刻成立。如果你對容器感到困惑,我建議你看看@ http://en.cppreference.com/w/cpp/container –
'faces'被聲明爲'std :: vector faces;'。我不確定如何可以比現在清楚。 –
WhozCraig
OpenCV不是開始學習C++的好地方。從C++開始,沒有任何第三方庫和[一本好書或兩本](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)。獲取C++的基礎知識,然後開始解開OpenCV – user4581301