2014年1月29日水曜日

OSX-10.9, OpenCV-2.4.8: OSXでOpenCVのhighguiのtrackbarが激重で笑えない場合の「対処」法

[症状]

GNU/LinuxではなんともないOpenCVのhighguiのTrackbarを用いたを用いたアプリが、OSXではcv::createTrackbarからその操作に至るまで、バグと認定するのに十分過ぎるほどに激重で事実上使い物にならない現象が発生する。

[stackoverflowで見かけたご同胞(既存の回答は役に立たない)]
[対処法(実際問題これが最も簡単な解決方法だと私は思います)]

OpenCVのGUI機能はQt版のビルドをサポートしています。

trackbar機能が激重な理由はOpenCVのOSX版のその周りの実装がまともじゃないか、OpenCVがデフォルトとして使うOSXのAPIが間抜けか、何れにしても描画系をQtバックエンドに切り替える事で改善できる可能性がありました。

そこで、OSXのOpenCVライブラリーをQtサポート付きでビルド&インストールします。

以下、macportsを使う場合の例です。
  1. port variants opencv
    • オプションを確認します。
  2. sudo port install opencv +eigen +opencl +qt4 +tbb
    • 本件で必要なのは +qt4 のみ。ほかはついでに付けただけです。
これでmacportsに用意された最新のソースからGUIバックエンドにQtを用いるOpenCVライブラリーをビルド、インストールできます。以前にportしたライブラリーも自動的に置き換えてくれます。

[結果]

cv::createTrackbarやTrackbarの操作が事実上不可能だった問題が解決されました

また、OSX版のデフォルトのGUIではウィンドウに描画した画像がウィンドウサイズによってスケーリングされない問題もありましたが、ついでに解決されました。

0 件のコメント:

コメントを投稿