前回は、WSLのインストールを行いましたので、今回はOpenCVとPython3.5をインストールします。Python3.5はパッケージからインストールしますが、OpneCV3.2はソースコードをビルドして構築します。
-
-
- はじめにシステム環境をアップデートします。少し時間がかかります。
$ sudo apt-get update ; sudo apt-get upgrade [sudo] password for ubuntu:
- ビルドに必要なパッケージをインストールします。
$ sudo apt-get install build-essential git cmake \ pkg-config libjpeg-dev libtiff5-dev libjasper-dev \ libpng12-dev libavcodec-dev libavformat-dev \ libswscale-dev libv4l-dev libgtk2.0-dev \ libatlas-base-dev gfortran - Python3関連をセットアップします。
$ sudo apt-get install python3-dev python3-pip $ sudo pip3 install numpy
- opencv,opencv_contribをダウンロードします。
$ cd ~ $ git clone https://github.com/Itseez/opencv.git $ cd opencv $ git checkout 3.2.0 $ cd .. $ git clone https://github.com/Itseez/opencv_contrib.git $ cd opencv_contrib/ $ git checkout 3.2.0 $ cd ..
- cmakeします。
$ cd opencv $ mkdir build $ cd build $ cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ -D BUILD_EXAMPLES=ON .. - makeします。
$ make $ sudo make install $ sudo ldconfig
- 今後実行するときに、以下のようなエラーが発生し動きませんので、ここで対応しておきます。
cannot enable executable stack as shared object requires: Invalid argument
execstackをインストールして実行します。
$ sudo apt-get install execstack $ sudo /usr/sbin/execstack -c /usr/local/lib/libopencv_*
- 正常にインストールされているか、バージョンを確認します。
- pythonのバージョン確認
$ python3 -V Python 3.5.2
- OpenCVのバージョン確認
OpenCVは、pythonのコードを使ってバージョンを取得します。
ファイル名を”version.py”として下記2行のファイルを作成し実行します。
vi ~/version.pyimport cv2 print(cv2.__version__)
$ python3 ~/version.py 3.2.0
- pythonのバージョン確認
- 動作確認用にサンプルプログラムを用意します。
出力先に、Windowsのデスクトップを指定してみました。25行目の「*****」はご利用のWindowsユーザ名を指定してください。vi ~/example.py#coding: utf-8 import cv2 import numpy as np faceCascade = cv2.CascadeClassifier('/home/ubuntu/opencv/data/haarcascades/haarcascade_frontalface_default.xml') img = cv2.imread('/home/ubuntu/opencv/samples/data/lena.jpg', cv2.IMREAD_COLOR) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) face = faceCascade.detectMultiScale(gray, 1.1, 3) if len(face) > 0: for rect in face: cv2.rectangle(img, tuple(rect[0:2]), tuple(rect[0:2]+rect[2:4]), (0, 0,255), thickness=2) else: print ("no face") cv2.imwrite('/mnt/c/Users/*****/Desktop/detected.jpg', img) - 実行
$ python3 ~/sample.py
- 実行結果
正常に動作していれば、WindowsのデスクトップにLenaさんが表示されているはずです。
- 予定したところまで確認できたので、完了とします。
今回触ってみてた感想は、こんなに簡単にLinuxが動かてしまうのか・・・という驚きでした。Windowsアプリとして動作するので、インストールも削除も簡単です。不要になったら削除すればよいのはすごくよいことだと思います。
- はじめにシステム環境をアップデートします。少し時間がかかります。
-







