調べても全然ない!
C++でプログラムしたいので、CMakeを使った面倒くさい方法です。
下のようにやれば、C++でコンパイルまでして動きましたが、本記事はインストールまでです。
WebカメラはLogicool HD Webcam C615。
Pythonだけならpipの方が楽だし、リスクが少ないと思います。
OpenCVを解凍するあたりから数時間かかるので、放置できる日にどうぞ。
始める前に、VMをお持ちの方は、使った方がいいです。
OpenCV自体容量もそれなりにあるし、CMakeのせいかミスしやすい。
今後がっつりやるなら本番環境より仮想環境(Dockerもあり)。
The unification of Python
sudo apt vim
vim ~/.bashrc
alias python="python3"
source ~/.bashrc
Python2を今更使う方はいないと思うので、Python3に統一することをお勧めします。
間に合わせ程度のaliasですが、Python2を削除するのは面倒かつ依存してるアプリケーションがあるみたいなので控えた方がいいです。
記述編集が特殊なので、分からなければ飛ばして大丈夫です。
For apt (Do first!)
sudo apt update
sudo apt upgrade
sudo apt-get update
sudo apt-get upgrade
Webcam test on your environment
sudo apt install v4l-utils
v4l2-ctl --list-devices
#guvcviewでカラー映像がでるか要確認!
もし、カメラ製品名が出ない場合はOpenCVを入れても徒労に終わる(/dev/video0が重要だったりする)。
WebカメラはUVC対応が必須。Logicool関連であればおおよそ問題ないです。
UbuntuとWebカメラは何かと相性悪いので、最悪Ubuntuの初期状態からやり直した方が効率的。
一応VM上で行っても反応しますし、何回か抜き差しした方がいいかもしれません。
guvcviewを別途インストール後テストしてみるといいかも。
縞模様が出てしまう人はHzをいじればよい(フリッカー対策)。
Python-Environment Construction(apt)
sudo apt install build-essential
sudo apt install zlib1g-dev libcurl4-gnutls-dev gcc g++ gfortran make ccache qt5-qmake
sudo apt install python3-dev python3-pip python3-setuptools python3-numpy pylint3 flake8 python3-flake8
以下apt系です。適宜ダウンロードしてください。
エラーが出るようであれば、部分的にコマンドを削除して再実行してください。
基本的にUbuntu初期状態であれば、全部New Packagesなはずです。
Python-Environment Construction(apt-get)
sudo apt-get install build-essential unzip pkg-config libgtk-3-dev libjpeg-dev libtiff5-dev libopenexr-dev cmake python-dev python-numpy python-tk python-scipy python-matplotlib python3-numpy python3-scipy python3-matplotlib libtbb-dev libeigen3-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev qt5-default sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev default-jdk ant libvtk6-qt-dev freeglut3-dev libtbb-dev libhdf5-dev libpython3-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install python3-dev
CMake(Update)
sudo apt -yV install zlib1g-dev libcurl4-gnutls-dev
cd /tmp
git clone https://github.com/Kitware/CMake.git
cd CMake
./configure --system-curl --system-zlib
make
sudo make install
cd
ここから厄介。下手にいじらない方がいいかも。
Introduction of OpenCV
unzip opencv.zip
unzip opencv_contrib.zip
ここは個々人で異なります。
ブラウザからOpenCV公式サイト>Releasesから使うパッケージをインストールしてください。
参考までに、本記事はOpenCV3でやっています。
本記事のやり方で最新版に対応できるかはわかりません。
Ubuntuであれば、zipだと思うのでファイル名にバージョン情報が付与されてれば適宜入れるように。
Pathが面倒になるので、Homeにunzipした方がいいかも。
OpenCV with CMake
cd opencv
mkdir build
cd build
#ALL COPY↓
cmake -DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DINSTALL_PYTHON_EXAMPLES=ON \
-DOpenBLAS_INCLUDE_DIR=/usr/include/x86_64-linux-gnu \
-DOpenBLAS_LIB=/usr/lib/x86_64-linux-gnu/libopenblas.so \
-DBUILD_PACKAGE=ON \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_WITH_DEBUG_INFO=ON \
-DBUILD_opencv_apps=ON \
-DBUILD_opencv_calib3d=ON \
-DBUILD_opencv_core=ON \
-DBUILD_opencv_features2d=ON \
-DBUILD_opencv_flann=ON \
-DBUILD_opencv_highgui=ON \
-DBUILD_opencv_imgcodecs=ON \
-DBUILD_opencv_imgproc=ON \
-DBUILD_opencv_java=ON \
-DBUILD_opencv_ml=ON \
-DBUILD_opencv_objdetect=ON \
-DBUILD_opencv_photo=ON \
-DBUILD_opencv_python2=OFF \
-DBUILD_opencv_python3=ON \
-DPYTHON_DEFAULT_EXECUTABLE=python3 \
-DBUILD_opencv_shape=ON \
-DBUILD_opencv_stitching=ON \
-DBUILD_opencv_superres=ON \
-DBUILD_opencv_ts=ON \
-DBUILD_opencv_video=ON \
-DBUILD_opencv_videoio=ON \
-DBUILD_opencv_videostab=ON \
-DCMAKE_BUILD_TYPE=RELEASE \
-DWITH_1394=ON \
-DWITH_EIGEN=ON \
-DWITH_FFMPEG=ON \
-DWITH_GIGEAPI=ON \
-DWITH_GSTREAMER=ON \
-DWITH_GTK=ON \
-DWITH_IPP=ON \
-DWITH_JPEG=ON \
-DWITH_LIBV4L=ON \
-DWITH_OPENCL=ON \
-DWITH_OPENEXR=ON \
-DWITH_OPENMP=ON \
-DWITH_PNG=ON \
-DWITH_PVAPI=ON \
-DWITH_QT=ON \
-DWITH_V4L=ON \
-DWITH_MKL=OFF \
-DINSTALL_C_EXAMPLES=ON \
-DINSTALL_PYTHON_EXAMPLES=ON \
-DBUILD_EXAMPLES=ON ..
#All Copy & Paste ↑
make -j4
sudo make install
sudo ldconfig
基本的に文字通りで、不要なものはないと思います。
Python2を使うのであれば、OFF→ON,default→python2。
All Copyは一行ずつではなく、完全にコピーして貼り付けてください。-Dの後ろはスペースする必要はないです。
\は\表示になると思います。
バージョン確認
cd
pkg-config --modversion opencv
インストールしたパッケージのバージョンがでれば、とりあえずOpenCVはダウンロード完了!
guvcviewを起動して、カメラが機能すればWebカメラを使って、プログラムできるはずです!
まとめ
本記事でもエラーが出て、進めない場合は大変申し訳ないのですが、自力で調べて対処してください。
トライandエラーの繰り返しで本記事に至るまで何回も失敗しました。
参考サイト:
https://www.kkaneko.jp/tools/ubuntu/ubuntu_opencv_buildout.html
https://yamaken1343.hatenablog.jp/entry/2018/04/04/141618
https://avinton.com/academy/opencv3-4-3-python3-6-ubuntu18-04-install/