Ładowanie klasyfikatora kaskadowego - Haar if( face_cascade.load( face_cascade_name ) == 0 )
cout << "Błąd wczytywania klasyfikatora twarzy! \n"; return -1;
if( eyes_cascade.load( eyes_cascade_name ) == 0 )
cout << "Błąd wczytywania klasyfikatora oczu! \n"; return -1;
int camera_device = parser.get<int>("camera"); VideoCapture capture;
//-- 2. Otwieranie strumienia wideo capture.open( camera_device ); if ( capture.isOpened() == 0 )
cout << "Nie udało się otworzyć strumienia wideo \n"; return -1;
Mat frame; while ( capture.read(frame) )
if( frame.empty() )
cout << "Brak ramki. -- Wyjście z pętli! \n"; break; //wyjście z pętli
//-- 3. Stosowanie klasyfikatorów do bieżącej ramki wideo wykryjIWyswietl( frame ); //Główna funkcja, zawiera główny algorytm if( waitKey(10) == 27 ) break; // wyjście z pętli
return 0; }
void wykryjIWyswietl( Mat frame ) { Mat frame_gray; cvtColor( frame, frame_gray, COLOR_BGR2GRAY ); equalizeHist( frame_gray, frame_gray );
//-- Wykrywaj twarze std::vector<Rect> faces; face_cascade.detectMultiScale( frame_gray, faces ); for ( size_t i = 0; i < faces.size();