おはようございます。C#Emgu:DISOpticalFlowの使用
私はビデオ用のリアルタイムフレーム補間プログラムを作成しようとしています。 私はいつもC#で働いていたので、OpenCVをEmgu 3.2.0(最新版avaible)と併用することにしました。だから、
、ここにある:
まず、私は2枚のフレーム1とフレーム2という名前の画像、ウィッヒは明らかに私のビデオから2つのフレームですしています。
次私は今、私はそれらの2つのフレーム間の移動ベクトルを得るためにそれを使用する必要があります
を以下のように私DISOpticalFlowオブジェクトを構築します。
私はflowという名前のグレーイメージを作成し、私はDISOpticalFlowのcalcメソッドを使用します。
Aaaaand ...何もありません。何を試しても、フローは常に空です(この画面を参照:http://imgur.com/ozN0XgN)
私は何が間違っているのでしょうか?
読者のみなさん、ありがとうございました。
CODE:
//My items
Image<Bgr, Byte> frame1 = new Image<Bgr, Byte>(1280, 720);
Image<Bgr, Byte> frame2 = new Image<Bgr, Byte>(1280, 720);
DISOpticalFlow opticalFlowAlgorithm = new DISOpticalFlow(DISOpticalFlow.Preset.Medium);
Image<Gray, Byte> flow= new Image<Gray, Byte>(1280, 720);
//Get my frame from my server
//Note : this is working without any problem, if I display those frames with CvInvoke.Imshow, everything is good
server.waitFrame.WaitOne();
frame1.Bytes = server.frame1;
server.waitFrame.WaitOne();
frame1.Bytes = server.frame1;
//Now I get my optical flow :
opticalFlowAlgorithm.Calc(frame1.Convert<Gray, byte>(), frame2.Convert<Gray, byte>(), flow);