Raspberry Pi上にGo言語によるOpenCV開発環境を構築します。Go言語でOpenCVのアプリを開発するにはGoCVを使用します。「Raspberry Pi 3へカメラモジュールの接続」で使用したカメラモジュールをRaspberry Piに接続し、Go言語により動画を撮影します。
OpenCVのインストール
次のコマンドでシェルスクリプトを取得します。
$ wget --no-check-certificate https://raw.githubusercontent.com/milq/milq/master/scripts/bash/install-opencv.sh
次のシェルスクリプトを実行してOpenCVをインストールします。
$ sudo chmod +x install-opencv.sh $ sudo ./install-opencv.sh
GoCVインストール
次のコマンドでGoCVをインストールします。
$ go get -u -d gocv.io/x/gocv
次のコマンドでpgkconfigにopencvのパスを通します。
$ export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
「/usr/local/lib/pkgconfig」配下に次の内容を持つ「opencv4.pc」を作成します。
/usr/local/lib/pkgconfig/opencv4.pc
prefix=/usr/local exec_prefix=${prefix} includedir=${prefix}/include libdir=${exec_prefix}/lib Name: opencv4 Description: The opencv library Version: 4.0.0 Cflags: -I${includedir}/opencv4 Libs: -L${libdir} -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_calib3d -lopencv_ccalib -lopencv_core -lopencv_datasets -lopencv_dnn -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_features2d -lopencv_flann -lopencv_fuzzy -lopencv_gapi -lopencv_hfs -lopencv_highgui -lopencv_img_hash -lopencv_imgcodecs -lopencv_imgproc -lopencv_line_descriptor -lopencv_ml -lopencv_objdetect -lopencv_optflow -lopencv_phase_unwrapping -lopencv_photo -lopencv_plot -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_shape -lopencv_stereo -lopencv_stitching -lopencv_structured_light -lopencv_superres -lopencv_surface_matching -lopencv_text -lopencv_tracking -lopencv_video -lopencv_videoio -lopencv_videostab -lopencv_xfeatures2d -lopencv_ximgproc -lopencv_xobjdetect -lopencv_xphoto
次のコマンドでgocvをインストールします。
$ cd $GOPATH/src/gocv.io/x/gocv $ make install
gocvのパスを調べるために次のコマンドを実行します。
$ sudo find / -name "gocv"
インストール完了すると次のようにバージョンが表示されます。
・・・・ -- Installing: /usr/local/bin/opencv_model_diagnostics -- Set runtime path of "/usr/local/bin/opencv_model_diagnostics" to "/usr/local/lib" /home/pi/go/src/gocv.io/x/gocv go clean --cache rm -rf /tmp/opencv go run ./cmd/version/main.go gocv version: 0.27.0 opencv lib version: 4.5.2
Raspberry Pi 3のカメラモジュールによる動画撮影
構築したOpenCV開発環境の確認のために、「hybridgroup/gocv」のサンプルコード「hello.go」を使ってRaspberry Pi 3のカメラモジュールで動画を撮影します。Python言語を使った静止画の撮影については「PicameraによるRaspberry Pi 3カメラモジュールのカメラ設定」に示します。
Raspberry Pi 3とカメラモジュールを次のように接続します。
サンプルコード「Hello, video」を次に示します。
hello.go
package main import ( "gocv.io/x/gocv" ) func main() { webcam, _ := gocv.OpenVideoCapture(0) window := gocv.NewWindow("Hello") img := gocv.NewMat() for { webcam.Read(&img) window.IMShow(img) window.WaitKey(1) } }
次の動画が表示されます。なお、動画は上下逆になります。