カメラでキャプチャした画像をモノクロ変換する(反転あり)
#include <cv.h>
#include <highgui.h>
#include <ctype.h>
#include <stdio.h>
#int main(int argc, char **argv)
{
CvCapture *capture = 0;
IplImage *dst = 0;
double w = 320, h = 240;
int c;
IplImage *mono = 0;
// (1)コマンド引数によって指定された番号のカメラに対するキャプチャ構造体を作成する
if (argc == 1
|| (argc == 2 && strlen(argv[1]) == 1 && isdigit(argv[1][0])))
capture = cvCreateCameraCapture(argc == 2 ? argv[1][0] - '0' : 0);
/* この設定は,利用するカメラに依存する */
// (2)キャプチャサイズを設定する.
cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, w);
cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, h);
cvNamedWindow("Capture", CV_WINDOW_AUTOSIZE);
cvNamedWindow("mono", CV_WINDOW_AUTOSIZE);
// (3)カメラから画像をキャプチャする
while (1) {
dst = cvQueryFrame(capture);
c = cvWaitKey(10);
if (c == '\x1b')
break;
cvShowImage("Capture", dst);
// (2)画像形状の変更を行う
/* グレースケール画像用にメモリを確保 */
mono = cvCreateImage(cvGetSize(dst), IPL_DEPTH_8U, 1);
/* カラー画像をグレースケールに変換 */
cvCvtColor(dst, mono, CV_BGR2GRAY);
// (3)結果を表示する
cvShowImage("mono", mono);
}
cvDestroyWindow("mono");
cvReleaseCapture(&capture);
cvDestroyWindow("Capture");
return 0;
}
最終更新:2009年07月30日 10:54