【问题标题】:python compare 2 frames in single video from openCVpython比较来自openCV的单个视频中的2帧
【发布时间】:2019-05-04 13:05:01
【问题描述】:

我有一个要自动化的测试用例,其中框架位于 python 中,我们需要验证进度条是否已从其早期位置增加。

假设我们正在观看应用程序上的视频,我们需要测试进度条/滑动条是否真的增加了?

测试自动化步骤:

  1. 裁剪进度条的图像[PNG]。
  2. 捕获或读取 PNG 并检查进度条状态。
  3. 15 分钟后,再次读取或捕获第二个 PNG 并检查进度条状态。
  4. 现在,比较 png 并验证进度条是否增加了。

您能否在使用 openCV、numpy 模块时在 python 中提出建议。

【问题讨论】:

    标签: python numpy opencv cv2


    【解决方案1】:

    您可以轻松地使用 opencv 和 numpy 来实现相同的目的。 首先使用 opencv 从视频中读取帧,然后在视频通过的每 15 分钟,我们可以使用一些相似性算法,如 compare_ssim(在 scipy.measure 中可用)来比较当前帧和前一帧。 如果图像相似,compare_ssim 给出接近 1 的数字,如果不相似,则接近 0。您可以轻松地为您的用例使用 0.7 的阈值,因为您想检查完全匹配。

    您可以通过以下方式开始阅读您的视频:

    cap = cv2.VideoCapture('path to your video')

    然后使用while循环遍历cap,就可以使用访问frame了

    _, frame = cap.read()

    你还必须从 scipy 导入 ssim

    from skimage.measure import compare_ssim as ssim

    然后当您有两个要比较的框架时:

    simlarityIndex = ssim(imageCurrentReshape, imageLoadedReshape)

    相似度指数表示您的图像的相似程度,值越大,图像相似。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-26
      • 2017-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多