python比较来自openCV的单个视频中的2帧

时间:2018-12-03 08:56:49

标签: python numpy opencv cv2

在框架位于python的地方,我有一个自动化的测试用例,因为我们需要验证进度条是否已从其先前位置增加。

让我们说我们正在观看应用程序上的视频,我们需要测试进度条/清理条是否真的增加了?

测试自动化步骤:

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

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

1 个答案:

答案 0 :(得分:0)

您可以轻松地使用opencv和numpy实现相同的功能。 首先使用opencv从视频中读取帧,然后每经过15分钟的视频,我们就可以使用一些相似算法(例如compare_ssim(可在scipy.measure中使用))比较当前帧和上一帧。 如果图像相似,则compare_ssim给出接近1的数字,如果图像相似,则接近0。您可以轻松地将用例的阈值设置为0.7,因为您要检查精确匹配。

您可以使用以下方法开始阅读视频:

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

然后使用while循环遍历笔帽,您可以使用

_, frame = cap.read()

还必须从scipy导入ssim

from skimage.measure import compare_ssim as ssim

然后当您有两个要比较的帧时使用:

simlarityIndex = ssim(imageCurrentReshape, imageLoadedReshape)

相似度指数表示您的图片有多少相似度,数值越大则相似度越高。

希望这会有所帮助。