python实战篇(三)---放慢视频VS图像添加文字

      加油,我们一直同行,最美好的,永远是昨天。

by 世外居士

回味与往后

     前面我们对图像和视频的读取进行了实操,今天我们继续来学习它们的处理-------放慢视频VS图像添加文字,学会今天的项目,你将会进入新的境界。

一、放慢视频

     相信在我们平时的生活工作中,大家可能遇到过这样的问题,有一段不错的视频,但是时间很短,而且播放速度较快,快的你都看不清视频中的某个细节,你一定想过,要是视频能够放慢一点就好了,这样我们就能看到视频的细节部分了,带着这样的问题,我们进入今天的实战,原理:读取视频,从视频中取出一帧帧图像保存,关键在于保存的时候将每一张图像进行延时,如此循环到视频的结束,这样原来的视频每一个图像都变慢了一定时间,总得视频也就变得慢了,下面请看关键函数讲解:

代码片段1:

# 下面的代码在于得到视频的原始信息,这样我们就可以用同样得到方式对处理后的视频进行保存,而不去生成未知的视频格式。


#获取帧率
src_fps = cap.get(cv2.CAP_PROP_FPS)
# 原始的帧率
# 获取总帧数
totalFrameNumber = int(
cap.get(cv2.CAP_PROP_FRAME_COUNT))
print("原始的帧率:", src_fps)
print("原始的总帧数", totalFrameNumber)
interval = 1
# 捕获图像的间隔,单位:秒
num_frames = totalFrameNumber
# 捕获图像的总帧数
out_fps = src_fps
# 输出文件的帧率

代码片段2:

# 视频保存参数设置

# 设置要保存视频的编码,分辨率和帧率
video = cv2.VideoWriter(
    "out.mp4",
    cv2.VideoWriter_fourcc('M','P','4','V'),
    #cv2.VideoWriter_fourcc('F','L','V','1'),
    out_fps,
    size
)

代码片段3:

# 视频图像循环读取及保存

for i in range(num_frames):
    _, frame = cap.read()
    video.write(frame)
    # 将视频一帧帧保存下来
      # 如果希望把每一帧也存成文件
          比如:制作GIF,则取消下面的注释
      # filename = '{:0>6d}.png'.format(i)
    # cv2.imwrite(filename, frame)
    # 打印是否捕获当前帧
     print('Frame {} is captured.'.format(i+1))
    time.sleep(interval)

运行结果:

     如此得出的视频,便是放慢了。。

二、图像添加文字。

     平时,我们在发送图片时,第一个想到的就是截图,涂鸦,添加文字信息,这样的操作其实很简单,我们来看一看python+OpenCV是如何做到的。

代码实践:

# -*- coding:gbk -*-
import cv2

ori_img = cv2.imread("tower.jpg")
img = ori_img.copy()
font = cv2.FONT_HERSHEY_SIMPLEX
# 想要用的字体声明
# 在img图像上,左上角坐标为
   (100,200)的位置
 开始写文字:Eiffel Tower(埃菲尔铁塔)
cv2.putText(img, 'Eiffel Tower ',
             (100, 200), font,4,
             (255, 255, 255), 2,
             lineType=cv2.LINE_AA)
cv2.imshow('添加文字后的图像', img)
# 显示图像
cv2.imshow('原始图像', ori_img)
# 显示图像
cv2.waitKey(0)

运行结果:

原图

效果图

    如此,我们的代码成功的实现了在图片上添加文字,请欣赏美景。。。

   

    居士寄语:上面的例子不难,希望大家实操一遍,再去体会他们的读取和处理方式,期待在以后的生活工作中用到,如此,幸甚至哉!

往期精彩回顾

人工智能那些事儿

python实战篇(一)----人脸检测与识别

电脑知识系列之(九)------清灰你要知道的那些事

·END·
 

IT进阶之旅

平凡·却不失魅力

微信号:IT进阶之旅
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值