如何解决如何使用OpenCV读取文件夹中的第一张图像Python
def cal_for_frames(video_path):
frames = glob(os.path.join(video_path,'*.jpg'))
frames.sort()
diff = []
prev = cv2.imread(frames[0])
prev = cv2.cvtColor(prev,cv2.COLOR_BGR2GRAY)
print(prev.dtype,prev.shape)
for i,frame_curr in enumerate(frames):
curr = cv2.imread(frame_curr)
curr = cv2.cvtColor(curr,cv2.COLOR_BGR2GRAY)
print(curr.dtype,curr.shape)
tmp_diff = compute_DIFF(prev,curr)
diff.append(tmp_diff)
prev = curr
return diff
现在,我希望我的prev
始终是文件夹中的第一张图像(即保持不变)。为此,我需要对prev = cv2.imread(frames[0])
进行哪些更改?其中frame000001
是文件夹中的第一张图像。
解决方法
只需删除for-loop
的最后一行:prev = curr
和prev = cv2.imread(frames[0])
。
但是您可以加快for-loop
的速度。如果print
函数不是很关键,则可以执行以下操作:
diff = [compute_DIFF(prev,cv2.cvtColor(cv2.imread(frame_curr),cv2.COLOR_BGR2GRAY)) for i,frame_curr in enumerate(frames)]
代码:
def cal_for_frames(video_path):
frames = glob(os.path.join(video_path,'*.jpg')).sort()
prev = cv2.cvtColor(cv2.imread(frames[0]),cv2.COLOR_BGR2GRAY)
print(prev.dtype,prev.shape)
diff = [compute_DIFF(prev,frame_curr in enumerate(frames)]
return diff
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。