2015-11-06 30 views
1

我正在嘗試應用雙邊濾波器來平滑註冊的2點雲。代碼如下:在點雲庫中使用快速雙邊濾波器

pcl::FastBilateralFilter<pcl::PointXYZRGB> filter; 
filter.setInputCloud(input); 
filter.setSigmaS(5); 
filter.setSigmaR(5e-3); 
filter.applyFilter(*output); 

結果是一個空的點雲,我似乎無法弄清楚爲什麼。其他人已經使用這種方法取得了很好的成功。我嘗試根據我在本白皮書中找到的內容(http://people.csail.mit.edu/sparis/bf_course/course_notes.pdf)操縱我的SigmaS和SigmaR值,但輸出沒有變化。任何想法,爲什麼這是?謝謝。

回答

0

我的輸入雲被搞砸了,它不是一個「有組織的點雲」。也就是說,我的Point Cloud中兩個給定點之間沒有關係。 PCL中的雙邊濾波器需要組織輸入點雲。 Click here for more info.

由於我使用的是Kinect v2,我有能力生成有組織的點雲;事實上,我將它初始化爲有組織的。在我的代碼後面的某處,我使用了cloud-> clear()命令,該命令刪除了Point Cloud中的所有高度,寬度和isDense信息;然而,我的初衷是隻刪除數據點,所以我可以添加新的點。

0

libfreenect2已經有一個kinectv2邊緣感知雙邊過濾器