LoginSignup
0
0

More than 3 years have passed since last update.

Raspberry Pi Zero WH カメラモジュールで遊ぶ その1

Last updated at Posted at 2020-08-14

前→Raspberry Pi Zero WH カメラモジュールで遊ぶ その0
次→Raspberry Pi Zero WH カメラモジュールで遊ぶ その2

本記事では、pythonの設定とカメラモジュールの動作確認を行います。

1. python初期設定

1.1. リンク設定

今回導入したRaspberry Pi OSのバージョンでは、pythonのシンボリックリンクがpython2(2.7.16)に張られていたので、python3(3.7.3)にリンクを張り替えます。
補足として、Raspberry Pi OSのPythonライブラリは、pipよりもapt-getで入れたものの方が高速のようです。

# シンボリックリンクの張り替え
$ cd /usr/bin
$ sudo unlink python
$ sudo ln -s python3 python

2. カメラモジュールの接続

2.1. 接続設定

Raspberry Pi本体にカメラモジュールのケーブルを接続した後、「設定」→「Raspberry Piの設定」→「インターフェース」から、カメラを有効化します。
その後、カメラモジュールが正常に接続されているか、確認します。

# カメラ接続の確認
$ vcgencmd get_camera

"supported=1 detected=1"と表示されれば、正常に接続されています。

2.2. 静止画撮影テスト

テストとして、静止画を撮影してみます。

# デフォルトでは/home/piに保存
$ sudo raspistill -o image.jpg

3. 各種pythonライブラリの追加

3.1. OpenCV

はじめにOpenCVが依存しているライブラリをインストールします。

# libhdf5-xxxのバージョン確認(今回のバージョンは103)
$ sudo apt-cache search libhdf5

# 各種ライブラリのインストール
$ sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-103
$ sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5
$ sudo apt-get install libatlas-base-dev
$ sudo apt-get install libjasper-dev

次にOpenCVをインストールします。

# OpenCVのインストール
$ sudo pip3 --default-timeout=1000 install opencv-python

このままだとimport cv2でエラーを吐くことがあるため、環境変数を設定します。
"~/.bashrc"に以下を追記し、source ~/.bashrcを実行します。

# ~/.bashrcに追記
export LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1

4. OpenCVを使って動かしてみる

4.1. 表示テスト

カメラからキャプチャした画面をグレースケール化して表示、qキーが押されたら終了するコードです。

capture_test.py

import cv2

def capture():
    # 0 is a camera number.
    cap = cv2.VideoCapture(0)

    print('### Break is \'q\' key.')

    while(cap.isOpened()):
        # 'ret' is a boolean.
        ret, frame = cap.read()

        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

        cv2.imshow('frame', gray)

        # Break is 'q' key.
        if cv2.waitKey(1) & 0xff == ord('q'):
            break

    cap.release()
    cv2.destroyAllWindows()

if __name__=='__main__':
    capture()
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0