主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

opticalFlowHS

Horn-Schunck法を使用してオプティカルフローを推定するオブジェクト

説明

Horn-Schunck法を使用して移動するオブジェクトの方向と速度を推定するオプティカルフローオブジェクトを作成します。オブジェクト関数estimateFlowを使用して,オプティカルフローベクトルを推定します。オブジェクト関数重置を使用すると,オプティカルフローオブジェクトの内部状態をリセットできます。

作成

説明

opticFlow= opticalFlowHSは,ビデオ内の移動するオブジェクトの方向と速度の推定に使用できるオプティカルフローオブジェクトを返します。オプティカルフローはHorn-Schunck法を使用して推定されます。

opticFlow= opticalFlowHS (名称,值は1つ以上の名称,值のペアの引数として指定されたプロパティを使用してオプティカルフローオブジェクトを返します。指定していないプロパティはすべて既定値になります。各プロパティ名を引用符で囲みます。

たとえば,opticalFlowHS(“平滑”,1.5)です。

プロパティ

すべて展開する

オプティカルフローの必要な平滑度。正のスカラーとして指定します。連続フレーム間に動きの増加がある場合はこの値を大きくします。“平滑”の標準値は約1です。

最大反復回数。正の整数値スカラーとして指定します。低速のオブジェクトのオプティカルフローを推定するには,この値を大きくします。

反復的な計算は,反復回数が“MaxIteration”の値と等しくなるか,アルゴリズムが“VelocityDifference”に設定された値に達すると停止します。“MaxIteration”のみを使用して計算を停止するには,“VelocityDifference”の値を0に設定します。

最小速度差の絶対値。正のスカラーとして指定します。この値は入力データ型によって異なります。低速のオブジェクトのオプティカル フローを推定するには、この値を小さくします。

反復的な計算は,アルゴリズムが“VelocityDifference”に設定された値に達するか,反復回数が“MaxIteration”と等しくなると停止します。“VelocityDifference”のみを使用して計算を停止するには,“MaxIteration”に設定します。

オブジェクト関数

estimateFlow 光流估计
重置 重置光流估计对象的内部状态

すべて折りたたむ

入力ビデオファイルvisiontraffic.aviVideoReaderオブジェクトを作成します。読み取るフレームのタイムスタンプを11と指定します。

vidReader = VideoReader (“visiontraffic.avi”“CurrentTime”11);

オプティカルフロー推定法をopticalFlowHSと指定します。出力はオブジェクトで,オプティカルフロー推定法とそのプロパティを指定します。

opticFlow = opticalFlowHS
opticFlow = opticalFlowHS,具有平滑度:1 MaxIteration: 10 VelocityDifference: 0

カスタム图ウィンドウを作成して,オプティカルフローベクトルを可視化します。

h =图;movegui (h);hViewPanel = uipanel (h,“位置”,[0 0 1 1],“标题”“光流矢量图”);hPlot =轴(hViewPanel);

イメージフレームをVideoReaderオブジェクトから読み取って,グレースケールイメージに変換します。連続するイメージフレームからオプティカルフローを推定します。現在のイメージフレームを表示して,オプティカルフローベクトルを颤抖プロットとしてプロットします。

hasFrame(vidReader) frameRGB = readFrame(vidReader);frameGray = im2gray (frameRGB);流= estimateFlow (opticFlow frameGray);imshow (frameRGB)情节(流,“DecimationFactor”, 5 [5],“ScaleFactor”现年60岁的“父”, hPlot);持有暂停(10 ^ 3)结束

图包含一个轴和一个uipanel类型的对象。坐标轴包含2个类型为image, quiver的对象。

图包含一个轴和一个uipanel类型的对象。坐标轴包含2个类型为image, quiver的对象。

アルゴリズム

すべて展開する

2つのイメージ間のオプティカルフローを計算するには,次のオプティカルフロー拘束方程式を解かなければなりません。

x u + y v + t 0

  • x y および t は,時空間イメージの明るさの導関数です。

  • uは水平方向のオプティカルフローです。

  • vは垂直方向のオプティカルフローです。

参照

Barron, J. L., D. J. Fleet, S. S. Beauchemin和T. A. Burkitt。光流技术的性能。计算机视觉与模式识别(CVPR), 2015, 36(6): 741 - 741。伊利诺伊州香槟市:CVPR, 1992年。

拡張機能

C / c++コード生成
MATLAB®编码器™を使用してCおよびc++コードを生成します。

R2015aで導入