cv2.VideoCapture.get(0) 视频文件的当前位置(播放)以毫秒为单位
cv2.VideoCapture.get(1) 基于以0开始的被捕获或解码的帧索引
cv2.VideoCapture.get(2) 视频文件的相对位置(播放):0=电影开始,1=影片的结尾。
cv2.VideoCapture.get(3) 在视频流的帧的宽度
cv2.VideoCapture.get(4) 在视频流的帧的高度
cv2.VideoCapture.get(5) 帧速率
cv2.VideoCapture.get(6) 编解码的4字-字符代码
cv2.VideoCapture.get(7) 视频文件中的帧数
cv2.VideoCapture.get(8) 返回对象的格式
cv2.VideoCapture.get(9) 返回后端特定的值,该值指示当前捕获模式
cv2.VideoCapture.get(10) 图像的亮度(仅适用于照相机)
cv2.VideoCapture.get(11) 图像的对比度(仅适用于照相机)
cv2.VideoCapture.get(12) 图像的饱和度(仅适用于照相机)
cv2.VideoCapture.get(13) 色调图像(仅适用于照相机)
cv2.VideoCapture.get(14) 图像增益(仅适用于照相机)(Gain在摄影中表示白平衡提升)
cv2.VideoCapture.get(15) 曝光(仅适用于照相机)
cv2.VideoCapture.get(16) 指示是否应将图像转换为RGB布尔标志
cv2.VideoCapture.get(17) × 暂时不支持
cv2.VideoCapture.get(18) 立体摄像机的矫正标注(目前只有DC1394 v.2.x后端支持这个功能
import cv2,os
# 统计视频
def count_video_duration(file_path):
cap = cv2.VideoCapture(file_path)
if cap.isOpened(): # 当成功打开视频时cap.isOpened()返回True,否则返回False
# get方法参数按顺序对应下表(从0开始编号)
rate = cap.get(5) # 帧速率
FrameNumber = cap.get(7) # 视频文件的帧数
duration = FrameNumber / rate
return int(duration)
else:
return 0
# 递归获取视频路径进行统计时长
def count_video_duration_recursion(file_path):
global duration_video
if os.path.isdir(file_path):
for file in os.listdir(file_path):
count_video_duration_recursion(os.path.join(file_path, file))
else:
if file_path.endswith('.mp4') or file_path.endswith('.avi')or file_path.endswith('.3gp'):
duration = count_video_duration(file_path)
duration_video+=duration
print(file_path, duration)
duration_video = 0
path = "路径"
count_video_duration_recursion(path)
print(duration_video)
import cv2
def alpha2white_opencv2(img):
sp=img.shape
width=sp[0]
height=sp[1]
for yh in range(height):
for xw in range(width):
color_d=img[xw,yh]
if(color_d[3]==0):
img[xw,yh]=[255,255,255,255]
return img
对特定图像进行识别,最关键的是要有识别对象的特征文件。OpenCV已经内置了人脸识别特征文件,我们只要使用OpenCV的CascadeClassifier类即可进行识别。 语法: https://github.com/opencv/opencv.git 在这里可以下载特征文件,在data目录下 识别对象变量 = cv2.CascadeClassifier(特征文件)、、 识别对象 识别结果变量 = 识别对象变量.detectMultiScale(图片,参数1,参数2,。。。) 参数有: 1、scaleFactor: 其原理是系统会以不同的区块大小对图片进行扫描,在进行特征对比。此参数用户设置区块的改变倍数,如无特别需求,一般设置为1.1 2、minNeighbors 此为控制误检率参数,默认值为3 3、minSize 设置最小的识别区块 4、maxSize 设置最大的识别区块 5、flags 此参数设置检测模式,可取值如下: cv2.CV_HAAR_SCALE_IMAGE 按比例检测 cv2.CV_HAAR_DO_CANNY_PRUNING 利用Canny 边缘检测器排除一些边缘很少或很多的图像区域 cv2.CV_HAAR_FIND_BIGGEST_OBJECT 只检测最大物体 cv2.CV_HAAR_DO_ROUGH_SEARCH 只做初步检测 face = faceCascade.detectMultiScale(image,scakeFactor=1.1,minSize=(10,10),minNeighbors=5,flags = cv2.CASCADE_SCALE_IMAGE) detectMultiScale 方法可以识别多个面部,返回值是一个列表 for (x,y,w,h) in face: x,y 表示面部区域的左上角x,y坐标;w,h表示面部区域的宽度和高度