-1

現在、画像処理のために MATLAB を使用する必要がありました。しかし、私は MATLAB についてほとんど何も知りません。おそらく、MATLAB を使用するのはおそらくこのときだけでしょう (願っています)。だから私はあなたの助けを借りたかった. これが私がこれまでに行ったことです:

.trk ファイルからデータを正常に読み取り、そのヘッダーと本文を解析しました。次に、補間を適用する必要があります。その前に、私の変数に関する情報は次のとおりです。

私は持っていtracks <1x110470 struct>ます。トラック構造体の下に、2 つのベクトルがあります。nPointsとですmatrixnPointsベクトルに存在する点の数を含めますmatrix

たとえば、tracks(1,95607)、nPoints=3、matrix={(1.2323,1.4441,2.345),(2.333,4.555,4.123),(1.22,2.33,3.44)} を選択した場合

nPoints は固定数ではありません。100 などの場合もありますが、行列はnPoints*3ベクトルです。私は常に3つの座標を持っています。

今私がしなければならないことは、境界の半分を取得してその新しいポイントを追加するなどの基本的な補間です。track(1,2) の下に 3 つの点 a、b、c、d があると仮定して、点 (a+b)/2 と (b+c)/2 と (c+d)/ を追加する必要があります。 2.

まず第一に、これを行うアルゴリズムをうまく書くことさえできませんでした。手伝っていただけませんか?(補間はすべてのトラックに適用されます。ただし、たとえばトラック(1,1)とトラック(1,2)の間の補間は行いません。トラック内のポイントにのみ適用し、トラック内のポイントはソートされていません。)

第二に、私が疑問に思っていたのは、パラメータ化された補間を行うアルゴリズムを持つことは可能かということです。つまり、次のとおりです。

私のポイントが次のとおりであると仮定します: a,b

パラメータ= 1の場合、(a + b)/2のみを追加したい

パラメータ=2の場合、パラメータ=1の場合、パラメータに加えて (a+(a+b)/2)/2 と ((a+b)/2)+b)/2 も必要です

.. .. ..

みたいに繰り返していきたいと思います。出来ますか?

コーディングに何時間も費やしましたが、今では疲れ果て始めています。あなたの助けに本当に感謝します。

よろしく、 アマデウス

4

2 に答える 2

1

あなたが本当に望んでいる「パラメータ化された補間」が何であるかを実際に理解することはできません。ここに私の最善の推測を入れます。

[a b c d] -> [a (a+b)/2 b (b+c)/2 c (c+d)/2 d]おそらく複数の反復を使用して、ある時点で変換を行いたいと思います。

その問題について、私の解決策は

ret = function interp(v, rounds)
    n=length(v);
    avg = (v(1:n-1)+v(2:n))./2;
    temp = [v(1:n-1); avg];
    ret = [temp(:), v(n)];
    if rounds>1
        ret = interp(ret, rounds-1);
    end
end

[a b c d] -> [a (a+b)/2 b (b+c)/2 c (c+d)/2 d]変換は で与えられます
interp([a b c d], 1)

その他の例: interp([1 2], 2)-> [1 1.25 1.5 1.75 2].

于 2012-11-20T05:06:47.523 に答える
0

Signal Processingと公式の Matlab ヘルプ (F1) を参照してください。

于 2012-11-19T17:03:33.877 に答える