点云处理方法
https://blog.csdn.net/pdw521/article/details/82492428?utm_source=blogxgwz4
三维重建
https://www.cnblogs.com/wangyaning/p/7853894.html
PCL函数查阅
http://docs.pointclouds.org/trunk/index.html
点云数据处理过程的方法
https://blog.csdn.net/xs1997/article/details/78501120
点云数据处理流程
https://blog.csdn.net/pdw521/article/details/82492428?utm_source=blogxgwz4
关于用PCL对点云处理的实用讲解
https://blog.csdn.net/xuezhisdc/article/details/51012300
双边低通滤波:
package com.gloomyfish.blurring.study;
/**
* A simple and important case of bilateral filtering is shift-invariant Gaussian filtering
* refer to - http://graphics.ucsd.edu/~iman/Denoising/
* refer to - http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html
* thanks to cyber
双边低通滤波
*/
import java.awt.image.BufferedImage;
public class BilateralFilter extends AbstractBufferedImageOp {
private final static double factor = -0.5d;
private double ds; // distance sigma
private double rs; // range sigma
private int radius; // half length of Gaussian kernel Adobe Photoshop
private double[][] cWeightTable;
private double[] sWeightTable;
private int width;
private int height;
public BilateralFilter() {
this.ds = 1.0f;
this.rs = 1.0f;
}
private void buildDistanceWeightTable() {
int size = 2 * radius + 1;
cWeightTable = new double[size][size];
for(int semirow = -radius; semirow <= radius; semirow++) {
for(int semicol = - radius; semicol <= radius; semicol++) {
// calculate Euclidean distance between center point and close pixels
double delta = Math.sqrt(semirow * semirow + semicol * semicol)/ds;
double deltaDelta = delta * delta;