1 安装
pip install opencv-python
pip install pillow
2 获取视频属性
以下是opencv-python可以获取视频的相关信息,可以通过从0开始的序号获取
Property identifier | Explanation |
---|---|
CV_CAP_PROP_POS_MSEC | 视频文件的当前位置(以毫秒为单位)或视频捕获时间戳 |
CV_CAP_PROP_POS_FRAMES | 接下来要解码/捕获的帧的基于0的索引 |
CV_CAP_PROP_POS_AVI_RATIO | 视频文件的相对位置:0 - 电影的开始,1 - 电影的结尾 |
CV_CAP_PROP_FRAME_WIDTH | 视频流中帧的宽度 |
CV_CAP_PROP_FRAME_HEIGHT | 视频流中帧的高度 |
CV_CAP_PROP_FPS | 帧速率 |
CV_CAP_PROP_FOURCC | 编解码器的4字符代码 |
CV_CAP_PROP_FPS | 帧速率 |
CV_CAP_PROP_FPS | 帧速率 |
CV_CAP_PROP_FRAME_COUNT | 视频文件中的帧数 |
CV_CAP_PROP_FORMAT | 返回的Mat对象的格式 retrieve() |
CV_CAP_PROP_MODE | 指示当前捕获模式的特定于后端的值 |
CV_CAP_PROP_BRIGHTNESS | 图像的亮度(仅适用于相机) |
CV_CAP_PROP_CONTRAST | 图像对比度(仅适用于相机) |
CV_CAP_PROP_SATURATION | 图像的饱和度(仅适用于相机) |
CV_CAP_PROP_HUE | 图像的色调(仅适用于相机) |
CV_CAP_PROP_GAIN | 图像的增益(仅适用于相机) |
CV_CAP_PROP_EXPOSURE | 曝光(仅适用于相机) |
CV_CAP_PROP_CONVERT_RGB | 布尔标志,指示是否应将图像转换为RGB |
CV_CAP_PROP_WHITE_BALANCE_U | 白平衡设置的U值(注意:目前仅支持DC1394 v 2.x后端) |
CV_CAP_PROP_WHITE_BALANCE_V | 白平衡设置的V值(注意:目前仅支持DC1394 v 2.x后端) |
CV_CAP_PROP_RECTIFICATION | 立体摄像机的整流标志(注意:目前仅支持DC1394 v 2.x后端) |
CV_CAP_PROP_ISO_SPEED | 摄像机 的ISO速度(注意:目前仅支持DC1394 v 2.x后端) |
CV_CAP_PROP_BUFFERSIZE | 存储在内部缓冲存储器中的帧数(注意:目前仅支持DC1394 v 2.x后端) |
3 获取图像亮度的方法
# 1. 转换图像到灰度,返回平均像素亮度
def compute_brightness1(image):
im = Image.open(image).convert('L')
stat = ImageStat.Stat(im)
return stat.mean[0]
# 2. 转换图像到灰度,返回RMS像素亮度
def compute_brightness2(image):
im = Image.open(image).convert('L')
stat = ImageStat.Stat(im)
return stat.rms[0]
# 3. 平均像素,然后转换为“可感知的亮度”
def compute_brightness3(image):
im = Image.open(image)
stat = ImageStat.Stat(im)
r,g,b = stat.mean
return math.sqrt(0.241*(r**2) + 0.691*(g**2) + 0.068*(b**2))
# 4. 像素的均方根,然后转换为“感知亮度”
def compute_brightness4