如何使用OpenCV在视频上查找对象

Tha*_*988 9 c++ opencv video-capture image-processing video-processing

要跟踪视频帧上的对象,首先我从视频中提取图像帧并将这些图像保存到文件夹中.然后我应该处理这些图像以找到一个对象.实际上我不知道这是否是实用的,因为所有的算法都是一步完成的.它是否正确?

kar*_*lip 9

那么,根据视频的大小和帧的大小,您的方法会占用磁盘上的大量空间,而且您将花费大量时间从磁盘读取帧.

您是否尝试过执行实时视频处理?如果你的算法不是太慢,有一些帖子显示你需要做的事情:

  • 这篇文章演示了如何使用OpenCV的C接口执行一个功能,将网络摄像头捕获的帧(即时)转换为灰度,并在屏幕上显示;
  • 这篇文章展示了一种使用C++接口检测图像中的正方形的简单方法;
  • 这篇文章略有变化,并展示了如何检测纸张;
  • 该线程显示了几种不同的方法来执行高级方形检测.

我相信您能够将代码从C接口转换为C++接口.


Jav*_*ock 5

如果您正在使用OpenCV,那么存储视频帧是没有意义的,因为它具有实时捕获来自摄像机/存储视频的帧的方便方法.

在这篇文章中,您有一个用于捕获视频帧的示例代码.

然后,如果要检测这些帧上的对象,则需要使用检测算法处理每个帧.OpenCV带来了一些与该主题相关的示例代码.例如,您可以尝试使用SIFT算法来检测图片.

  • OpenCV拥有所有优秀的算法.SIFT,FAST,SURF,RANSAC,...对于检测对象,首先需要描述它的"特征"(可以通过SIFT获得)和匹配算法(matchTemplate,ej).谷歌有点,在stackoverflow搜索帖子,你将实际获得代码,但首先尝试自己的东西.在开始是棘手的,但你可以在这里寻求帮助. (2认同)