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)