【OpenCV】Webカメラから読み込んだ画像を切り抜く(メモ)

今回はWebカメラから画像を読み込んで画像を切り抜く方法を紹介(メモ)します。

前提

バージョン等

  • Python 3.6.0

OpenCVのインストール

pip install opencv-python

実装

まずは単純にWebカメラから画像を読み込んで保存

前回の記事と同様にWebカメラにアクセスして画像を取得して保存します。

import cv2

# カメラの起動(0は内蔵カメラが着いている場合は内蔵カメラが起動)
cap = cv2.VideoCapture(0)

while(True):
    # 現在の画像の読み込み
    ret, frame = cap.read()
    # 読み込んだ画像を表示する
    cv2.imshow("frame", frame)
    # qが押されたら止める
    if cv2.waitKey(60) & 0xFF == ord('q'):
        # 現時点での画像を保存する
        cv2.imwrite("test.jpg", frame)
        break

画像の切り抜き

では、得られた画像を切り抜きます。
先程のコードに切り抜きの操作をするコードを追記します。
(Newの部分です)

import cv2

# カメラの起動(0は内蔵カメラが着いている場合は内蔵カメラが起動)
cap = cv2.VideoCapture(0)

while(True):
    # 現在の画像の読み込み
    ret, frame = cap.read()
    # 読み込んだ画像を表示する
    cv2.imshow("frame", frame)

    # New--------------------------------------------
    clipped_frame = frame[0:10, 0:10]
    cv2.imwrite("clipped_frame.jpg", frame)
    #------------------------------------------------ 

    # qが押されたら止める
    if cv2.waitKey(60) & 0xFF == ord('q'):
        # 現時点での画像を保存する
        cv2.imwrite("test.jpg", frame)
        break

切り抜きのコードは次のような形になっています。

frame[y:y+height, x:width]

見てわかる通り、画像を行列として扱いスライスしています。

参考文献

http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_gui/py_video_display/py_video_display.html
タイトルとURLをコピーしました