dockerでカメラの使用やGUI表示を実行する方法

はじめに

dockerを用いて物体認識をしているとカメラ映像を取得したくなりますが, dockerでopencvのVideoCaptureを使おうとすると

error: (-2:Unspecified error) Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config

とエラーが出てしまいます.

またopencvのimshowで画像を表示しようとしても, GUIが起動されなかったりします.

今回はdockerでもカメラ映像を取得できたり, GUI表示ができるようなdockerfileの解説をしていきます.

dockerfileの準備

まずはカメラ入力やGUI表示に対応したdockerfileを取得します.

# get dockerfile
git clone https://github.com/tech-life-hacking/CameraInDocker.git

次にdockerfileからdockerイメージの作成, コンテナの起動をします.

# building dockerfile
docker build -t testimages:1.0 /path/to/dockerfile

# execute scripts
bash /path/to/dockercommands.bash

さらにGUIの許可をします.

# GUIの許可
# CONTAINER IDには使用するdockerコンテナIDを入れる
xhost local:CONTAINER ID

# もしくは
xhost local:

最後にopencvでカメラ入力, その表示をしてテストしましょう.

# test
python /path/to/test.py

カメラ映像を表示できたら成功です.

おわりに

このdockerfileをテンプレートにして, 色々な環境を作ることができます.
ぜひカスタマイズしてみてください!