現在地 >> メニュー >> サンプルコード::OpenCV >> OpenCV::基本編01
INDEX: OpenCV::基本編01 >> OpenCV::基本編02

OpenCVの流れ


OpenCVの基本的な流れは
  1. ウィンドウの作成
  2. IplImageの表示
  3. 停止処理
である。
(※「停止処理」がないと、一瞬ウィンドウが作成された後、すぐにプログラムが終了する)

[例]
#include <cv.h>
#include <highgui.h>

int main( int argc, char **argv)
{
	cvNamedWindow("Hello OpenCV",CV_WINDOW_AUTOSIZE); //指定文字列のタイトルでウィンドウ作成

	//--- ここでIplImage を表示する ---//

	cvWaitKey(0); // 0秒待つ => (停止処理)

	cvDestroyWindow("Hello OpenCV");  //指定文字列に該当するタイトルのウィンドウを破棄

	return 0;
}
OpenCVでウィンドウを作成するには、cvNamedWindow()関数を使い、cvWaitkey()関数で入力待ちにする。
なお、「CV_WINDOW_AUTOSIZE」を「0」と指定するとウィンドウの大きさを変える事が出来る。


画像を読み込んでを表示する


画像を読み込んで表示するには、cvLoadImage()を使用する。
そして、不要になったらcvReleaseImage()でメモリを解放する。

[例]

	//画像の読み込み
	IplImage *imgA = cvLoadImage( "test.jpg", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
	if(imgA == NULL)
	{
		std::cout<<"Can't Load Image .\n";
		return -1;
	}

	//ウィンドウを作って、IplImageを表示
	cvNamedWindow("Image",CV_WINDOW_AUTOSIZE);
	cvShowImage("Image",imgA);
			... ...

	cvReleaseImage( &imgA );  //メモリ解放

IplImageの表示


OpenCVで表示をするという事は、「IplImage」を表示するという事である。
従って、画像以外にも、直接IplImage内にあるピクセルデータに書き込んでもよい。

[例]

	IplImage *imgA = cvCreateImage(cvSize(300,300),IPL_DEPTH_8U,3);
	cvSet (imgA, CV_RGB(0,255,0));  //緑色で塗りつぶす

	cvLine(imgA,cvPoint(50,50),cvPoint(250,250),CV_RGB(255,255,0),3); //太さ3、緑色の線を描画

(※注意点:先にIplImageのメモリを確保する必要がある)

関数リファレンス

IplImageを保存する


IplImageを保存するには、cvSaveImage()関数を使う。
注意点は、
  • 8 ビット 1チャンネル
  • 8 ビット3 チャンネル
のどちらかでないと保存できない点である。


    IplImage *imgA;
    ...     ...
    cvSaveImage( "out.bmp", imgA);  //out.bmpという名前のビットマップでを保存する


画像形式は、その保存する名前から判断する。



サンプルコード

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます