垂直面にたくさんの点があります。実際には、この平面は正確に垂直でなければなりません。しかし、点群を視覚化すると、垂直からわずかに (2 度近く) 傾いています。現時点では、この傾きしか計算できません。他のエラーに関しては、シフトなどはないと思います。
そのため、点データの座標を更新して、それらが垂直面上にあるようにしたいと考えています。なんらかの変換を行う必要があると思います。X 軸に沿った回転のみによる場合もあります。それがどうなるかわからない。
あなたは私の質問を理解したと思います。正直、数学は苦手です。そのため、正確な垂直面上にあるようにポイント座標を更新する方法を教えてください。
注:私はこれをc ++で実装しており、これらのことについて十分な知識を持っているプログラマーがたくさんいるので、この質問をc ++で投稿しています。
アップデート
私がこれまでに行ったことを正確に言うと、垂直オブジェクト + その周囲のものを表す点群データがあります。(データは移動スキャナーによって収集され、正しいワールド軸から軸がずれている場合があります)。問題は、データにエラーがあるかどうかを正確に判断できないことです。したがって、これを垂直平面オブジェクト (私のデータでも支配的なオブジェクト) で確認しました。実際には、その平面は真に垂直です。しかし、外れ値を取り除いて平面を適合させると、その平面は真に垂直ではなく、2 度近く傾いています。したがって、データに何らかのエラーがあるのではないかと疑っています。したがって、すべての点群 (平面上の点と他のオブジェクトを表す点を含む) を更新して、その特定の平面点を垂直面に正確に配置したいと考えています。それから、おそらく、すべてのポイントは、実際のように正しい位置に更新されます。つまり、すべての (x,y,z) 座標を更新する必要があります。
例として、下の図を参照してください。
左は元の点群を表し(ご覧のとおり、点自体は垂直ではありません)、後ろの線は私が当てはめた垂直面を示し、赤は天頂線です. ご覧のとおり、垂直面の傾きがあります。それで、右の図のデータ全体を更新したいと思います。次に、平面に再度適合するかどうかを更新した後 (外れ値を削除)、天頂線に正確に平行になります。私を助けてください。