2

顔を表すことになっている点群があります。ガウスフィルターを複数回適用する必要があります。Javaで何かを試しましたが、うまくいきませんでした。私は間違って進んだのではないかと思います。目的は、いくつかの空の領域を「埋める」ことです。

n * n個のセルのマスクを作成し、これをすべてのポイントに適用しました。このマスクは、マスク内のポイントを考慮してガウスフィルターを適用することになっています。平均フィルターは適切に機能しますが(ただし、必要なものではありません)、作成したガウスフィルターは機能しません。

ポイントは3D空間上にあります。問題は、Javaでどのように進めて、3D空間の点群に適用するガウスフィルターを作成するのでしょうか。

解決策は簡単だと思いますが、何かが足りないと思います。ガウスフィルターについて必要なものをすべて読んでいます。ですから、おそらくそれは私が抱えているJavaの問題です。

4

1 に答える 1

2

他の誰かが同じ問題を抱えている場合に備えて。私はついにそれを行う方法を見つけました。これは、通常のカラー画像にフィルターを適用するようなものです。しかし、色の強度の値を取得する代わりに、x、y、zの3つの情報があります。したがって、ガウスマスク内のx、y、z値の標準偏差を個別に計算する必要があります。次に、マスク内の位置に応じて、マスクの各セルのガウスの重みを計算できます。

最後に、ガウスマスクを使用して取得した新しい値を計算できます。実際には非常に直感的ですが、点群のどこにでもフィルターを適用する必要がないことを考慮すると、パフォーマンスを向上させることができます。これにより、最終的にはクラウドの実際の形状が破損しますが、フィルターを空の状態でのみ適用することを決定できます。エリア、またはスパイクが配置されている場所。このようにして、穴、スパイク、境界線をすばやく修正できます。

別の提案として、ガウスフィルターを使用した場合でも、スパイクは実際には問題になる可能性があります。それらはまだマスク内に重みを持っているので、むしろ穴を持ってからスパイクを持ち、マスク内の非ヌル値のみを考慮して新しいx、y、zを生成できます。私はそれをしました、そしてそれは働いています。フィルタを適用する前に、スパイクを削除しようとしました。誰かがもっとエレガントな解決策を持っていると確信していますが、それでも誰かに役立つことを願っています。

于 2012-01-26T00:39:03.510 に答える