Oggi vediamo come poter usare la webcam in c++ con la libreria opencv.
Per maggior informazioni guardare la documentazione officiale di opencv 5 oppure la versione precedente opencv 4.
Passiamo al codice:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
//Includo Librerie e namespace #include <opencv2/opencv.hpp> #include <iostream> #include <stdio.h> using namespace cv; using namespace std; int main(int, char**) { Mat frame; //Inizializzo VideoCapture VideoCapture cap; // Apro la camera di default cap.open(0); int deviceID = 0; //Legge automaticamente api di default int apiID = cv::CAP_ANY; //Apro la camera con api selezionato cap.open(deviceID + apiID); //Controlo se e aperta se no stampo errore if (!cap.isOpened()) { cerr << "ERROR! Unable to open camera\n"; return -1; } cout << "Start grabbing" << endl << "Press any key to terminate" << endl; //loop infinito for (;;) { //Aspetto il nuovo frame dalla camera e lo conserva in frame cap.read(frame); //Controlla se e andato tutto bene if (frame.empty()) { cerr << "ERROR! blank frame grabbed\n"; break; } //Guarda il live e aspetta il tasto da tastiera con timeout per vare vedere le immagini imshow("Live", frame); if (waitKey(5) >= 0) break; } return 0; } |
Creazione del file CMakeLists.txt
1 2 3 4 5 |
cmake_minimum_required(VERSION 2.8) project( Camera ) find_package( OpenCV REQUIRED ) add_executable( Camera opencv.cpp ) target_link_libraries( Camera ${OpenCV_LIBS} ) |
Poi andiamo nella cartella del progetto ed eseguiamo i seguenti comandi
1 2 3 |
cmake . make ./Camera |