iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >详解如何利用Python拍摄延时摄影
  • 174
分享到

详解如何利用Python拍摄延时摄影

2024-04-02 19:04:59 174人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录前言准备定时"拍摄"拼接延时摄影视频前言 这个时代,随着游戏引擎技术的快速发展,游戏画面越来越精美,许多人迷上了游戏内的角色、场景。 尤其是端游,显卡技术能够

前言

这个时代,随着游戏引擎技术的快速发展,游戏画面越来越精美,许多人迷上了游戏内的角色、场景。

尤其是端游,显卡技术能够支撑精美的游戏画面,最有名的莫过于《地平线》系列游戏。

使用python拍摄的《地平线4》延时摄影作品

很多玩家希望拍摄这些精美游戏中的画面,尤其是希望能拍摄到游戏内不同时刻的画面,为了满足这个需求,我们就需要用上延时摄影。游戏内的时间过得比现实世界更快,一个小时内可能你就能经历白天的夜晚的变化,这也为延时摄影提供了很好的环境。

那么究竟怎么在拍摄中实现延时的效果呢?方法大致有两种,最简单的可以先录制视频,然后用后期剪辑软件或者特效软件通过丢帧的方法实现,但这样一来便造成了巨大的浪费。拍几个小时的视频,如果通过丢帧实现延时效果,最后转换为几十分钟的片段,那么被丢掉的帧就要比最后留下的多得多。如果要实现更高速的画面运动,这种浪费无疑将会被更加扩大。

本篇教程介绍第二种方法,定时截图的形式,我们将结合前面Python实用宝典使用过的三个模块——moviepy、win32gui 及 PIL 为大家讲解如何使用Python在游戏中实现延时摄影,我还将教你如何将图片拼接成视频、添加背景音乐一条龙操作。

准备

开始之前,你要确保Python和pip已经成功安装在电脑上。

(可选1) 如果你用Python的目的是数据分析,可以直接安装Anaconda,它内置了Python和pip.

(可选2) 此外,推荐大家用vscode编辑器,它有许多的优点。

请选择以下任一种方式输入命令安装依赖:

1. windows 环境 打开 Cmd (开始-运行-CMD)。

2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。

3. 如果你用的是 VSCode编辑器 或 PyCharm,可以直接使用界面下方的Terminal.

pip install moviepy
pip install pypiwin32
pip install pillow

本文所有代码均开源在仓库

定时"拍摄"

为了实现定时拍摄的逻辑,我们需要用到pypiwin32模块和pillow模块,在之前的这篇文章中有介绍过:

超方便的 Python 自动唤醒窗口截图脚本

分为三个步骤:

1. 获得游戏窗口界面

2. 获得游戏界面大小

3. 截图

每隔N秒定时循环执行以上三个步骤,代码如下:

# main.py
# Python实用宝典
# 2022-03-25
import time
import win32gui
from PIL import ImageGrab


def get_window_pos(name):
    name = name
    handle = win32gui.FindWindow(0, name)
    if handle == 0:
        return None
    else:
        return win32gui.GetWindowRect(handle), handle

while True:
    try:
        (x1, y1, x2, y2), handle = get_window_pos('极限竞速:地平线 4')
        win32gui.SetForegroundWindow(handle)
        img_ready = ImageGrab.grab((x1, y1, x2, y2))
        img_ready.save(f"./result/{time.time()}.jpg")
        time.sleep(5)
    except Exception as e:
        print(e)

请注意,"极限竞速:地平线 4" 要改成你对应拍摄的游戏名称,这样,运行程序后就会自动在result文件夹下定时生成截图:

成功截取你想要的时间段的场景图片后,就可以进行下面的拼接和补充背景音乐部分。

拼接延时摄影视频

为了达到延时摄影的效果,我们在这一部分中将使用moviepy模块,拼接所有图片到一个视频中。

当然还要补充背景音乐,代码其实非常简单,调用了部分moviepy模块的功能:

# jointer.py
# Python实用宝典
# 2022-03-25
import os
import moviepy
import moviepy.video.io.ImageSequenceClip
from moviepy.editor import *

def pics2video(frames_dir, video_dst, music, fps=10):
    """
    图片合成MP4

    Args:
        frames_dir (str): 图片目录
        video_dst (str): 目标目录
        fps (int, optional): 帧数. Defaults to 25.
    """
    frames_name = sorted(os.listdir(frames_dir))
    frames_path = [frames_dir+frame_name for frame_name in frames_name]
    clip = moviepy.video.io.ImageSequenceClip.ImageSequenceClip(frames_path, fps=fps)
    
    audio_clip = AudioFileClip(music).volumex(0.5)
    audio = afx.audio_loop( audio_clip, duration=clip.duration)
    final_video = clip.set_audio(audio)

    final_video.write_videofile(video_dst, codec='libx264')

music = '打上花火.mp3'
frames_dir = './result/'
video_dst = 'screenshots.mp4'
pics2video(frames_dir, video_dst, music)

1.将你的音乐放在当前目录下,修改music变量为对应的文件名。

2.调整你想要的fps参数——帧数,这个值越低,画面越顺畅。

运行此文件后就会在当前文件夹下生成 'screenshots.mp4'. 这个就是我们的处理结果了,双击打开试试吧:

以上就是详解如何利用Python拍摄延时摄影的详细内容,更多关于Python延时摄影的资料请关注编程网其它相关文章!

--结束END--

本文标题: 详解如何利用Python拍摄延时摄影

本文链接: https://www.lsjlt.com/news/144540.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详解如何利用Python拍摄延时摄影
    目录前言准备定时"拍摄"拼接延时摄影视频前言 这个时代,随着游戏引擎技术的快速发展,游戏画面越来越精美,许多人迷上了游戏内的角色、场景。 尤其是端游,显卡技术能够...
    99+
    2024-04-02
  • 怎么利用Python拍摄延时摄影
    本文小编为大家详细介绍“怎么利用Python拍摄延时摄影”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么利用Python拍摄延时摄影”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。准备开始之前,你要确保Pyth...
    99+
    2023-06-29
  • Python如何实现调用摄像头拍摄照片
    本文小编为大家详细介绍“Python如何实现调用摄像头拍摄照片”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python如何实现调用摄像头拍摄照片”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。步骤用opencv...
    99+
    2023-07-02
  • 如何用python获取到照片拍摄时的详细位置(附源码)
    目录一.引言1.读取照片信息,获取坐标2.通过baidu Map的API将GPS信息转换成地址。二.源码附上!!!注意事项总结一.引言 先看获取到的效果 拍摄时间:2021:12:1...
    99+
    2022-12-10
    python获取图片位置信息 python 读取图片坐标 python获取照片的地点
  • 怎么用python获取到照片拍摄时的详细位置
    一.引言我们的朋友给我们发来一张照片我们如何获取到她的位置呢用手机拍照会带着GPS信息,原来没注意过这个,因此查看下并使用代码获取照片里的GPS信息查看图片文件属性1.读取照片信息,获取坐标ExifReadPython library to...
    99+
    2023-05-19
    Python
  • 如何使用VUE+faceApi.js实现摄像头拍摄人脸识别
    目录需求:实现步骤:第一步:下载引入必要包下载依赖下载model将项目中的model放入VUE中的public文件加下第二步:先把HTML写上去 第三步 可以开始...
    99+
    2023-05-18
    face api.js 人脸识别 vue实现人脸识别 人脸识别 js
  • 详解Android Flutter如何使用相机实现拍摄照片
    目录简介使用相机前的准备工作在flutter中使用camera总结简介 在app中使用相机肯定是再平常不过的一项事情了,相机肯定涉及到了底层原生代码的调用,那么在flutter中如何...
    99+
    2023-05-14
    Android Flutter相机拍摄照片 Flutter相机拍摄照片 Android Flutter 相机
  • python解析照片拍摄时间进行图片整理
    目录引言1. 获取图片拍摄时间2. 获取视频拍摄时间3. 根据图片时间建立文件夹完整代码引言 手机中拍摄照的照片和视频快爆了,想转移到PC端,并按时间建立文件夹存储到电脑中,本文主要...
    99+
    2024-04-02
  • 利用python实现查看溧阳的摄影圈
    目录目标站点分析溧阳摄影圈图片采集代码前言: 本篇博客继续学习BeautifulSoup,目标站点选取“溧阳摄影圈”,这一地方论坛。 目标站点分析 本次要采集...
    99+
    2024-04-02
  • 怎么利用python实现查看溧阳的摄影圈
    这篇“怎么利用python实现查看溧阳的摄影圈”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么利用python实现查看溧阳...
    99+
    2023-06-30
  • Python实现摄像头实时换脸详解
    目录环境与效果基本原理完整源码环境与效果 python3.9.6 pycharm 2021 库环境: dlib opencv-python 视频图片效果如下: 视频链接 摄像头实时换...
    99+
    2024-04-02
  • python利用pyqt5和opencv打开电脑摄像头并进行拍照
    python利用pyqt5和opencv打开电脑摄像头并进行拍照 效果如下: 代码如下: #!/usr/bin/python # -*- coding: UTF-8 -*- import sys import cv2 from ...
    99+
    2024-04-02
  • Electron调用外接摄像头并拍照上传实现详解
    目录背景需求分析实现视频采集MediaDevices.getUserMedia()拍照生成图片上传图片至CDN1. 使用HTMLCanvasElement.toBlob()语法参数2...
    99+
    2023-02-24
    Electron调用摄像头拍照上传 Electron调用外接摄像头
  • 如何使用HTML5实现超酷摄像头拍照功能
    这篇文章给大家分享的是有关如何使用HTML5实现超酷摄像头拍照功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。WebRTC可能是明年最受关注的HTML5标准了,Mozilla为...
    99+
    2024-04-02
  • VS2017+Qt5+Opencv3.4如何调用摄像头拍照并存储
    这篇文章主要介绍了VS2017+Qt5+Opencv3.4如何调用摄像头拍照并存储,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 Qt的ui界面,找着画就好头文件直...
    99+
    2023-06-15
  • 利用JavaCV如何实现抓取并保存摄像头的影像
    今天就跟大家聊聊有关利用JavaCV如何实现抓取并保存摄像头的影像,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。实现:import java.awt.Graphics2D; impo...
    99+
    2023-05-31
    javacv ava
  • 如何使用PYTHON操作摄像头
    用过USB摄像头的都知道,你需要使用鼠标来操作它,比如截个图,录个像什么的,要点N次鼠标,对于我们那些不喜欢多次点击鼠标的人来说,这是一件很boring的事情,所以,本文将教你如何使用Python来操作摄像头。这里,我们需要三个Python...
    99+
    2023-06-01
  • 关于Python如何调用摄像头
    完整代码 import cv2 cap = cv2.VideoCapture(0) while(cap.isOpened()): retval, frame = cap.re...
    99+
    2023-05-16
    Python 摄像头 Python 调用摄像头
  • win7摄像头不能用如何解决
    如果你的Windows 7摄像头不能正常工作,以下是一些可能的解决方案:1. 确保摄像头已正确连接:检查摄像头是否正确连接到计算机的...
    99+
    2023-09-02
    win7
  • python中如何通过opencv调用摄像头
    这篇文章主要为大家展示了“python中如何通过opencv调用摄像头”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python中如何通过opencv调用摄像头”这篇文章吧。实例源码:#pip3...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作