python读取视频分辨率_VideoCapture()读取多个视频和帧分辨率问题

该博客讨论了如何使用OpenCV的VideoCapture在Python中读取多个视频,并处理它们的帧分辨率以组合成一个大帧。作者遇到的问题是当输入视频分辨率不同时,如何确定输出帧的大小,并询问如何同时读取多个VideoCapture对象的帧。
摘要由CSDN通过智能技术生成

根据这个article的答案,它指的是将单个图像组合成4面。从那里,我想从只使用一个视频到使用4个视频作为输入。在

这是我用单个视频作为输入的代码import cv2

import numpy as np

def make4side(image, scale=0.5):

# image = cv2.imread(image)

h = int((scale*image.shape[0])) #height

w = int((scale*image.shape[1])) #width

image = cv2.resize(image, (w,h ), interpolation = cv2.INTER_AREA) #shrink image to half

output = np.zeros((w+h+h , w + h + h, 3), dtype="uint8")

# top

output[0:h, h:h+w] = image

# left >> rotate 90

output[h:h+w, 0:h] = np.rot90(image,1)

# right >> rotate 270

output[h:h + w, h + w:h +w +h] = np.rot90(image,3)

# bottom >> rotate 180

output[h+w:h+w+h, h:h+w] = np.rot90(image,2)

return output

#cv2.imwrite('test.jpg', output)

def process(video):

cap = cv2.VideoCapture(video)

fourcc = cv2.VideoWriter_fourcc(*'XVID')

holo = None

ret = False

while(not ret):

ret, frame = cap.read()

if ret:

frame = cv2.resize(frame, (640, 480), interpolation = cv2.INTER_AREA)

holo = make4side(frame)

out = cv2.VideoWriter('hologram640x480.avi',fourcc, 23.98, (holo.shape[0],holo.shape[1]))

total_frames = cap.get(cv2.CAP_PROP_FRAME_COUNT)

count = 0

print("Processing %d frames"%(total_frames))

while(True):

# Capture frame-by-frame

ret, frame = cap.read()

if ret:

frame = cv2.resize(frame, (640, 480), interpolation = cv2.INTER_AREA)

holo = make4side(frame)

out.write(holo)

count += 1

print("Total:%d of %d"%(count,total_frames))

if(count>=total_frames-1):

break

cap.release()

out.release()

return

process('g.mov')

结果是这样的。在

d220707342526fd964847e220bd53771.png

在这段代码中,整个帧的高度和宽度都是基于输入的,这也是我所关注的单个视频,因为我使用了4个视频,当然帧分辨率不一样(但都是横向的)。函数make4side()中的变量h和w是帮助定位每个小框架的主要部分。那么对于这种情况,大帧(可变输出)的分辨率应该是多少?在

我必须读4个视频并将其写入一个,那么,我如何使用VideoCapture对象来实现这一目的呢

为了让我的问题更清楚,我想有一个单独的视频,由4个输入视频组成,每个视频将被放置在每个位置(顶部、底部、左侧和右侧)。我有一个大帧分辨率的问题,我不知道使用什么,如果我有4个视频,而不是一个。另一个问题是关于VideoCapture对象。我怎样才能同时读取所有视频的帧,或者以其他方式读取?在

谢谢你

编辑:

7ecb638c089707c3e2e2d2e9fede978f.png

顶部

2e5b5b9b9399349cafacb7f19a21aaef.png

左侧

4df04b07ffbc260e0eb99ab6e39c44fd.png

背面

c87ebe783c9f1056aade5b3f2f43b158.png

右侧

这些不是我将要使用的真正的帧,但只是一个简单的想法,我将使用我的视频。另外,输入文件的分辨率可能不同。如何使用多个videocapture对象来读取每个对象并将其放置在大帧的每一侧以编写单个视频

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值