直接上代码

"""视频转图片"""
port cv2
def getphoto(video_in, video_save):
cap = cv2.VideoCapture(video_in) # 打开视频文件
n_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) # 视频的帧数
fps = cap.get(cv2.CAP_PROP_FPS) # 视频的帧率
dur = n_frames / fps # 视频的时间
num_frame = 0
judge = cap.isOpened()
while judge:
flag, frame = cap.read() # flag是读取状态,frame下一帧
cv2.imshow('video', frame) # capture
if cv2.waitKey(0) == 27:
break
if flag:
num_frame += 1
# print("正在保存第%d张照片" % num_frame)
# cv2.imwrite('a\\' + str(num_frame) + '.jpg', frame) # cv2.imwrite(‘路径’ + ‘名字’ + ‘后缀’, 要存的帧)
# cv2.waitKey(1)
# # new_path = str(num_frame) + '.jpg'
# # cv2.imencode('.jpg', frame)[1].tofile(new_path)
else:
break

print("视频时长: %d 秒" % dur)
print("视频共有帧数: %d 保存帧数为: %d" % (n_frames, num_frame))
print("每秒的帧数(FPS): %.1lf" % fps)

def main():
video_in = 'apple.flv'
video_save = '2th'
getphoto(video_in, video_save)

if __name__ == '__main__':
main()


"""图片转视频"""
import cv2
import os

def getvideo(photo_path, video_name, fps):
filelist = os.listdir(photo_path)
size = (1440, 1080)
video = cv2.VideoWriter(video_name, cv2.VideoWriter_fourcc('I', '4', '2', '0'), fps, size)
num = int(0)
for item in filelist:
# print(item)
num += 1
print('转化到%d张' % num)
if item.endswith('.jpg'):
item = photo_path + item
img = cv2.imread(item)
video.write(img)
video.release()
cv2.destroyAllWindows()

def main():
photo_path = 'E:\\try apple\\aa\\'
video_name = 'new.avi'
fps = 30
getvideo(photo_path, video_name, fps)

if __name__ == '__main__':
main()

我想说的恶心的地方是:图片转视频时,一定不要把图片的像素大小弄错,我为此白白从凌晨到凌晨2点找bug,各种百度。

还有就是 filelist = os.listdir(photo_path) 这个东西输出后发现不是按照文件名的字典序,像是个二维数组,但是奇怪的是明明不是顺序读取图片的,但是合成后的视频竟然是正确的。但是如果你的图片种有一些一样的图片,合成的视频就会总是闪你那个一样的图片。

我试了下500张图片,钱50张是开场全是黑屏,合成的视频没有开场,但是总是闪黑屏,把这50张照片删了之后就好了。

做bad apple第二步: python如何将视频变成一帧帧的图片,如何将一帧帧的图片转为视频的更多相关文章

  1. [TPYBoard - Micropython之会python就能做硬件 开篇]会python就能做硬件!

    转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 会python就能做硬件! 在写这套教程之前,首先感觉山东萝卜电子科技有限公司(turnip ...

  2. Python+Opencv实现把图片转为视频

    1. 安装Opencv包 在Python命令行输入如下命令(如果你使用的Anaconda,直接进入Anaconda Prompt键入命令即可.如果你不知道Anaconda是什么,可以参考王树义老师的文 ...

  3. python将图片转换为Framebuffer裸数据格式(终端显示图片)

    要在ubuntu终端显示图片或者在板子的LCD显示图片,Framebuffer是一个简单易用的接口,直接写入像素信息即可. 但普通的图片带有头部信息或者编码格式不同,直接送入Framebuffer是显 ...

  4. python将图片转换为Framebuffer裸数据格式(终端显示图片)【转】

    转自:https://www.cnblogs.com/zqb-all/p/6107905.html 要在ubuntu终端显示图片或者在板子的LCD显示图片,Framebuffer是一个简单易用的接口, ...

  5. Python人工智能之图片识别,Python3一行代码实现图片文字识别

    1.Python人工智能之图片识别,Python3一行代码实现图片文字识别 2.tesseract-ocr安装包和中文语言包 注意:

  6. 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?

    import random import string def GenKey(length): chars = string.ascii_letters + string.digits return ...

  7. Python能做什么,自学Python效果怎么样?

    短时间掌握一门技能是现代社会的需求.生活节奏越来越快,现在不是大鱼吃小鱼,而是快鱼吃慢鱼的时代,人的时间比机器的时间更值钱.Python作为一种轻量级编程语言,语言简洁开发快,没那么多技巧,受到众多追 ...

  8. What exactly can you do with Python? Here are Python’s 3 main applications._你能用Python做什么?下面是Python的3个主要应用程序。

    原文链接 Github地址 一.陈述 1,我到底能用Python做什么? 我观察注意到Python三个主要流行的应用: 网站开发: 数据科学——包括机器学习,数据分析和数据可视化: 做脚本语言. 二. ...

  9. Python论做游戏外挂,Python输过谁?

    玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢? 我打开了4399小游戏网,点开了一个不知名的游戏,唔,做寿司的,有材料在一边,客人过来后说出他们的要求,你按照菜 ...

  10. sersync做实时同步(第二步)

    配置文件一般都在sersync2的根目录下.为.xml文件 下面做逐行的进行解释说明: <host hostip="localhost" port="8008&qu ...

随机推荐

  1. promethus+grafana监控

    1.监控 MySQL (终端可以安装在任意主机,不一定按在mysql节点上,注:mysql版本需在5.5以上) I.首先在mysql中添加监控使用的用户: create user 'exp'@'%' ...

  2. Flink配置详解及实践

    #jobManager的IP地址jobmanager.rpc.address: localhost #JobManager的端口号jobmanager.rpc.port: 6123 # JobMana ...

  3. phpmyadmin scripts/setup.php 反序列化漏洞(WooYun-2016-199433)(Kali)

    ​ phpmyadmin 2.x版本中存在一处反序列化漏洞,通过该漏洞,攻击者可以读取任意文件或执行任意代码. 通过vulhub靶场进行复现操作 1.首先搭建靶场环境(采用Kali) cd vulhu ...

  4. openEuler22.09初始化脚本

    #!/bin/bash s=`nmcli d | grep "已断开" | awk '{print $1}'` echo /etc/sysconfig/network-script ...

  5. 圣诞树代码_HTML

    这个冬天给TA栽不一样的圣诞树 直接上效果 <!DOCTYPE html> <html lang="en" > <head> <meta ...

  6. COLMAP论文阅读笔记——sfm算法、不定期更新

    文章目录 structure from motion revisited 第一步 对应点搜索 特征提取feature extraction 匹配matching 几何验证geometric verif ...

  7. SQL之查询

    1. SQL之模糊查询 例如查询姓名时,不用输入全名,仅仅输入其中的一部分 语法: select 列名 from 表名 where 列名 like 匹配串 其中 匹配串用英文的单引号括起来 四种匹配模 ...

  8. linux一些指令

    一.           文件操作命令 查看当前目录下的文件或文件夹 详细查看ls –l 每列代表不同的意义: 第一列drwxr-xr-x  表示权限, n  其中第一个字符d表示 目录(可能有b-块 ...

  9. IDEA2021 在jsp文件中 写out报错

    报错原因: 是因为没有关联好服务器: 解决方案 File --> Project structure --> Modules --> 选中当前的模板 --> Dependenc ...

  10. C++ Primer 15.9文本查找程序

    可以通过查询语句的组合进行检索,VS2015. main函数,读取存有数据的文件,进行检索.提供两种入口.查词,与按照表达式查询. 1 #include <iostream> 2 #inc ...