DroidCamでAndroidカメラの映像を取得してOpenCVで使用できるようにしました。
環境
- OS: ArchLinux 64bit
- シェル: zsh
- 言語: Python 3.6.0
- ライブラリ: OpenCV 3.2
AndroidにDroidCamをインストール
Google Playで最新のDroidCamをインストールしました。
ArchLinuxにDroidCamをインストール
DroidCam 公式ページを参考にして、最新のDroidCamをインストールしました。
v4l2loopback周りの設定
$ yaourt -S v4l2ucp v4l-utils
$ sudo modprobe v4l2loopback_dc
v4l2関連のパッケージをインストールしてからv4l2loopback_dc
モジュールを有効にしました。
環境変数の設定
zshrc
export LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so
このままOpenCVからDroidCamの入力を読もうとすると、ピクセル形式がサポートされていないというメッセージが表示されました。そのため、アプリケーション実行前にv4l2convert.so
を読み込ませるようにしました。
動作確認
main.py
from cv2 import VideoCapture, imshow, waitKey
def main():
video = VideoCapture(0)
while video.isOpened():
result, frame = video.read()
if not result:
break
imshow("Input", frame)
imshow("Inverse", 255 - frame)
if waitKey(16) & 0xff == ord("q"):
break
if __name__ == "__main__":
main()
DroidCamからの入力画像の色を反転しました。