Armadilloフォーラム

OpenCVを最新バージョンにバージョンアップしたい

ohshimayyyy

2014年8月22日 18時05分

お世話になります。
大島と申します。

標記の件、OpenCVを最新バージョン(2.4.9?)にバージョンアップしたいのですが、
手順が分かっておりません。
初歩的な質問となってしまいますが、ご教示頂けないでしょうか?

当方、現在のバージョンは下記の通りです。
2.3.1
開発環境は、ATDE5となります。

以上、ご対応の程、宜しくお願い致します。

コメント

お世話になります。
大島と申します。

下記の手順で、OpenCVを2.3.1から、2.4.9にバージョンアップしているのですが、
コンパイルオプションが悪いのか、includeが悪いのか、ライブラリパスが悪いのか、
下記の様なWarningが発生し、2.4でサポートしているであろうOpenCVライブラリが
実行できません。
使用したいライブラリは、cvSetCapturePropertyのCV_CAP_PROP_EXPOSUREです。

■手順
・ホームディレクトリにて、アーカイブファイルをダウンロード。
> wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4…

・アーカイブファイルを展開。
> unzip opencv-2.4.9.zip

・ソースコードをコンパイル
> cd OpenCV-2.4.9
> cmake .
> make

・インストール(root権限にて)
> su -
# make install

・ライブラリパスの設定
> set LD_LIBRARY_PATH=/usr/local/lib
> export LD_LIBRARY_PATH

・ソースのincludeを下記のパスに修正
#include

#include "/usr/local/include/opencv/cv.h"

・OpenCVライブラリを使用したヘッダファイルとライブラリのリストアップ
> pkg-config --cflags opencv
> pkg-config --libs opencv

・上記をMakeファイルで読み込ませる
gcc -o hoge hoge.c `pkg-config --cflag opencv` `pkg-config --libs opencv`

・Makeを実行すると下記のWarningが発生します。

■Warning内容
/usr/bin/ld: warning: libopencv_features2d.so.2.3, needed by /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/libopencv_objdetect.so, may conflict with libopencv_features2d.so.2.4
/usr/bin/ld: warning: libopencv_calib3d.so.2.3, needed by /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/libopencv_objdetect.so, may conflict with libopencv_calib3d.so.2.4
/usr/bin/ld: warning: libopencv_flann.so.2.3, needed by /usr/lib/libopencv_features2d.so.2.3, may conflict with libopencv_flann.so.2.4

・上記のまま、アプリケーションを実行すると下記のコメントが出力されます。
HIGHGUI ERROR: V4L: Property Exposure(15) not supported by device

以上、ご対応の程、宜しくお願い致します。

at_takahiro.nakamura

2014年8月26日 11時42分

takahiro.nakamuraです。

> 使用したいライブラリは、cvSetCapturePropertyのCV_CAP_PROP_EXPOSUREです。
  :
> HIGHGUI ERROR: V4L: Property Exposure(15) not supported by device

についてのコメントです。

Armadillo-810 カメラモジュール01 (B コネクタ用)のドライバは
V4L2コントロールのV4L2_CID_EXPOSURE設定を実装していないため、
OpenCVのCV_CAP_PROP_EXPOSUREへは対応出来ません。

OpenCVバージョンアップの目的がカメラのEXPOSURE設定でしたら、
「camctrl」アプリケーションを使用することで代用可能です。
詳細はArmadillo-810製品マニュアルの「6.1.1.2. カメラ設定」を参照ください。

http://manual.atmark-techno.com/armadillo-810/armadillo-810_product_man…

at_takahiro.nakamura

2014年8月26日 11時52分

大島様、

takahiro.nakamuraです。

「camctrl」については既にご存知で、別のスレッドで議論中でしたね。
申し訳ありませんでした。

kensakuと申します。
すみません、ご返信が遅れました。
言いだしっぺの為、上記エラー原因、こちらでも調査しましたが、
nakamuraさんのご報告以外にもOpenCV自体にも不具合があるようです。

http://code.opencv.org/issues/3614

私が所持しているロジクールUVCカメラもOpenCV経由ではExposure設定が出来ませんでした。
ざっと見ですが、2.4.10で対応するとのレポートに見受けられます。
前回私から「殆どのAPIが対応する」と言いましたが、その殆どではない一部にExposureが該当しているようです。

よって現状の解決方法は露光設定をしたいのであればCamctrlを組み合わせで使用するか、
CamctrlのソースはATDE上に存在しますのでOpenCVを実装した自前アプリケーションにcamctrlで実装している
制御ロジックを組み込むかの対応が宜しいかと思います。

大したアドバイスが出来ず、申し訳ございません。

以上、宜しくお願い致します。

> 大島様、
>
> takahiro.nakamuraです。
>
> 「camctrl」については既にご存知で、別のスレッドで議論中でしたね。
> 申し訳ありませんでした。
>

takahiro.nakamura様

お世話になります。
大島です。

上記の件、ご対応、有難う御座います。
別スレッドで、解決する事ができましたが、コメント頂き、参考になりました。
お陰様で、カメラのEXPOSURE設定ができました。

kensaku様

お世話になります。
大島です。

上記の件、ご対応、有難う御座います。

> 大したアドバイスが出来ず、申し訳ございません。
大変参考になっており、感謝しております。
なかなかOpenCVやアットマークテクノ様のソースを覗くところまで
行き着くことができずにおりましたが、今回をキッカケに、時間の許す限り、
少しずつ深堀していこうと思います。