MotoJapan's Tech-Memo

技術めも

【 opencv 基礎知識 2 】 異常検知アプリ作成!② -プロジェクト準備とグレースケール画出し-

前回はとりあえず下準備でした!

 

今回はプロジェクト起こしてから、画出しまで!

 

①プロジェクトの準備


vs2010から「win32コンソールアプリケーション」を起動。

 

*ハマりポイント①

win7win32コンソールアプリケーションのプロジェクトをイニシャライズして、そのままだとビ・ル・ド・で・き・な・い!w

 

「LINK : fatal error LNK1123: COFF への変換中に障害が発生しました: ファイルが無効であるか、または壊れています。」

解決策:

 * Visual C++ Service Packが古いので更新

とかありますが、僕は下のやつで解決。

 * プロジェクトのプロパティ

   →構成プロパティ

    →マニフェストツール

     →入力と出力

      →埋め込みマニフェストを”いいえ”に !

 

 

*ハマりポイント②

 リンク、、がんばる。。

 

 

 

opencvの使い方 (グレースケールの映像を出す)


出力はこんな感じ

f:id:motojapan:20150201150414p:plain

 

ソースは以下

 

//カメラの番号
const int camera_number = 0;


//作るウィンドウの名前
char window_name[] = "opencv_test_code";

 

//終了コード
const int ESC_KEY = 27;

 

//ウィンドウを作成
cvNamedWindow( window_name, CV_WINDOW_FULLSCREEN );

 

//カメラからのビデオキャプチャを初期化
//PCにwebcamが2台刺さっていれば、2台目はcamera_number=1で確認できます。
CvCapture *video_capture = cvCreateCameraCapture( camera_number );

 

//ビデオキャプチャの縦横ピクセルを設定
const int width = 1280;
const int height = 720;

cvSetCaptureProperty ( video_capture, CV_CAP_PROP_FRAME_WIDTH, width );
cvSetCaptureProperty ( video_capture, CV_CAP_PROP_FRAME_HEIGHT, height );

 

//グレースケール画
IplImage* gray = cvCreateImage( cvSize( width, height ), IPL_DEPTH_8U, 1 );

 

//エスケープキーを押したら終了

while( ESC_KEY != cvWaitKey( 1 ) )
{
 //ビデオキャプチャからのフレーム取り出し
 IplImage* image = cvQueryFrame( video_capture );

 

 //画像を反転
 // int flip_mode = 1; ( y軸周りでの反転 )
 //cvFlip ( image, image, flip_mode );

 

 //グレースケール変換
 cvCvtColor(image, gray, CV_BGR2GRAY);

 

 //ウィンドウに画像を表示する
 cvShowImage( window_name, gray );
}

// ビデオキャプチャを解放する
cvReleaseCapture( &video_capture );

 

// ウィンドウを破棄する
cvDestroyWindow( window_name );

 

 

コードの貼り付けってどうやるんや~~orz

 

トイレットペーパー買い出しにいくので今日は以上。