Capturar imágenes de una cámara con OpenCV

Nota 1: este código debería funcionar en la mayoría de las cámaras. Si llegáis a probar este código escribid un comentario si os funciona, en la mía sólo funciona durante un tiempo determinado. Gracias.

Nota 2: es posible que tengáis que instalar el paquete ‘libusb’ con: sudo apt-get install libusb-1.0-0-dev.

Cuando uno está trabajando con Visión Artificial resulta indispensable tomar imágenes desde una cámara. Con OpenCV puedes codificar una aplicación sencilla para tal efecto. Para ello necesitas tener instalada la librería OpenCV, y saber compilar dicho programa.

Aquí está el código para capturar imágenes desde una cámara:

#include 
#include 
#include 
#include 
#include 

cv::VideoCapture TheVideoCapturer;
cv::Mat bgrMap;

int main(int argc, char *argv[]) {
  char key = 0;

  int numSnapshot = 0;
  std::string snapshotFilename = "0";

  std::cout << "Press 's' to take snapshots" << std::endl;
  std::cout << "Press 'Esc' to exit" << std::endl;

  TheVideoCapturer.open(0);

  if (!TheVideoCapturer.isOpened()) {
    std::cerr<<"Could not open video"<(&(std::ostringstream() << numSnapshot))->str();
	}

  key=cv::waitKey(20);
  }
}