キャプチャーした画像をモノクロに変換

カメラでキャプチャした画像をモノクロ変換する(反転あり)


参照先
元コード(カメラからの画像キャプチャ)
追加コード(grayscale)
一番下にファイルをアップロードしました、実行されたウィンドウには反転された画像が出力されるようです(反転修正済コードを作成しました)
反転修正済コード(キャプチャーした画像をモノクロに変換(反転修正済))



#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
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。
添付ファイル