昔、1.x時代に少し触ったことがあったのだけど、今は3.0にまでなってると知ったのでもう一回触ってみたくてインストールしてみた。
OpenCVのインストールに必要なパッケージのインストール
まずはソースをダウンロードして解凍するとこまでは省略。
こっからcmakeしていくわけだけど、画像や動画周りのライブラリがあからさまに足りなさそう。なので、OpenCVのドキュメントを見ながら潰していくことにした。
http://docs.opencv.org/3.0-last-rst/doc/tutorials/introduction/linux_install/linux_install.html?highlight=install
Ubuntuベースで書かれているので少し困る。僕が入れようとしているのはFedoraだ。apt-getではなくdnfなのだ。すでに心が折れそうなのだが読み解いて、足らない時は考える方向にした。
書かれているのは
[compiler] sudo apt-get install build-essentialといった感じ。すでにffmpegがないのが気がかりな点だったのだが、
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-devとあるので、ライブラリかffmpegかが入っていればよさそうだ。
少し調べてみよう。
ちなみにRPM Fusionのリポジトリは追加済み。パッケージ調べてみてこれでいけるんじゃないかと踏んだ。
# dnf install ffmpeg-devel ffmpeg gtk2-devel pkgconfig python-devel numpy openjpeg-devel libpng-devel libtiff-devel jasper-devel tbb tbb-devel libdc1394-devel libdc1394 メタデータの期限切れの確認は、0:16:32 前の Wed Nov 11 03:30:28 2015 に実施しました。 Package pkgconfig-1:0.28-9.fc23.x86_64 is already installed, skipping. 依存性が解決されました。 ======================================================================================================================== パッケージ アーキテクチャ バージョン リポジトリ 容量 ======================================================================================================================== インストール中: SDL x86_64 1.2.15-20.fc23 updates 213 k atk-devel x86_64 2.18.0-1.fc23 fedora 185 k atlas x86_64 3.10.2-6.fc23 fedora 5.7 M cairo-devel x86_64 1.14.2-2.fc23 fedora 354 k expat-devel x86_64 2.1.0-12.fc23 fedora 61 k ffmpeg x86_64 2.8.1-1.fc23 rpmfusion-free-updates-testing 1.3 M ffmpeg-devel x86_64 2.8.1-1.fc23 rpmfusion-free-updates-testing 679 k ffmpeg-libs x86_64 2.8.1-1.fc23 rpmfusion-free-updates-testing 5.5 M fontconfig-devel x86_64 2.11.94-4.fc23 fedora 137 k freetype-devel x86_64 2.6.0-3.fc23 fedora 378 k fribidi x86_64 0.19.6-5.fc23 fedora 69 k gdk-pixbuf2-devel x86_64 2.32.1-1.fc23 fedora 217 k gl-manpages noarch 1.1-10.20140424.fc23 fedora 1.0 M glib2-devel x86_64 2.46.1-2.fc23 fedora 436 k graphite2-devel x86_64 1.2.4-5.fc23 fedora 41 k gtk2-devel x86_64 2.24.28-2.fc23 fedora 2.9 M harfbuzz-devel x86_64 1.0.6-1.fc23 updates 122 k jasper-devel x86_64 1.900.1-31.fc23 fedora 379 k lame-libs x86_64 3.99.5-5.fc23 rpmfusion-free-updates-testing 345 k libX11-devel x86_64 1.6.3-2.fc23 fedora 984 k libXau-devel x86_64 1.0.8-5.fc23 fedora 19 k libXcomposite-devel x86_64 0.4.4-7.fc23 fedora 21 k libXcursor-devel x86_64 1.1.14-4.fc23 fedora 27 k libXdamage-devel x86_64 1.1.4-7.fc23 fedora 14 k libXext-devel x86_64 1.3.3-3.fc23 fedora 79 k libXfixes-devel x86_64 5.0.1-5.fc23 fedora 17 k libXft-devel x86_64 2.3.2-3.fc23 fedora 24 k libXi-devel x86_64 1.7.4-3.fc23 fedora 109 k libXinerama-devel x86_64 1.1.3-5.fc23 fedora 18 k libXrandr-devel x86_64 1.5.0-2.fc23 fedora 25 k libXrender-devel x86_64 0.9.9-2.fc23 fedora 21 k libXxf86vm-devel x86_64 1.1.4-2.fc23 fedora 23 k libass x86_64 0.12.1-2.fc23 fedora 85 k libavdevice x86_64 2.8.1-1.fc23 rpmfusion-free-updates-testing 76 k libdc1394 x86_64 2.2.2-4.fc23 fedora 123 k libdc1394-devel x86_64 2.2.2-4.fc23 fedora 57 k libdrm-devel x86_64 2.4.65-1.fc23 fedora 111 k libgfortran x86_64 5.1.1-4.fc23 fedora 285 k libicu-devel x86_64 54.1-5.fc23 fedora 741 k libjpeg-turbo-devel x86_64 1.4.1-2.fc23 fedora 104 k libpng-devel x86_64 2:1.6.17-2.fc23 fedora 310 k libquadmath x86_64 5.1.1-4.fc23 fedora 173 k libraw1394-devel x86_64 2.1.0-6.fc23 fedora 44 k libtiff-devel x86_64 4.0.4-1.fc23 fedora 487 k libva x86_64 1.6.1-1.fc23 fedora 83 k libxcb-devel x86_64 1.11.1-1.fc23 updates 1.1 M libxshmfence-devel x86_64 1.2-2.fc23 fedora 9.6 k mesa-libEGL-devel x86_64 11.0.3-1.20151012.fc23 fedora 42 k mesa-libGL-devel x86_64 11.0.3-1.20151012.fc23 fedora 163 k numpy x86_64 1:1.9.2-2.fc23 fedora 3.0 M openal-soft x86_64 1.16.0-7.fc23 fedora 290 k opencv-core x86_64 2.4.11-5.fc23 fedora 1.8 M openjpeg x86_64 1.5.1-15.fc23 fedora 189 k openjpeg-devel x86_64 1.5.1-15.fc23 fedora 376 k openjpeg-libs x86_64 1.5.1-15.fc23 fedora 89 k pango-devel x86_64 1.38.1-1.fc23 fedora 324 k pixman-devel x86_64 0.33.4-1.fc23 updates 18 k python-devel x86_64 2.7.10-8.fc23 fedora 397 k python-macros noarch 2.7.10-8.fc23 fedora 61 k python-nose noarch 1.3.7-4.fc23 fedora 280 k schroedinger x86_64 1.0.11-9.fc23 fedora 317 k tbb x86_64 4.3-3.20141204.fc23 fedora 140 k tbb-devel x86_64 4.3-3.20141204.fc23 fedora 259 k x264-libs x86_64 0.148-1.20151020gita0cd7d3.fc23 rpmfusion-free-updates-testing 590 k x265-libs x86_64 1.8-1.fc23 rpmfusion-free-updates-testing 528 k xorg-x11-proto-devel noarch 7.7-16.fc23 fedora 287 k xvidcore x86_64 1.3.4-2.fc23 rpmfusion-free-updates-testing 266 k zlib-devel x86_64 1.2.8-9.fc23 fedora 55 k トランザクションの要約 ======================================================================================================================== インストール 68 Packages 総ダウンロード容量: 34 M インストール済み容量: 139 M
OpenCVのインストール
OpenCVのconfigureをccmakeで行う。インストール先は/usr/local/opencvとして、python, javaにも対応しておく。あとexampleも入れておきたい。
# cd /usr/local/src/opencv-3.0.0/ # mkdir build # cd build/ # ccmake ..
PackageKit-Qt5-develも必要だったのと、python3-devel、python3-numpy、plibv4l-devel、pmesa-libGL-devel、mesa-libGLU-develも追加しておいた。
またJAVA用にantも探しているぽかったのでインストールしておいた。
# wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/ant/binaries/apache-ant-1.9.6-bin.tar.gz # tar -xvzf apache-ant-1.9.6-bin.tar.gz # ln -s /usr/local/src/apache-ant-1.9.6 /usr/local/antantへのパスも通しておく。
ANT_HOME=/usr/local/ant
PATH=$PATH:$ANT_HOME/bin
今回ccmakeで選んだオプションをキャプチャーしたので貼っておく。
ここからmakeしていく。
# make -j7バリバリにwarningが出てるが、一旦、気にしない。気長に待つ。
エラーが出てこけた。
大域スコープ:
cc1plus: 警告: 認識できないコマンドラインオプション ‘-Wno-unnamed-type-template-args’ です
[ 47%] Linking CXX executable ../../bin/cpp-example-autofocus
../../lib/libopencv_world.so.3.0.0: `DefaultViewPort::staticMetaObject' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for CvWinProperties' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `CvWindow::staticMetaObject' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `CvTrackbar::staticMetaObject' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for CvPushButton' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for GuiReceiver' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for CvCheckBox' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for CvTrackbar' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for DefaultViewPort' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for CvWindow' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `CvButtonbar::staticMetaObject' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for CvRadioButton' に対する定義されていない参照です
../../lib/libopencv_world.so.3.0.0: `vtable for CvButtonbar' に対する定義されていない参照です
collect2: エラー: ld はステータス 1 で終了しました
samples/cpp/CMakeFiles/example_autofocus.dir/build.make:97: recipe for target 'bin/cpp-example-autofocus' failed
make[2]: *** [bin/cpp-example-autofocus] Error 1
CMakeFiles/Makefile2:3671: recipe for target 'samples/cpp/CMakeFiles/example_autofocus.dir/all' failed
make[1]: *** [samples/cpp/CMakeFiles/example_autofocus.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
opencv_worldが悪さをしているみたいなので、一旦OFFにした。各種モジュールを1つのライブラリにするだけみたいなので、特に問題ないかなと。
あと、POLICYIDがどうのこうのと言われるので、CMakeList.txtに追記した。
if(POLICY CMP0045) cmake_policy(SET CMP0049 OLD) endif() if(POLICY CMP0059) cmake_policy(SET CMP0059 OLD) endif()再トライしたところ、うまくmake終了。make installもうまくいった。
ただ、ここまでだとsampleがインストールされないので、動作確認するまでにsampleもインストールしておく。
# cd /usr/local/src/opencv-3.0.0/build/samples # makeこの後、もうCMakeList.txtができるので、もう1度ccmake。
# pwd /usr/local/src/opencv-3.0.0/build/samples # ccmake . # make
これで/usr/local/src/opencv-3.0.0/samplesにサンプルがインストールされた。
実際に試してみる。
# /usr/local/src/opencv-3.0.0/samples/cpp/cpp-example-facedetect --cascade="/usr/local/opencv/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.3 /usr/local/src/opencv-3.0.0/samples/data/lena.jpg
出来た!!!
でもソースをコンパイルしたディレクトリ配下なので少し気持ち悪い。/usr/local/opencvの下にどうしたらインストールできるんやろう。
0 件のコメント:
コメントを投稿