画像認識などで使用するビデオのサイズをかえて,画面の一部をとりのぞきたいときがある. そういうときにつかえるプログラムを掲載する. 使用法はつぎのとおりである.
clip(inFile, outFile, options...)
inFile が入力ファイル名,outFile が出力ファイル名である. outHeightMin および outHeightMax は出力画面の垂直方向の範囲を指定する. outWidth は出力画面の幅である.
### Clipping video -- reducing the vertical size ###
import cv2, cv, time
import numpy as np
def createPedestrianWriter(outFile, width, height):
writer = cv2.VideoWriter()
writer.open(outFile, cv.CV_FOURCC('P','I','M','1'), fps = 30,
frameSize = (width, height), isColor = False)
return writer
def clip(inFile, outFile,
outHeightMin = 80, outHeightMax = 280, outWidth = 1280):
reader = cv2.VideoCapture(inFile)
writer = createPedestrianWriter(
outFile, width = outWidth, height = outHeightMax - outHeightMin
)
ret, oframe = reader.read()
while ret:
frame = cv2.cvtColor(oframe, cv2.COLOR_BGR2GRAY)
writer.write(frame[outHeightMin:outHeightMax])
ret, oframe = reader.read()
