blog.monophile.net

Takaaki Yamamoto

東京工業大学において計算機科学と応用数学を学び、情報科学芸術大学院大学[IAMAS]においてメディア表現を専攻し修了。 現在は digitiminimi Inc. において、インフラエンジニアとして生計をたててている。 また、計算を主題に制作を行い、現代音楽作品や公共インスタレーション作品など技術提供を行う。 三輪眞弘に師事する。

List

OpenCVでwebcamから画像を取得する

画像を取得して画面に表示

source

/* webcam_test.cpp */
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
const string WINDOW_NAME = "webcam test";

void key_handler(int key) {
 if (key == 27 || key == 'q') {
  cv::destroyAllWindows();
  exit(EXIT_SUCCESS);
 }
}

int main(void) {
 namedWindow(WINDOW_NAME, WINDOW_AUTOSIZE);
 VideoCapture *cap = new VideoCapture(1);
 Mat *img = new Mat();
 if (cap == nullptr || !cap->isOpened()) {
  cerr << "cannot open video device" << endl;
  exit(EXIT_FAILURE);
 }
 while (true) {
  key_handler(waitKey(1));
  (*cap) >> (*img);
  imshow(WINDOW_NAME, *img);
 }
 return EXIT_SUCCESS;
}

compile

以下のようにコマンドを打てばコンパイルされるはずです。

$ g++ -std=c++11 -o webcam_test webcam_test.cpp  -lhighgui -lopencv_core