-1

我正在做一个关于计算机视觉的项目,我有一个问题。在我使用 OpenCV 成功加载视频后,我想提取视频帧并查看它们的相似之处。有人告诉我我需要使用矩阵来实现这个目的。我该怎么做呢?

4

2 回答 2

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 - The Basic Image Container”部分开始解释 openCV v1 和 v2 之间的差异和更新。它还展示了如何互换使用它们,但个人坚持 v2 语法和类。

花点时间阅读本节,因为它很快就会变得复杂。

另请注意,当您安装 opencv 时,我认为这些教程的所有源文件都是软件包的一部分,或者至少在某个地方有一个文件将它们全部包含在内。

希望进一步帮助。

于 2012-12-05T10:09:39.413 回答
0

你所说的“相似性”到底是什么意思?

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

详细阅读一些 OpenCV 教程。

于 2012-12-05T09:56:32.667 回答