オブジェクトをPCLのポイントクラウドからセグメント化し、オブジェクトのポイントクラウドを作成します。私は、PCL法を用いてこのようにセグメント化されたオブジェクトの重心を計算する。中心にないセグメント化されたオブジェクトのセントロイド
pcl :: PointXYZRGB centroidDS; pcl :: computeCentroid(* cleaned、centroidDS);
重心をオブジェクトにオーバーレイで視覚化すると、オブジェクトのエッジに常に配置されます。私は重心を特徴量として使うので、誰かがこれをどのように計算するか考えていればいいだろう。セグメント化されたオブジェクトの重心は、オブジェクトの中心に多かれ少なかれなければなりません。
私は、セグメント化する前にボクセルグリッドのダウンサンプリングを行いました。複数のポイントを確認するにはどうしたらいいですか?私のセグメンテーションが十分でなく、重心をずらすように見えない小さな点やブロブがあるかもしれませんか? – bugmaker06
ボクセルグリッドのダウンサンプリングを行った場合は、小さな領域に複数の点や点群があってはいけません。明らかにあなたのグリッドサイズに依存します。あまりにもそれをチェックしたいかもしれません。しかし、座標の差が最小限である重複または準重複がまだ残っている場合は、オクツリーを使ってボクセルに入るポイントの数を計算できると思います。また、半径のある通常のkdtree検索と距離内の近傍の数をカウントするだけで動作します。この投稿はオクトリーについて語っています。 http://www.pcl-users.org/Saving-Octree-voxel-density-information-to-file-td3840729.html – Rooscannon