Python下获取视频的旋转角度信息

更新时间:2023-05-14 12:49:42 阅读: 评论:0

Python下获取视频的旋转⾓度信息
1. 描述
使⽤⼿机等电⼦产品录制的视频在电脑上播放的时候是正的,但是使⽤OpenCV库进⾏读取的时候却是另外的⾓度,这是因为OpenCV在读取视频数据的时候没有去考虑视频内部保存的TAG信息(其中包含旋转⾓度等),但是使⽤OpenCV库却⽆法获取视频的旋转⾓度信息。对此,可以使⽤python包scikit-video进⾏获取。
安装scikit-video:
pip install scikit-video
2. 参考代码
import cv2
import skvideo.io
# 得到旋转⾓度之后,对视频帧旋转对应的负⾓度便可以得到正向的图像
def rotate_img_data(img_data, degree):
h, w = img_data.shape[:2]
sugar bowl(cx, cy)=(w /2, h /2)
# 设置旋转矩阵babel
M = RotationMatrix2D((cx, cy),-degree, scale=1.0)
cos = np.abs(M[0,0])
sin = np.abs(M[0,1])
# 计算图像旋转后的新边界
nW =int((h * sin)+(w * cos))
if one day
动感英语2nH =int((h * cos)+(w * sin))
英语翻译论文# 调整旋转矩阵的移动距离(t_{x}, t_{y})
pant的意思
M[0,2]+=(nW /2)- cx
jingle bells mp3M[1,2]+=(nH /2)- cy
img_rotated = cv2.warpAffine(img_data, M,(nW, nH))初始吸血鬼
return img_rotated
if __name__ =="__main__":
file_name ="test.MOV"
# get video info(rotate)
video_metadata = skvideo.io.ffprobe(file_name)
#video_tag_info = video_metadata['video']['tag']
rotate_degree_info =-1.0
for tag_info in video_metadata['video']['tag']:
dropped
麦当娜经典歌曲for key, val in tag_info.items():
if val =="rotate":
rotate_degree_info =float(tag_info["@value"])
print("Info: video rotate degree info:{}".format(rotate_degree_info))
break
# read video quence
video_io = cv2.VideoCapture(file_name)
all_frame_nums = (cv2.CAP_PROP_FRAME_COUNT)
read_status, video_frame = ad()
while read_status:
# rotate the image if needs
if abs(-1.0- rotate_degree_info)>1.0:
video_frame = rotate_img_data(py(), rotate_degree_info)
read_status, video_frame = ad()
PS:其中旋转部分代码来⾃:

本文发布于:2023-05-14 12:49:42,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/627394.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:旋转   视频   时候   矩阵   信息
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图