这两天在运行PRNet的代码,由于源代码是对二维图像进行处理,所以自己改了一下,先读取视频的每一帧,然后将这一帧图像作为输入,调用prnet,再将网络的输出一帧帧保存成视频。按理说很简单的几行代码就可以完成,但是在使用opencv将输出的每一帧图像保存成视频时,问题就出现了。
首先我把我的部分代码放上来。image.shape=(1280,720,3)
cap = cv2.VideoCapture("video/huachunying.mp4")#打开视频
# 通过摄像头的方式
# cap=cv2.VideoCapture(0)
wid = int(cap.get(3))
hei = int(cap.get(4))
framerate = int(cap.get(5))
image=plot_kpt(image, kpt)
image_kpt.append(image)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
framesize=(wid,hei)
outCamera = cv2.VideoWriter('video/result/outputCamera1.avi', fourcc, framerate, framesize)
for i in range(len(image_kpt)):
image=image_kpt[i]
cv2.imshow("frame",image)
cv2.waitKey(int(1000/framerate))
#image=(image*255).astype('int8'