ソースに絡まるエスカルゴ

貧弱プログラマの外部記憶装置です。

【python/OpenCV】カメラ映像をキャプチャするプログラム

 pythonOpenCVを使って色々やってきた中で今更な感じですが、今回はカメラ画像を任意のタイミングで気軽に画像として保存できるようにするプログラムです。
 画像認識などを行う場合にはサンプルとして様々な画像を取得する必要があったりします。「楽してカメラのキャプチャを取れるようにしたい」という思いから自分が作ってみたので、その紹介です。


・カメラのキャプチャ画像を取得するプログラム
・saveCameraImg.py

#
# カメラ画像をキャプチャする
#
import cv2
from datetime import datetime

cap = cv2.VideoCapture(0) # 任意のカメラ番号に変更する

while True:
    ret, frame = cap.read()
    cv2.imshow("camera", frame)

    k = cv2.waitKey(1)&0xff # キー入力を待つ
    if k == ord('p'):
        # 「p」キーで画像を保存
        date = datetime.now().strftime("%Y%m%d_%H%M%S")
        path = "./img/" + date + ".png"
        cv2.imwrite(path, frame) # ファイル保存

        cv2.imshow(path, frame) # キャプチャした画像を表示
    elif k == ord('q'):
        # 「q」キーが押されたら終了する
        break

# キャプチャをリリースして、ウィンドウをすべて閉じる
cap.release()
cv2.destroyAllWindows()

 使い方としては、上記のプログラムをコピペして「saveCameraImg.py」というファイル名で保存して同じ階層に「imgフォルダ」を作成します。
f:id:rikoubou:20190307151838p:plain

 saveCameraImg.pyを実行するとカメラの映像が表示されるので「p」キーを押してキャプチャ、「q」キーを押して終了します。
 画像は秒単位の現在時刻でimgフォルダ内に保存されます。


 以上がカメラ画像をキャプチャするプログラムです。地味ですがこういうちょっとしたツールのようなものを作っておくと作業が楽になったりするので自由に使ってください。
 またコピペしたりフォルダ作るのが面倒という人もいるかもしれないので、以下のリンクに解凍するだけで使えるzipファイルを公開しておきます。