OpenCV 2.1からOpenCV 2.2に切り替えてみたら,エンターキーをcvWaitKeyで拾わなくなった気がするので,検証してみた. OpenCV 2.3*1でbugfixされた

前提

検証内容

#geshi(c++, number){{

#include <cv.h>

#include <cxcore.h>

#include <highgui.h>

#include <iostream>

const char WINDOW_NAME[] = "OpenCV";

int main(int argc, char **argv){

	cvNamedWindow(WINDOW_NAME);
	int q;
	while(q = cvWaitKey(0),q != 'q'){ // qが押されたら終了
		std::cout << ' ' << q ;
	}
	cvDestroyWindow(WINDOW_NAME);
	return 0;

} }}

検証結果(OpenCV 2.1)

検証結果(OpenCV 2.2)

検証結果(OpenCV 2.2 + CV_GUI_NORMAL)

#geshi(c++){{

-cvNamedWindow(WINDOW_NAME);
+cvNamedWindow(WINDOW_NAME,CV_WINDOW_AUTOSIZE|CV_WINDOW_KEEPRATIO|CV_GUI_NORMAL);

}}

検証結果(OpenCV 2.2 C++インタフェース)

まとめ

参考

ジャンル:OpenCV:OpenCV 2.1:OpenCV 2.2:OpenCV 2.3


*1 厳密にはリビジョン5523
*2 WITH_TBB だけ有効にしたけど,本件とは無関係だと思う
*3 こちらもWITH_TBBを有効にしたけど,多分無関係だと思う
*4 もっとも,Cインタフェースの中身はほとんどがC++インタフェースのラッパーなので,当たり前と言えば当たり前*5
*5 今回の関数たちを中までチェックしたわけではないが

添付ファイル: filecvWaitKey-2-1.png 604件 [詳細] filecvWaitKey-2-2.png 589件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-10-20 (木) 13:32:49