LoginSignup
1
1

More than 1 year has passed since last update.

OpenCV 【動画関係まとめ】

Last updated at Posted at 2022-05-24

OpenCVを導入

import cv2

動画を読み込み

# 動画ファイル
cap = cv2.VideoCapture('ファイルのpath')
# PCの内蔵カメラ
cap = cv2.VideoCapture(0)
# USBカメラ
cap = cv2.VideoCapture(1)

# 動画ファイルのフォーマットはMP4、AVI、FLVなどに対応している
# cv2.VideoCaptureはcv2.VideoCaptureオブジェクトを生成するコンストラクタ
# 以降, cap は cv2.VideoCaptureオブジェクト を指すことにする

動画の情報の取得

# 動画の横サイズ
width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
# 動画の縦サイズ
height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
# 動画のフレームレート
fps = cap.get(cv2.CAP_PROP_FPS)
# 動画全体のフレーム数
frameNum = cap.get(cv2.CAP_PROP_FRAME_COUNT)
# 動画の現在のフレーム
framePos = cap.get(cv2.CAP_PROP_POS_FRAMES)
# 動画の現在の経過時間[ミリ秒]
msecPos = cap.get(cv2.CAP_PROP_POS_MSEC)

動画の情報の設定

# 動画の横サイズを960に設定
cap.set(cv2.CAP_PROP_FRAME_WIDTH,960)

# 返り値はbool型
# 設定が変更できた時:True, 設定が変更できなかった時:False

動画のフレーム情報の取得

ret, frame = cap.read()
# 返り値はtuple型(bool型, np.ndarray型)
# bool型:フレーム情報を取得できたか(フレームが存在するか)
# np.ndarray型:フレーム情報
# cap.read()を使うと、現在位置が1つ進む

画像(フレーム)の表示

# フレームを表示するウィンドウを出す
cv2.imshow('表示ウィンドウの名前',フレーム情報)
# 処理を止めて、(キー入力を待つ)
cv2.waitKey(処理を止める秒数)

# 全ての処理を終えてプログラムが終了すると、フレームを表示しているウィンドウは閉じられる
# たいていのプログラムは一瞬で終了するので、ウィンドウも一瞬で閉じてしまうことになる
# ゆっくりと見るには処理を止めておき、ウィンドウが表示されている時間を確保する必要がある
# cv2.waitkey()の返り値は
# 何もキーが押されなかった場合:-1, キーが押された場合:押されたキー
def onMouse(event, x, y, flags, params):
    if event == cv2.EVENT_LBUTTONDOWN:
        print(x, y)

img = cv2.imread('sample.png')
cv2.imshow('sample', img)
cv2.setMouseCallback('sample', onMouse)
cv2.waitKey(0)
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

画像の保存

cv2.imwrite('/etc/tmp/after_Lena.jpg', img_gray)
1
1
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
1
1