Up python-picamera 作成: 2021-01-25
更新: 2021-01-25


  • Raspberry Pi カメラモジュールと Python とのインタフェース

    五十嵐システムズ「PYTHON PICAMRA」から引用:

    インストール

    python-picameraライブラリはRaspbianアーカイブで利用可能です。 aptを使ってインストールしてください。

    sudo apt-get update
    sudo apt-get install python-picamera

    Python3のパッケージはsudo apt-get install python3-picameraでインストールできます。 オフラインのドキュメントsudo apt-get install python-picamera-docsで利用可能です。

    使い方

    最初に、PythonプロンプトもしくはPythonスクリプトの一番上で、次を入力します。

    import picamera

    これでスクリプトからライブラリが利用可能になります。 それでは、PiCameraクラスのインスタンスを生成しましょう。

    camera = picamera.PiCamera()

    そして写真を撮ります。

    camera.capture('image.jpg')

    上下左右の反転

    カメラが上下逆に置かれている場合には、 raspistillコマンドと同じように、 上下左右の反転を適用します。 これをhflipvflipプロパティを直接変更することで行います。

    camera.hflip = True
    camera.vflip = True

    Pythonのキーワードになっていますので、TrueTは大文字を使うようにしてください。

    プレビュー

    スクリーンにカメラフィードのプレビューを表示することができます。 警告: この処理はデフォルトでPythonのセッションと重なって表示されます。 プレビューの停止に問題があった場合には、 Pythonのセッションを終了させるためにCtrl+Dを押せば たいていの場合は画面が元に戻ります。

    camera.start_preview()

    プレビュー画面を消して元の画面に戻すには、stop_previewメソッドが使用できます。

    camera.stop_preview()

    SSHを使って別のコンピュータからラズベリーパイにアクセスし、 Pythonプロンプトを開いてこれらのコマンドを入力すると、 ラズベリーパイに接続されたモニタ(SSH接続にきている別のコンピュータのモニタではない)にプレビューを表示することができます。

    カメラの設定

    プロパティの値を設定することで、他にもカメラの設定を変更することができます。例えば、

    camera.brightness = 70

    これは明るさ設定をデフォルトの50から70に変更します (設定値の範囲は0から100)。

    他の設定も利用可能です。ここでは、それぞれのデフォルトの設定値を示します。

    camera.sharpness = 0
    camera.contrast = 0
    camera.brightness = 50
    camera.saturation = 0
    camera.ISO = 0
    camera.video_stabilization = False
    camera.exposure_compensation = 0
    camera.exposure_mode = 'auto'
    camera.meter_mode = 'average'
    camera.awb_mode = 'auto'
    camera.image_effect = 'none'
    camera.color_effects = None
    camera.rotation = 0
    camera.hflip = False
    camera.vflip = False
    camera.crop = (0.0, 0.0, 1.0, 1.0)

    スリープ

    timeモジュールのsleepを使うことで コマンドの間にスリープを入れることができます。

    import picamera
    from time import sleep
    
    camera = picamera.PiCamera()
    
    camera.capture('image1.jpg')
    sleep(5)
    camera.capture('image2.jpg')

    プレビューで設定を調整するためにsleepを使うこともできます。

    camera.start_preview()
    
    for i in range(100):
        camera.brightness = i
        sleep(0.2)

    録画

    5秒の動画を撮るには次のようにします。

    camera.start_recording('video.h264')
    sleep(5)
    camera.stop_recording()