コンピュータービジョンに関するプロジェクトを行っていますが、質問があります。OpenCVを使用してビデオを正常にロードした後、ビデオフレームを抽出し、それらの類似点を確認したいと思います。この目的を達成するには、マトリックスを使用する必要があると言われています。どうすればこれを行うことができますか?
2 に答える
ビデオフレームをキャプチャすると、マットクラスのインスタンスが取得されます。これはすでにビデオフレーム画像ピクセルのマトリックスです。
類似性を表示するには、フレームをキャプチャしてから別のフレームをキャプチャする必要があります。2つのフレームができたら、比較を実行できます。
ビデオキャプチャの2つのフレームを使用して画像を比較し、異なる結果を得る方法はたくさんあるので、達成したいことをさらに正確に説明する必要があります。
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マット-基本的なイメージコンテナ」のセクションでは、v1とv2のopenCVの違いと更新について説明し始めます。また、それらを交換可能に使用する方法も示していますが、個人的にはv2の構文とクラスに固執しています。
このセクションはすぐに複雑になる可能性があるため、時間をかけてください。
また、opencvをインストールすると、これらのチュートリアルのすべてのソースファイルがパッケージの一部であるか、少なくともそれらがすべて含まれているファイルがあることに注意してください。
それがさらに役立つことを願っています。
「類似性」とは正確にはどういう意味ですか?
異なるピクセルを意味する場合は、OpenCVで1つのフレームを別のフレームから単純に「減算」できます。「マトリックス」の部分は、おそらくOpenCVが画像を処理するために使用するcv::Mat構造を指します。
詳細については、いくつかのOpenCVチュートリアルを参照してください。