3D (xyz) グリッドのスムージングに使用する方法について、一般的な質問があります。
私のプログラムには、ステレオビジョン法で取得された 3D ポイントの大きなマトリックスがあります。結果の形状は常に半球のようなものですが、立体視エラーによるしわがあります。除去したいです。
問題は、それをどのように行うかです。今、私はなだめる方法を半分開発しましたが、もっと良い方法があるかもしれないと思います.
私の実際のアイデアは、エルミート法を使用することです。アイデアは次のとおりです。
すべての XY を取り、2 方向に滑らかにする -> XYnew と XnewY
エルミート ラインをベジエ ラインに変換し、XYnew と XnewY の間の交点を見つけ、新しい点を持ちます。(すべてのポイントで繰り返します。通常は 2000)
XYZnew を持つエルミート XYZ スムージングを使用します。
現在、エルミート サーフェス スムージングとエルミート ライン スムージングを C++ で実装していますが、中間部分は思ったほど簡単ではありません。
とにかく、私の質問は、これは正しい方法ですか、それとももっと良い方法がありますか?
もちろん、アイデアはステレオビジョン法によって生成されたエラーを排除することです.これはコンピュータグラフィックスの問題ではなく、データ処理の問題です.
付録:
最初は、Z スムージングで十分だと思いましたが、明らかにそうではありません。XY エラーも多くあります。下の画像では、Z フィッティングが機能していることがわかりますが、2 番目の画像に見られるように、まだ非常に頑丈です。(色は変形であり、かなり連続している必要があります)