当前位置: 首页 > news >正文

视频转化为图片或灰度视频

1.视频转化为图片

import cv2video_path=r"D:\Dataset\video/7.mp4"
capture=cv2.VideoCapture(video_path)
# print(capture.get(5))if capture.isOpened():ret,img=capture.read()index=0while ret:if index%20==0:imgid=r"D:\Dataset\image/6/"+"%07d"%index+".jpg"print(index,ret)cv2.imwrite(imgid,img)ret,img=capture.read()index=index+1
capture.release()

2.视频转化为灰度视频

import cv2
'''
这是一个将彩色视频装换成灰度视频的代码块
'''
cap = cv2.VideoCapture(r'D:\Dataset/video/1.mp4')fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')
out = cv2.VideoWriter(r'D:\Dataset\video/1-1.mp4',fourcc, 30.0, (720,1280),False)while(cap.isOpened()):ret, frame = cap.read()if ret==True:frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)out.write(frame)cv2.imshow('frame',frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakelse:break
cap.release()
out.release()
cv2.destroyAllWindows()

3.图片转化为视频

import numpy as np
import cv2
size = (432,288)#这个是图片的尺寸,一定要和要用的图片size一致
#完成写入对象的创建,第一个参数是合成之后的视频的名称,第二个参数是可以使用的编码器,第三个参数是帧率即每秒钟展示多少张图片,第四个参数是图片大小信息
videowrite = cv2.VideoWriter(r'F:\test.mp4',-1,20,size)#20是帧数,size是图片尺寸
img_array=[]
for filename in [r'F:\Picture\{0}.jpg'.format(i) for i in range(100000)]:#这个循环是为了读取所有要用的图片文件img = cv2.imread(filename)if img is None:print(filename + " is error!")continueimg_array.append(img)
for i in range(100000):#把读取的图片文件写进去videowrite.write(img_array[i])
videowrite.release()
print('end!')

4.打开摄像头

import cv2
import numpy as np
def video_demo():capture = cv2.VideoCapture(0,cv2.CAP_DSHOW)#0为电脑内置摄像头while(True):ret, frame = capture.read()#摄像头读取,ret为是否成功打开摄像头,true,false。 frame为视频的每一帧图像frame = cv2.flip(frame, 1)#摄像头是和人对立的,将图像左右调换回来正常显示。cv2.imshow("video", frame)c = cv2.waitKey(50)if c == 27:break
video_demo()
cv2.destroyAllWindows()
http://www.lryc.cn/news/99263.html

相关文章:

  • 【动态规划刷题 2】使⽤最⼩花费爬楼梯 解码⽅法
  • Python的基本语法
  • Kubernetes那点事儿——存储之存储卷
  • Go语言中‘String’包中的‘Cut‘函数的实现
  • 【JAVASE】顺序和选择结构
  • Oracle恢复删除的数据
  • (无人机方向)ros小白之键盘控制无人机(终端方式)
  • 【python学习笔记】argparse --- 命令行选项、参数和子命令解析器
  • 【Java框架】RPC远程调用
  • 云原生全栈体系(一)
  • 【【51单片机直流电机调速】】
  • 【Spring Boot】
  • 使用docker 部署自己的chatgpt
  • Python适配器模式介绍、使用方法
  • 【数据结构】复杂度
  • 【读点论文】PP-YOLOE: An evolved version of YOLO,面向友好部署的模型设计,为项目后续产业落地提供了更加有效的参考
  • 微服务入门---SpringCloud(二)
  • 51单片机IO口控制
  • ERROR 1064 - You have an error in your SQL syntax;
  • leetcode做题笔记46
  • 快问快答JS面向对象面试题
  • googlenet论文理解
  • OnnxRuntime TensorRT OpenCV::DNN性能对比(YoloV8)实测
  • 【QT 网络云盘客户端】——获取用户文件列表信息
  • 从0到1,无代码开发如何简化产品创新流程
  • select、epoll 的快速核心理解
  • HTTP和HTTPS的区别
  • 分布式异步任务处理组件(二)
  • Jenkins 拉取 GitHub 私有仓库失败问题
  • 小程序 多层次对象数组的赋值、动态赋值