"そこ"から這い上がるブログ

プログラミングと電子工作が趣味でそこら辺のことを備忘録的に書きつつ這い上がっていこうといったブログ。そこ這い。

PCLでBilateralFilterを使う

最近はRealsenseとPCLを使っています。
そちらにかかりっきりで、Panoramazzleが……

備忘録としてPCLについてをちょこちょこまとめていきたいと思います。

深度カメラではブレの多い点群データをきれいにする方法としてBilateralFilterを使ってみます。

#include <pcl/filters/fast_bilateral_omp.h>
void BilateralFilter(
	const pcl::PointCloud<PointType>::ConstPtr &srcCloud,
	const float &sigmaR,
	const float &sigmaS,
	pcl::PointCloud<PointType>::Ptr &dstCloud )
{
	pcl::FastBilateralFilterOMP<PointType> bf;
	bf.setInputCloud( srcCloud );
	bf.setSigmaR( sigmaR );
	bf.setSigmaS( sigmaS );
	bf.applyFilter( *dstCloud );
}

フィルターをかける前
f:id:knasa:20180717151452j:plain
かけた後
f:id:knasa:20180717151449j:plain
パラメーターはσR = 0.05, σS = 15.0
ぱっと見あんまりわからないですが、切り替えながら見ると
シュッとした感じになります。

手法はいくつかあるようで、fastが付くつかない、OpenMPを使う使わないがあるようですが、
ひとまずfast+OpenMP