OpenCVのhighguiライブラリを利用してウィンドウの生成,破棄,表示などを取り扱う

#contents

*関数一覧 [#s3bad784]
**cvNamedWindow( const char*, int flags ) [#hce90abd]
-ウィンドウの生成
**cvDestroyWindow( const char* name ) [#d5d2bce9]
**cvDestroyAllWindows(void) [#pd0d38c3]
-ウィンドウの破棄
**cvMoveWindow( const char* name, int x, int y ) [#va160f97]
-ウィンドウを指定した位置に動かす
**cvResizeWindow( const char* name, int width, int height ) [#h3205033]
-ウィンドウを指定したサイズにリサイズする
**cvShowImage( const char* name, const CvArr* array) [#w0a795a1]
-指定したウィンドウに画像(配列)を表示する.
**cvSetWindowProperty(const char* name, int prop_id, double prop_value) [#tde462c2]
**cvGetWindowProperty(const char* name, int prop_id) [#d1a59380]
-ウィンドウのプロパティを設定する

**NamedWindow( string& winname, int flags ) [#jf43176c]
-ウィンドウの生成
-C++インタフェース,Cインタフェースのラッパー
**destroyWindow( string& winname ) [#e5aa58ed]
**destroyWindowAll( string& winname ) [#h166752b]
-destroyWindowAllはOpenCV2.3以降でしか実装されてない
-C++インタフェース,Cインタフェースのラッパー
**imshow( string& winname, Mat& img ) [#w7021f34]
-指定したウィンドウに画像(配列)を表示する
-C++インタフェース,Cインタフェースのラッパー
**setWindowProperty(const string& winname, int prop_id, double prop_value) [#v55cc855]
**getWindowProperty(const string& winname, int prop_id) [#c370ac03]
-ウィンドウのプロパティを設定する
-C++インタフェース,Cインタフェースのラッパー

*引数 [#efd758ff]
-ウィンドウは基本的に名前(文字列)で指定する
-Case Sensitive つまり大文字小文字は区別される
-cvNamedWindowのflagはデフォルトでCV_WINDOW_AUTOSIZE (=1)で省略可能

*返り値 [#vda39d18]
-NamedWindowは成功したら1,失敗したら0を返す
-NamedWindow以外はvoid型

*解説 [#j965e732]
-cvNamedWindowでCV_WINDOW_AUTOSIZEを指定すると,マウスによるウィンドウのサイズの変更ができなくなる
-cvNamedWindowで奇数以外をflagに指定するとマウスによってサイズが変更でき,中身の画像はそれに伴って拡大/縮小される
-ウィンドウを破棄(destroyせずにプログラム終了すると,文句を言われるので注意)
-特にdestroyWindowAllは2.3以降でしか実装されてないので注意

*ウィンドウの縁の幅と高さ [#n69752d3]
-XP,クラシックスキームで左の縁が7px,タイトルバーを含めて上の縁が26px
-OpenCVで描画したウィンドウをスクリーンキャプチャして切り取るときに便利

*サンプルコード [#y385d99e]

 cvNameWindow("Image");
 IplImage *input = cvLoadImage("./test.bmp", CV_LOAD_IMAGE_UNCHANGED);
 cvShowImage("Image", input);
 cvMoveWindow("Image", 0, 200);      // (0, 200)にウィンドウを移動
 cvResizeWindow("Image", 500, 500);  // ここで,flag=0としておくと,中身の大きさも変わる
 cvDestroyAllWindows(); 

*その他 [#m9a25b6c]
-[[OpenCV 2.1の関数 CとC++の対照表 (未完) - Schimaの日記>http://d.hatena.ne.jp/Schima/20100814/1281795242]] によると,C++になって色々関数名とか変わったらしい.

*実体ファイル [#g75f9938]
-OpenCV 1.1以前
--otherlibs/highgui/highgui.h
--otherlibs/highgui/window_w32.cpp (Windows版)
-OpenCV 2.2以降
--opencv2/highgui/highgui.hpp (C++インタフェース)
--opencv2/highgui/highgui_c.h (Cインタフェース)
--modules/highgui/src/window.cpp (Windows,C++インタフェース)
--modules/highgui/src/window_w32.cpp (Windows,Cインタフェース) 

ジャンル[[:OpenCV]][[:OpenCV 1.0]][[:OpenCV 1.1]][[:OpenCV 2.2]][[:OpenCV 2.3]]準拠

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS