カメラから画像を取得する

OpenCVを使ってカメラから画像を取得するプログラムを紹介します。

まず、MFCでダイアローグベースのプロジェクトを作成します。

そして、OpenCVのインクルードやライブラリのリンクを行います。

それが終わったら、OKボタンをダブルクリックして、以下のようにコードを組みます。

void COpenCVDlg::OnBnClickedOk()
{
	// TODO: ここにコントロール通知ハンドラー コードを追加します。
	//CDialogEx::OnOK();
	int key;
	CvCapture* src;
	IplImage* frame;
	
	cvNamedWindow("カメラ映像");
	
	src=cvCaptureFromCAM(0);
	if(src==NULL){
		cvWaitKey(0);
		return;
	}
	while(1){
		frame=cvQueryFrame(src);
		cvShowImage("カメラ映像",frame);
		key=cvWaitKey(33);
		if(key==27)break;
	}
	cvDestroyWindow("カメラ映像");
	cvReleaseCapture(&src);

	return;
}

あとは、実行するとカメラから画像を取得して表示されます。終わるときは、ESCをおします。

ポイントはcvCaptureFromCAMという命令です。

CvCapture* cvCaptureFromCAM(int index);

indexでカメラの番号を設定します。cvWaitKey(33)としているので33msecごとに画像を取得します。

著者:安井 真人(やすい まさと)