首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何用cv2和MTCNN写视频?我正面临着fourcc的问题

使用cv2和MTCNN来处理视频,需要解决fourcc的问题。fourcc是一个四字符代码,用于指定视频编解码器的格式。下面是一种使用cv2和MTCNN来处理视频的示例代码:

代码语言:txt
复制
import cv2
from mtcnn import MTCNN

# 加载MTCNN模型
detector = MTCNN()

# 打开视频文件
video = cv2.VideoCapture('input.mp4')

# 获取视频的宽度和高度
width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))

# 创建输出视频文件
fourcc = cv2.VideoWriter_fourcc(*'XVID')
output = cv2.VideoWriter('output.mp4', fourcc, 20.0, (width, height))

# 逐帧处理视频
while video.isOpened():
    ret, frame = video.read()
    if not ret:
        break

    # 使用MTCNN检测人脸
    result = detector.detect_faces(frame)
    for face in result:
        # 绘制人脸框
        x, y, w, h = face['box']
        cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)

    # 写入输出视频文件
    output.write(frame)

    # 显示处理后的视频帧
    cv2.imshow('Video', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 释放资源
video.release()
output.release()
cv2.destroyAllWindows()

在上述代码中,我们首先加载MTCNN模型,然后打开输入视频文件。通过cv2.VideoCapture函数可以获取视频的宽度和高度。接下来,我们创建一个输出视频文件,使用cv2.VideoWriter函数指定输出视频的编码格式、帧率和大小。

然后,我们使用一个循环逐帧读取视频,并使用MTCNN检测人脸。对于每个检测到的人脸,我们使用cv2.rectangle函数在视频帧上绘制人脸框。最后,将处理后的视频帧写入输出视频文件,并显示处理后的视频帧。

请注意,上述代码中的fourcc参数使用了cv2.VideoWriter_fourcc函数来指定视频编码格式。在这个例子中,我们使用了XVID编码器。你可以根据需要选择不同的编码器。

希望这个示例能够帮助你解决fourcc的问题,并使用cv2和MTCNN来处理视频。如果你需要更多关于cv2和MTCNN的信息,可以参考以下链接:

请注意,以上链接中的内容仅供参考,具体的使用方法和参数设置可以根据实际情况进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

opencv︱图片与视频读入、显示、写出、放缩与基本绘图函数介绍

延伸二:图像求差值报错: 延伸三:视频保存 延伸四:图像画框+中文+python3读写中文 延伸六: 最简单检验矩形框,cv2代码 延伸五:更精致画框(带中文) ---- 一、图片 + 读入、显示、... 要将一个图片变为32*32大小 image=cv2.imread('test.jpg') res=cv2.resize(image,(32,32),interpolation=cv2.INTER_CUBIC...例如,可以使用 cap.get(3) cap.get(4) 来查看每一帧宽和高。 默认情况下得到值是 640X480。...FourCC 就是一个 4 字节码,用来确定视频编码格式。可用编码列表可以从fourcc.org查到。这是平台依赖。下面这些编码器对来说是有用个。...187,176代表左上角点 3.中文 opencv中文字,可以参考:python+freetype+opencv 图片中文(汉字)显示 详细图文教程项目完整源代码 当然,在自己尝试时候失败了

5.6K41
  • OpenCV 图像与视频基础操作

    下面是对这些问题进行优化详细解释示例代码: 存在问题: 语法检测有问题:原始代码中缩进存在问题,影响代码可读性执行。...、跨平台路径访问程序退出逻辑问题。...你可以指定保存文件名和文件格式(.jpg、.png等),并将图像数据作为参数传递给imwrite()函数,即可将图像保存到指定文件中。...类进行视频录制示例代码: import cv2 # 创建 VideoWriter 为多媒体文件 fourcc = cv2.VideoWriter_fourcc(*'MJPG') vw = cv2....使用 isOpened() 判断摄像头是否已打开 采集数据时要判断数据是否获取到了 import cv2 # 创建 VideoWriter 为多媒体文件 fourcc = cv2.VideoWriter_fourcc

    31670

    【python-opencv】读取、显示、保存视频

    value是你想要新值。 例如,可以通过cap.get(cv.CAP_PROP_FRAME_WIDTH)cap.get(cv.CAP_PROP_FRAME_HEIGHT)检查框架宽度高度。...然后我们应该指定 FourCC 代码(详见下一段)。然后传递帧率数量帧大小。最后一个是颜色标志。如果为 True,编码器期望颜色帧,否则它与灰度帧一起工作。...FourCC:http://en.wikipedia.org/wiki/FourCC 是用于指定视频编解码器4字节代码。...可用代码列表可在fourcc.org中:http://www.fourcc.org/codecs.php 找到。它取决于平台。遵循编解码器对来说效果很好。...MJPG会生成大尺寸视频。X264会生成非常小尺寸视频) 在Windows中:DIVX(尚待测试添加) 在OSX中:MJPG(.mp4),DIVX(.avi),X264(.mkv)。

    7.7K20

    opencv(4.5.3)-python(三)--视频入门

    OpenCV提供了一个非常简单接口来做到这一点。让我们从摄像头(使用是笔记本电脑上内置网络摄像头)捕捉一段视频,将其转换成灰度视频并显示出来。只是一个简单任务就可以开始了。...例如,可以通过cap.get(cv.CAP_PROP_FRAME_WIDTH)cap.get(cv.CAP_PROP_FRAME_HEIGHT)检查帧宽度高度。它给我默认值是640x480。...如果你得到一个错误,请确保你相机在使用任何其他相机应用程序(Linux中Cheese)时工作正常。...然后我们应该指定FourCC代码(详情见下段)。然后应该传递每秒帧数(fps)帧大小。最后一个是isColor标志。如果它是 "真",编码器就会使用彩色帧,否则就会使用灰阶帧。...FourCC是一个4字节编码,用于指定视频编解码器。可用编码列表可以在fourcc.org上找到。具体编码依赖于平台。

    92910

    python版openCV使用及下载

    /simple opencv-python 这是国内镜像下载能快一些; 下载成功标志: 二、图像视频加载显示 2.1创建和显示窗口 namedWindow()   创建命名窗口 imshow()...;table空格混用缩进问题,执行之后,会 自动把外部函数导入 %run utils.py 2.3保存图片 cv2.imwrite(path,img); 2.4读取摄像头视频数据 import...cv2 #视频其实本质上就是由一幅一幅照片组成, #打开摄像图 cv2.namedWindow('video',cv2.WINDOW_NORMAL) cv2.resizeWindow...('video',640,480) cap=cv2.VideoCapture(0) #类,首字母大写,代码书写规范 # #打开视频,输入视频地址 # cap=cv2.VideoCapture(...# import cv2 # cap=cv2.VideoCapture(0) # fourcc =cv2.VideoWriter_fourcc(*'mp4v') # # 创建videoWriter #

    1.3K20

    OpenCV 用 VideoWriter 创建视频(Python 版本)

    这个盒子里面有视频画面数据、音频数据、字幕数据等等。 ? 不同文件格式 mp4、avi、mkv 等等,它们存放 打包数据方式不一样,文件内部文件编码方式也可能不一样。 3....编码格式 视频容器中,一般有视频音频数据,它们采取编码方式不一样。...编码器和解码器 把视频或者音频按照编码格式,编码成特定文件格式需要编码器参与,不然每次开发重新代码代价很高。 把特定文件格式解码成特定编码格式数据,这个过程称为解码,需要解码器存在。...如果 fourcc 采用 -1,系统可能会弹出一个对话框让你进行选择,但是没有试验成功过。 ?...代码示例 import numpy as np import cv2 cap = cv2.VideoCapture(0) fourcc = cv2.VideoWriter_fourcc(*'XVID

    16.8K30

    手把手教你使用opencv-python库制作屏幕录制工具(附源码)

    接下准备使用python如何做屏幕录制工具系列文章: 录制屏幕制作视频 录制音频 合成视频,音频 基于pyqt5制作可视化窗口 大概上述四个部分,希望自己能够尽快完善,接下来开始使用python制作屏幕录制部分...应用平台 windows 10 python 3.7 屏幕录制部分 屏幕录制可以简单地理解为将屏幕快照以动图形式播放,这里选用PIL下ImageGrab来截取屏幕画面,首先 pip install...Pillow 之后需要将截取到快照数组合成为视频,使用cv2模块 pip install opencv-python ImageGrab类不能直接存储为视频,使用numpy模块进行数组化,再通过cv2...() width, high = im.size  # 获取屏幕宽和高 fourcc = cv2.VideoWriter_fourcc(*'I420')  # 设置视频编码格式 fps = 15  #...也可以给视频增加帧数从而延长播放时间,这里采用一种很简单方法增加视频帧,仅供参考。

    3K50

    03: 打开摄像头

    另外,通过cap.get(propId)可以获取摄像头一些属性,比如捕获分辨率,亮度对比度等。...比如说,我们在while之前添加下面的代码: # 获取捕获分辨率 # propId可以直接数字,也可以用OpenCV符号表示 width, height = capture.get(3), capture.get...之前我们保存图片用是cv2.imwrite(),要保存视频,我们需要创建一个VideoWriter对象,需要给它传入四个参数: 输出文件名,'output.avi' 编码方式FourCC码 帧率...FPS 要保存分辨率大小 FourCC是用来指定视频编码方式四字节码,所有的编码可参考Video Codecs。...MJPG编码可以这样: cv2.VideoWriter_fourcc(*'MJPG')或cv2.VideoWriter_fourcc('M','J','P','G') capture = cv2.VideoCapture

    1.9K30

    Python生成抖音字符视频,技术流!

    抖音字符视频在去年火过一段时间。 反正是始终忘不了那段极乐净土音乐... 这一次自己也来实现一波,做一个字符视频出来。 主要用到库有cv2,pillow库。...原视频,直接抖音下载,妥妥水印。 ? / 01 / 视频转图片 在Pycharm上直接安装cv2库是成功不了,具体什么原因我也不清楚。 经过实践,发现只需在Pycharm虚拟环境下。...上面的原图一样,也是369张。 / 03 / 字符转视频 接下来使用cv2库,将字符图片转化为视频。 具体代码如下。...import cv2 import os # 设置视频编码器,这里使用使用MJPG编码器 fourcc = cv2.VideoWriter_fourcc(*'MJPG') # 输出视频参数设置,包含视频文件名...、编码器、帧率、视频宽高(此处参数需字符图片大小一致) videoWriter = cv2.VideoWriter('bear_character.avi', fourcc, 20.0, (560,

    1K10

    用Python生成抖音字符视频

    抖音字符视频在去年火过一段时间。 反正是始终忘不了那段极乐净土音乐... 这一次自己也来实现一波,做一个字符视频出来。 主要用到库有cv2,pillow库。...经过实践,发现只需在Pycharm虚拟环境下。 运行下面这个命令,即可成功安装cv2这个库。 pip3 install opencv-python 不过还是会出现下载速度过慢,导致超时。...上面的原图一样,也是369张。 / 03 / 字符转视频 接下来使用cv2库,将字符图片转化为视频。 具体代码如下。...import cv2 import os # 设置视频编码器,这里使用使用MJPG编码器 fourcc = cv2.VideoWriter_fourcc(*'MJPG') # 输出视频参数设置,包含视频文件名...、编码器、帧率、视频宽高(此处参数需字符图片大小一致) videoWriter = cv2.VideoWriter('bear_character.avi', fourcc, 20.0, (560,

    57420

    用Python生成抖音字符视频

    主要用到库有cv2,pillow库。 原视频如下,直接抖音下载,妥妥水印。 不过并不影响本次操作。.../ 01 / 视频转图片 在Pycharm上直接安装cv2库是成功不了,具体什么原因我也不清楚。 经过实践,发现只需在Pycharm虚拟环境下。 运行下面这个命令,即可成功安装cv2这个库。...上面的原图一样,也是369张。 / 03 / 字符转视频 接下来使用cv2库,将字符图片转化为视频。 具体代码如下。...import cv2 import os # 设置视频编码器,这里使用使用MJPG编码器 fourcc = cv2.VideoWriter_fourcc(*'MJPG') # 输出视频参数设置,包含视频文件名...、编码器、帧率、视频宽高(此处参数需字符图片大小一致) videoWriter = cv2.VideoWriter('bear_character.avi', fourcc, 20.0, (560,

    64550

    Python生成字符视频

    Python生成字符视频 一、前言 在之前也写过生成字符视频文章,但是使用是命令行窗口输出,效果不是很好,而且存在卡顿情况。于是打算直接生成一个mp4字符视频。...大致思路之前一样:Python20行代码实现视频字符化。 下面来看一个效果图: ? 卡卡西vs带土效果截取 二、OpenCV操作图像 我们先来看一些基本操作。...2.1、读取显示 我们直接看代码: import cv2 # 读取图片 img = cv2.imread("1.jpg") # 显示图片 cv2.imshow("img", img) cv2.waitKey...2.6、读取视频 读取视频操作一般是通用,代码如下: import cv2 # 读取视频 cap = cv2.VideoCapture('1.mp4') # 获取视频帧率 fps = cap.get...2.7、写入视频 写入视频操作也是常规代码: import cv2 fourcc = cv2.VideoWriter_fourcc(*'mp4v') writer = cv2.VideoWriter(

    55050

    OpenCV保存H264视频问题

    环境 windows 10 64bit opencv 4.5.3 前言 看到有小伙伴在聊,如何将目标检测结果保存成视频相关问题?本篇我们就来看看。...opencv保存视频 在绝大多数目标检测项目中,都是使用opencv这个开源计算机视觉库来进行图片、视频或者摄像头读写。...关于视频保存,来看下面的代码示例 import cv2 cap = cv2.VideoCapture('test.mp4') width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH...除了fourcc,其它几项都很好理解。 FourCC是一个4字节码,用来表示视频编码器,网站 fourcc.org 列出了所有可用编码器。...为什么不内置h264 这主要是许可证问题,libx264是基于GPL,而ffmpeg要使用libx264的话,必须--enable-gpl,而opencv则用是MIT许可。

    5.7K40

    OpenCV-Python学习教程.1

    虽然不太清晰但是已经够用了 因为最近做图形算法比较多,所以对cv2熟悉是必然,倒是以前函数差不多,就是一些小细节不太一样。...,这个代码会打开一个视频捕获窗口 import cv2 win_name = 'VideoCaptureProperties' videoCapture = cv2.VideoCapture(1)...可以写成这样 ---- 解释一下这个imshow为什么会预览视频: cv2.imshow('frame',frame)将每一帧显示在一个叫frame窗口上。...这里解释一下,为什么这样显示在窗口上会产生视频效果。操作图像时候显示多幅图像时候,若cv2.imshow() 指定相同窗口名,这样后面显示图片会覆盖前面的图片,而产生一个窗口。...这里视频显示也是同样道理,每次while循环,窗口'frame'名字不变,这样每一帧会覆盖上一帧,就产生了视频效果。 ----

    57140

    OpenCV调用USB摄像头相机,并解决1080p下延迟卡顿问题(附Python代码)

    高分辨率视频流延迟问题 摄像头成功加载出来,但是默认分辨率太低(相机支持是1080p),通过如下代码设置分辨率帧率: cap.set(cv.CAP_PROP_FRAME_WIDTH, 1920)...: 设置格式为MJPG: cap.set(cv.CAP_PROP_FOURCC, cv.VideoWriter_fourcc('M', 'J', 'P', 'G')) ==> 无法解决问题,依然有延迟...开启多线程接受图像信息,依然无法解决问题,延迟依旧 发现修改为低分辨率时候卡顿会降低,推测可能是由于分辨率太高导致延迟现象,但是理论上来说这点算力对计算机是没影响,结果在修改分辨率时候突然问题就解决了...,实际成像依然会匹配相机1920x1080,保存时候也是1920x1080 而且画面会之前cv默认分辨率帧率一样,及其流畅,几乎无延迟 具体啥愿意就不知道了,希望有大佬可以解答一下~ 下面放上完整代码供参考...(cv.CAP_PROP_FRAME_WIDTH, 1900) # 解决问题关键!!!

    3K20
    领券