使用矩阵查看与视频帧的相似性

时间:2012-12-05 09:53:28

标签: c++ opencv computer-vision

我正在做一个关于COmputer Vision的项目,我有一个问题。在使用OpenCV成功加载视频后,我想提取视频帧并查看它们的相似之处。我被告知我需要使用矩阵来达到这个目的。我该怎么做呢?

2 个答案:

答案 0 :(得分:1)

捕获视频帧时,您将获得Mat类的实例。这已经是您的视频帧图像像素的矩阵。

要查看相似之处,您需要捕获一个帧然后捕获另一个帧,一旦有两个帧就可以进行比较。

您需要更准确地解释您想要实现的目标,因为有很多方法可以比较图像并使用两帧视频捕获获得不同的结果。

Mat videoFrame, previousFrame;
VideoSource myCam;
// initialise your video frame.
prepVideoCam();

// start a loop{
    myCam >> videoFrame; // Captures the current frame to videoFrame.
    if(i_have_previousFrame)
        // do some processing if i have a previous frame.

    videoFrame.copyTo(previousFrame);
// back to loop

你会发现videoFrame已经是一个矩阵了。

如果你还没有这样做的话,为了帮助你从http://code.opencv.org/projects/opencv/wiki开始。 OpenCV从一个旧网站转移到一个新网站,我相信这是最新的。

下载此文档http://docs.opencv.org/opencv_tutorials.pdf

本文档将解释这些差异,并为您提供大量的教程,以便您顺利完成。

“2.1 Mat - 基本图像容器”部分开始解释v1和v2之间openCV的差异和更新。它还展示了如何交替使用它们,但个人坚持使用v2语法和类。

在本节中花些时间,因为它很快就会变得复杂。

另请注意,当您安装opencv时,我认为这些教程的所有源文件都是该软件包的一部分,或者至少有一个文件存在于其中。

希望有助于进一步发展。

答案 1 :(得分:0)

“相似之处”究竟是什么意思?

如果你的意思是不同的像素,你可以在OpenCV中简单地从另一帧“减去”一帧。 'matrix'部分可能是指OpenCV用来处理图像的cv :: Mat结构。

详细了解一些OpenCV教程。