2017-02-23 5 views
0

私は、3Dカメラからキャプチャされた整理されたポイントクラウド(1280 * 720)を持っています。私は、このクラウドを整理しておくときに、このポイントクラウドをより小さなサイズ(たとえば128 * 72)にリサイズ(縮小)する方法があるかどうか疑問に思うだけです。 (これは、ダウンサンプリングと同じであってはならないと思います。「サイズ変更」は、画像を拡大することを意味します)。組織化されたポイントクラウドのサイズ変更

私はポイントクラウドライブラリ1.8.0を使用していますが、これに固執しています。

アドバイスはありがとうございます。

答えて

1

はちょうどあなたがあなたのクラウドを減らしたい時間数のうち、ポイントを取る、そのshloudの作品のような 何か:

for (pcl::PointCloud<pcl::PointXYZ>::const_iterator it = src->begin(); it< src->end(); it+=times) 
{ 
    dest.points.push_back(*it); 
} 

唯一の問題は、クラウドは、いくつかのNaN値をcontaintかもしれないです。これを修正するには、destにis_denseをfalseに設定し、removeNaNFromPointCloudを呼び出します。

希望があなたを助けることができます!

+0

ありがとうございます@アナトールあなたの説明のために!実際に私はまた、あなたのものと同じような(おそらくより正確な)別の方法を考案しました。私はsrcクラウドの各m * mウィンドウの平均値をdestクラウド内の対応する値として計算しています。 –

+0

私はNaNの問題も認識しました。 "removeNaNFromPointCloud"はクラウドを整理していないようです。私は、平均値を計算するときにNaN点を無視し、src画像のウィンドウ内のすべての点がNaN点であれば点NaNを残します。 さらに、ウィンドウ内の平均値を計算するよりも、より良い補間方法があるはずです。 PCLの関連するAPIがないことが不思議です。 –

+0

組織化されたポイントクラウド@Anatoleについてもう1つ質問があります。組織化されたポイントクラウドのサンプリングをPCLで行う方法に精通していますか?ありがとう。 –

0

ポイントクラウドからNaNをコメントすることはできませんが、NaNを削除すると、デフォルトでは未整理になります。行列の次元を正しく保つために、あなたの計測器が行列内の点を観測できない場合には、NaNがダミー点として存在する可能性があります。それらを削除すると行列構造が壊れ、1280 * 720マトリックスが期待するものとは異なるポイントが得られます。

あなたがダウンして組織化のポイントクラウドが2倍に言っサンプルをご希望の場合、あなたが望むものに

int scale = 2; 
pcl::PointCloud<pcl::your_point_type> down_sampled_cloud; 
down_sampled_cloud.width = original_cloud.width/scale; 
down_sampled_cloud.height = original_cloud.height/scale; 

for(int ii = 0; ii < original_cloud.height; ii+=scale){ 
    for(int jj = 0; jj < original_cloud.width; jj+=scale){ 
    down_sampled_cloud.push_back(original_cloud.at(ii,jj)); 

    } 
} 

変更スケールのような何かを試みることができます。

このメソッドは、元のポイントクラウドをサンプリングして、既存のポイント間のポイントを補間しません。小数点によるスケーリングは手間がかかり、サーフェスが連続していないと望ましくない結果が生じる可能性があります。

関連する問題