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