0

我正在使用 OpenCV 2.4 将视频转换为长(窄)马赛克。这是我第一次使用 OpenCV,但到目前为止,我已经成功地管理了以下内容:

  1. 从视频中获取帧。
  2. 使用 SIFT 获取关键点描述符。
  3. 使用 RANSAC 对异常值进行排序
  4. 求单应矩阵。

问题是当我将单应矩阵应用于其中一个帧/图像并尝试生成马赛克时。有时我收到一个错误,抱怨 warpPerspective() 的目标矩阵的大小太小。为了解决这个问题,我猜测尺寸过大以确保结果适合。但是,在将帧副本连接在一起后,我有一个大部分是黑色的巨大图像。所以我的问题是,我怎样才能以一种聪明的方式做到这一点?在将马赛克传递给 warpPerspective() 之前,如何计算我需要的目标矩阵的大小?我一直在尝试使用 ROI/Rect,但我不确定我在做什么。

如果您有任何建议,我将永远感激不尽。

4

1 回答 1

1

将单应矩阵应用于表示图像帧极端的点:(0,0,1);(w,0,1) 等。这些将为您提供新图像的范围。

于 2012-11-19T12:21:42.733 回答