微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用OpenCV读取文件夹中的第一张图像Python

如何解决如何使用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 = currprev = 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 举报,一经查实,本站将立刻删除。