//OpenCVを使って,USBカメラより画像を入力し処理するプログラム例 //使用ソフト: // Windows XP Professional SP3 // Visual C++ 2008 Professional // OpenCV 1.1pre1 // Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ (x86) //アプリケーションの種類: // Win32 コンソール アプリケーション //メモ: // cv110.dll, cxcore110.dll, highgui110.dllをコピーしておく //履歴: // 2009.04.24 ver.1.0 動作確認 #include #include #include #include #pragma comment(lib, "cv.lib") #pragma comment(lib, "cxcore.lib") #pragma comment(lib, "highgui.lib") int main(void) { char *winc="Camera"; //ウィンドウの名前 char *win1="Image1"; CvCapture *cam=cvCreateCameraCapture(CV_CAP_ANY); //カメラ初期化 if(!cam){ printf("カメラが見つかりません.\n"); return 1; } cvNamedWindow(winc,CV_WINDOW_AUTOSIZE); //ウィンドウ作成 cvMoveWindow(winc,0,0); cvNamedWindow(win1,CV_WINDOW_AUTOSIZE); cvMoveWindow(win1,350,0); IplImage *imgc=NULL; imgc=cvQueryFrame(cam); //カメラ画像取得(サイズ取得のため) IplImage *img1=cvCreateImage(cvGetSize(imgc),IPL_DEPTH_8U,1); while(1){ int k=cvWaitKey(1); if (k==0x1B) break; //ESCキーで終了 imgc=cvQueryFrame(cam); //カメラ画像の取得 cvCvtColor(imgc,img1,CV_BGR2GRAY); //カラーからグレーへ変換 //2値化(AdaptiveThreshold) cvAdaptiveThreshold(img1,img1,255,CV_ADAPTIVE_THRESH_MEAN_C,CV_THRESH_BINARY,3,5); cvShowImage(winc,imgc); //カメラ画像の表示 cvShowImage(win1,img1); //処理した画像の表示 } //解放処理 cvReleaseImage(&img1); cvDestroyWindow(win1); cvDestroyWindow(winc); cvReleaseCapture(&cam); return 0; }