跳至主要內容
opencv video 相关参数
    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后端支持这个功能

爱喝水的木子...大约 1 分钟pythoncvpython
使用cv统计视频时长
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)


爱喝水的木子...小于 1 分钟pythonpythoncv文件视频
使用opencv进行人脸检测

对特定图像进行识别,最关键的是要有识别对象的特征文件。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表示面部区域的宽度和高度


爱喝水的木子...大约 2 分钟AIpythoncv检测