【发布时间】:2019-05-10 07:45:55
【问题描述】:
我有下面的代码和 cv2 。此代码从https://github.com/dipakkr/3d-cnn-action-recognition 下载。我想使用 cv2.imshow 来可视化它获得的视频帧。但我收到以下错误。问题是什么? 我怀疑这段代码是否真的能够读取视频,因为输出是一个零数组。
def video3d(self, filename, color=False, skip=True):
cap = cv2.VideoCapture(filename)
#ret, frame=cap.read()
#cv2.imshow('frame', frame)
nframe = cap.get(cv2.CAP_PROP_FRAME_COUNT) #Returns the specified VideoCapture property ,,Number of frames in the video file
print (nframe, "nframe")
if skip:
frames = [x * nframe / self.depth for x in range(self.depth)]
print (frames, "frameeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeees")
else:
frames = [x for x in range(self.depth)]
print (frames, "frameseeeeeeeeeeeeeeeeeeeeeeeeeeeeeee2")
framearray = []
for i in range(self.depth):
cap.set(cv2.CAP_PROP_POS_FRAMES, frames[i]) #Sets a property in the VideoCapture. ,,0-based index of the frame to be decoded/captured next.
ret, frame = cap.read()
cv2.imshow(frame)
print(ret, "reeeeeeeeeeeeeeeeettttttttt")
print(frame ,"frame issssssssssss:")
frame = cv2.resize(frame, (self.height, self.width))
print(frame, "frame222 isssssssssssssss")
#cv2.imshow(frame)
if color:
framearray.append(frame)
else:
framearray.append(cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY))
cap.release()
return np.array(framearray)
X.append(vid3d.video3d(v_file_path, color=color, skip=skip))
错误:
main()
File "3dcnn.py", line 151, in main
args.output, args.color, args.skip)
File "3dcnn.py", line 103, in loaddata
X.append(vid3d.video3d(v_file_path, color=color, skip=skip))
File "/home/gxa131/Documents/final_project_computationalintelligence/3d-cnn-action-recognition/videoto3d.py", line 34, in video3d
cv2.imshow(frame)
TypeError: Required argument 'mat' (pos 2) not found
【问题讨论】: