最終更新: mikk_ni3_92 2008年08月25日(月) 13:07:14履歴
現在地 >> メニュー >> サンプルコード::OpenCV >> OpenCV::基本編01
INDEX: OpenCV::基本編01 >> OpenCV::基本編02
OpenCVの基本的な流れは
(※「停止処理」がないと、一瞬ウィンドウが作成された後、すぐにプログラムが終了する)
[例]
なお、「CV_WINDOW_AUTOSIZE」を「0」と指定するとウィンドウの大きさを変える事が出来る。
画像を読み込んで表示するには、cvLoadImage()を使用する。
そして、不要になったらcvReleaseImage()でメモリを解放する。
[例]
OpenCVで表示をするという事は、「IplImage」を表示するという事である。
従って、画像以外にも、直接IplImage内にあるピクセルデータに書き込んでもよい。
[例]
(※注意点:先にIplImageのメモリを確保する必要がある)
IplImageを保存するには、cvSaveImage()関数を使う。
注意点は、
画像形式は、その保存する名前から判断する。
サンプルコード
INDEX: OpenCV::基本編01 >> OpenCV::基本編02
OpenCVの基本的な流れは
- ウィンドウの作成
- IplImageの表示
- 停止処理
(※「停止処理」がないと、一瞬ウィンドウが作成された後、すぐにプログラムが終了する)
[例]
#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 ); //メモリ解放
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を保存するには、cvSaveImage()関数を使う。
注意点は、
- 8 ビット 1チャンネル
- 8 ビット3 チャンネル
IplImage *imgA; ... ... cvSaveImage( "out.bmp", imgA); //out.bmpという名前のビットマップでを保存する
画像形式は、その保存する名前から判断する。
サンプルコード
- OpenCV::基本編01まとめ1(画像読み込み)
- OpenCV::基本編01まとめ2(IplImageへの書き込み)