7

いくつかのバリエーションを試しましたが、 resizeWindow は何もしないようです。簡単なコード例を示します。その結果、2 つのウィンドウは同じサイズになりますが、サイズが異なるはずです。

Mat m = imread("somePath",CV_LOAD_IMAGE_COLOR); 
namedWindow("aa",CV_WINDOW_NORMAL);
namedWindow("bb",CV_WINDOW_NORMAL);
imshow("aa",m);
imshow("bb",m);
resizeWindow("aa",400,400);
resizeWindow("bb",800,800);
waitKey(0);

私は、opencv 2.4.3を使用してubunto 12.04でeclipse-cdtを使用しています。

  • 関数に入ってデバッグしようとしましたが、highGui modoul を外部ソースとして追加することに成功しませんでした。いくつかの h ファイルが見つからないというコンパイル エラーが発生しました。
4

3 に答える 3

8

次のコードスニペットは私にとってはうまくいきます:

namedWindow("Final", 0);
resizeWindow("Final", 500,500);

「CV_WINDOW_AUTOSIZE フラグなしで作成されたウィンドウのみサイズを変更できます。」

参照: http://docs.opencv.org/modules/highgui/doc/user_interface.html#resizewindow

于 2013-05-31T09:29:19.847 に答える
4

Qt バックエンドをサポートする OpenCV がインストールされていることを確認してください。

ドキュメントnamedWindow()からの引用(強調は私のものです):

flags – ウィンドウのフラグ。現在サポートされているフラグは CV_WINDOW_AUTOSIZE のみです。これが設定されている場合、ウィンドウ サイズは表示されるイメージに合わせて自動的に調整され ( imshow() を参照)、ウィンドウ サイズを手動で変更することはできません。

...

注: Qt バックエンドは、追加のフラグをサポートしています: CV_WINDOW_NORMAL または CV_WINDOW_AUTOSIZE : CV_WINDOW_NORMAL を使用すると、ウィンドウのサイズを変更できますが、CV_WINDOW_AUTOSIZE は、表示された画像に合わせてウィンドウ サイズを自動的に調整し ( imshow() を参照)、手動でウィンドウ サイズを変更することはできません。

システムでサポートされている唯一のフラグである可能性がCV_WINDOW_AUTOSIZEあります。のドキュメントには、フラグresizeWindowなし で作成されたウィンドウのみCV_WINDOW_AUTOSIZEサイズを変更できると書かれています。オプションは次のとおりです。

  • Qt バックエンドで OpenCV をインストールする、または
  • 関数を使用resize()して、画像を表示する前にサイズを変更します。
于 2013-05-31T13:24:05.003 に答える
1

私もその問題を抱えていました。要するに、OpenCVウィンドウには最小サイズがあり、作成しようとするウィンドウは両方ともそれを下回っています。あなたの写真の領域もクリッピングされていると確信しています。グレーまたはその他の偽の情報が含まれている可能性があります。

于 2013-04-09T13:14:05.853 に答える