Point set processing user manual: split into separate .tex files.

This commit is contained in:
Pierre Alliez 2009-04-28 15:14:33 +00:00
parent 7d85cbdd57
commit c87912e4dc
14 changed files with 272 additions and 283 deletions

6
.gitattributes vendored
View File

@ -2712,8 +2712,10 @@ Partition_2/doc_tex/Partition_2/Trier_opt_cvx.ps -text svneol=unset#application/
Partition_2/doc_tex/Partition_2/teaser-small.png -text svneol=unset#image/png
Partition_2/doc_tex/Partition_2/teaser.png -text svneol=unset#image/png
Point_set_2/doc_tex/Point_set_2/point_set.png -text
Point_set_processing_3/doc_tex/Point_set_processing_3/analysis.tex -text
Point_set_processing_3/doc_tex/Point_set_processing_3/fig/point_set_processing.jpg -text svneol=unset#image/jpeg
Point_set_processing_3/doc_tex/Point_set_processing_3/fig/point_set_processing_detail.png -text svneol=unset#image/png
Point_set_processing_3/doc_tex/Point_set_processing_3/input.tex -text
Point_set_processing_3/doc_tex/Point_set_processing_3/introduction.eps -text svneol=unset#application/postscript
Point_set_processing_3/doc_tex/Point_set_processing_3/introduction.jpg -text svneol=unset#image/jpeg
Point_set_processing_3/doc_tex/Point_set_processing_3/jet_smoothing.eps -text svneol=unset#application/postscript
@ -2722,6 +2724,8 @@ Point_set_processing_3/doc_tex/Point_set_processing_3/merge_simplification.eps -
Point_set_processing_3/doc_tex/Point_set_processing_3/merge_simplification.jpg -text svneol=unset#image/jpeg
Point_set_processing_3/doc_tex/Point_set_processing_3/mst_orient_normals.eps -text svneol=unset#application/postscript
Point_set_processing_3/doc_tex/Point_set_processing_3/mst_orient_normals.jpg -text svneol=unset#image/jpeg
Point_set_processing_3/doc_tex/Point_set_processing_3/outliers.tex -text
Point_set_processing_3/doc_tex/Point_set_processing_3/output.tex -text
Point_set_processing_3/doc_tex/Point_set_processing_3/pca_estimate_normals.eps -text svneol=unset#application/postscript
Point_set_processing_3/doc_tex/Point_set_processing_3/pca_estimate_normals.jpg -text svneol=unset#image/jpeg
Point_set_processing_3/doc_tex/Point_set_processing_3/pipeline.eps -text svneol=unset#application/postscript
@ -2730,6 +2734,8 @@ Point_set_processing_3/doc_tex/Point_set_processing_3/random_simplification.eps
Point_set_processing_3/doc_tex/Point_set_processing_3/random_simplification.jpg -text svneol=unset#image/jpeg
Point_set_processing_3/doc_tex/Point_set_processing_3/remove_outliers.eps -text svneol=unset#application/postscript
Point_set_processing_3/doc_tex/Point_set_processing_3/remove_outliers.jpg -text svneol=unset#image/jpeg
Point_set_processing_3/doc_tex/Point_set_processing_3/simplification.tex -text
Point_set_processing_3/doc_tex/Point_set_processing_3/smoothing.tex -text
Point_set_processing_3/examples/Point_set_processing_3/data/ChineseDragon-10kv.off -text svneol=unset#application/octet-stream
Point_set_processing_3/examples/Point_set_processing_3/data/camel.off -text svneol=unset#application/octet-stream
Point_set_processing_3/examples/Point_set_processing_3/data/oni.xyz -text

View File

@ -1,15 +1,6 @@
\begin{ccPkgDescription}{Point Set Processing\label{Pkg:PointSetProcessing}}
\ccPkgHowToCiteCgal{cgal:sal-pptsm2-08}
\ccPkgSummary{
This \cgal\ component implements methods to analyze and process unorganized point sets.
The input is an unorganized point set, possibly with attributes such as unoriented or oriented normals.
This point set can be analyzed to measure common statistics quantities and bounding volumes such as average spacing, centroid, bounding box and bounding sphere.
We can furthermore process the point set with functions devoted to simplification, outlier removal, smoothing, normal estimation and normal orientation.
The output is a point set with normals.
}
\ccPkgSummary{This \cgal\ component implements methods to analyze and process unorganized point sets. The input is an unorganized point set, possibly with attributes such as unoriented or oriented normals. This point set can be analyzed to measure certain properties such as average spacing. We can furthermore process the point set with functions devoted to the simplification, outlier removal, smoothing, normal estimation and normal orientation.}
\ccPkgDependsOn{\ccThirdPartyLapack}
\ccPkgIntroducedInCGAL{3.5}

View File

@ -0,0 +1,19 @@
\section{Analysis}
The purpose of the analysis stage is to measure common statistics and bounding volumes over the input points so as to automatically determine parameters for subsequent stages:
\begin{itemize}
\item Point set barycenter, bounding box,
bounding sphere (provided by other \cgal\ components).
\item Average spacing to the $k$ nearest neighbors.
\end{itemize}
\ccc{CGAL::compute_average_spacing()} computes the average spacing of all input points to their $k$ nearest neighbors.
\ccRefIdfierPage{CGAL::centroid} \\
\ccRefIdfierPage{CGAL::bounding_box} \\
\ccRefIdfierPage{CGAL::bounding_sphere} \\
\ccRefIdfierPage{CGAL::compute_average_spacing} \\
Example:
\ccIncludeExampleCode{Point_set_processing_3/average_spacing_example.cpp}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@ -0,0 +1,36 @@
\section{Input}
The algorithms of this component expect as input parameters range iterators over:
\begin{itemize}
\item 3D points
\item Normals (orientable 3D vectors)
\item 3D points with unoriented normals
\item 3D points with oriented normals
\end{itemize}
These types are described as concepts.
\cgal\ provides the next classes to implement points and normals:
\begin{itemize}
\item \ccRefIdfierPage{CGAL::Point_3<GeomTraits>} \\
\cgal\ 3D position.
\item \ccRefIdfierPage{CGAL::Vector_3<GeomTraits>} \\
\cgal\ 3D vector.
\item \ccRefIdfierPage{CGAL::Point_with_normal_3<GeomTraits, Normal_3>} \\
3D point location plus normal.
\end{itemize}
We provide convenient functions to read point sets from standard file formats:
\begin{itemize}
\item XYZ
\item OFF
\end{itemize}
\ccRefIdfierPage{CGAL::read_xyz_point_set} \\
\ccRefIdfierPage{CGAL::read_off_point_set} \\
Example:
\ccIncludeExampleCode{Point_set_processing_3/read_write_xyz_point_set_example.cpp}

View File

@ -13,15 +13,52 @@
% Title
\begin{figure}[h]
\caption{Point set processing.
Left: 275k points sampled on an elephant with a Minolta laser scanner.
Right: point set cleaned and simplified to 17k points.}
Left: 275K points sampled on an elephant with
a Minolta laser scanner.
Right: point set after clean-up and
simplification to 17K points.}
\end{figure}
\end{center}
This \cgal\ component implements methods to analyze and process unorganized point sets.
The input is an unorganized point set, possibly with attributes such as unoriented or oriented normals.
This point set can be analyzed to measure common statistics quantities and bounding volumes such as average spacing, centroid, bounding box and bounding sphere.
We can furthermore process the point set with functions devoted to simplification, outlier removal, smoothing, normal estimation and normal orientation.
The output is a point set with normals.
This \cgal\ component implements methods to analyze and process unorganized 3D point sets. The input is an unorganized 3D point set, possibly with attributes such as unoriented or oriented normals. This point set can be analyzed to measure certain geometric properties such as average spacing between the points and their $K$ nearest neighbors. We can furthermore process the point set with functions devoted to the simplification, outlier removal, smoothing, normal estimation and normal orientation. The output is either a point set or a point set with normals.
A typical usage of this package is to pre-process a point set before calling a reconstruction method.
Surface Reconstruction from Point Sets is a sequential process:
\begin{itemize}
\item Scanning and scan alignment produce a set of points
or points with normals. Alignment is not yet
covered by \cgal.
\item Outlier removal for reconstruction methods which
are not resilient to outliers.
\item Simplification to reduce the number of input points.
\item Smoothing to reduce noise in the input data.
\item Normal estimation and orientation when the normals
are not already provided by the acquisition device.
\item Surface reconstruction.
\end{itemize}
\cgal\ provides algorithms for all steps listed above except alignment.\\
This package provides outlier removal, simplification, smoothing,
normal estimation and orientation.\\
Chapter \ccc{Surface_reconstruction_points_3} \ref{chap:surface_reconstruction_points_3}
describes surface reconstruction using \cgal\ Surface Mesh Generator.
% Insert image pipeline.jpg/eps
\begin{center}
\label{Point_set_processing_3-fig-pipeline}
% Image
\begin{ccTexOnly}
\includegraphics[width=0.8\textwidth]{Point_set_processing_3/pipeline} % omit .eps suffix
\end{ccTexOnly}
\begin{ccHtmlOnly}
<img width="65%" border=0 src="./pipeline.jpg"><P>
\end{ccHtmlOnly}
% Title
\begin{figure}[h]
\caption{Point Set Processing pipeline.}
\end{figure}
\end{center}

View File

@ -8,4 +8,10 @@
\minitoc
\input{Point_set_processing_3/introduction}
\input{Point_set_processing_3/pipeline}
\input{Point_set_processing_3/input}
\input{Point_set_processing_3/analysis}
\input{Point_set_processing_3/outliers}
\input{Point_set_processing_3/simplification}
\input{Point_set_processing_3/smoothing}
\input{Point_set_processing_3/normals}
\input{Point_set_processing_3/output}

View File

@ -0,0 +1,59 @@
\section{Normal Estimation}
Two functions are provided to estimate the normal direction of the inferred surface at each point from the input point set. In both cases, the result is an unoriented normal vector for each input point.
Function \ccc{CGAL::jet_estimate_normals()} estimates the normal direction at each point from the set by fitting a jet surface over its $k$ nearest neighbors. The default jet is a quadric surface.\\
This algorithm is well suited to point sets scattered over curved surfaces.
Function \ccc{CGAL::pca_estimate_normals()} estimates the normal direction at each point from the set by linear least squares fitting of a plane over its $k$ nearest neighbors.\\
This algorithm is well suited to point sets scattered over plane surfaces. It is much faster than \ccc{CGAL::jet_estimate_normals()}.
\ccRefIdfierPage{CGAL::pca_estimate_normals} \\
\ccRefIdfierPage{CGAL::jet_estimate_normals} \\
% % Insert image pca_estimate_normals.jpg/eps
% \begin{center}
% \label{Point_set_processing_3-fig-pca_estimate_normals}
% % Image
% \begin{ccTexOnly}
% \includegraphics[width=0.9\textwidth]{Point_set_processing_3/pca_estimate_normals} % omit .eps suffix
% \end{ccTexOnly}
% \begin{ccHtmlOnly}
% <img width="90%" border=0 src="./pca_estimate_normals.jpg"><P>
% \end{ccHtmlOnly}
% % Title
% \begin{figure}[h]
% \caption{Normal estimation by Principal Components Analysis}
% \end{figure}
% \end{center}
Example:
\ccIncludeExampleCode{Point_set_processing_3/pca_estimate_normals_example.cpp}
\section{Normal Orientation}
Function \ccc{CGAL::mst_orient_normals()} orients the normals of a set of points with (unoriented) normals using the method described by Hoppe et al. in {\em Surface reconstruction from unorganized points} \cite{cgal:hddms-srup-92}. More specifically, this method constructs a Riemannian graph over the input points and propagates a seed normal orientation within a minimum spanning tree computed over the graph with the Boost graph library. The result is an oriented normal vector for each input point/normal.
\ccRefIdfierPage{CGAL::mst_orient_normals} \\
% Insert image mst_orient_normals.jpg/eps
\begin{center}
\label{Point_set_processing_3-fig-mst_orient_normals}
% Image
\begin{ccTexOnly}
\includegraphics[width=1.0\textwidth]{Point_set_processing_3/mst_orient_normals} % omit .eps suffix
\end{ccTexOnly}
\begin{ccHtmlOnly}
<img width="100%" border=0 src="./mst_orient_normals.jpg"><P>
\end{ccHtmlOnly}
% Title
\begin{figure}[h]
\caption{Normal orientation of a cube's normals. Notice the left and bottom normals orientation.}
\end{figure}
\end{center}
Example: see \ccc{pca_estimate_normals_example.cpp} example above.

View File

@ -0,0 +1,27 @@
\section{Outlier Removal}
Function \ccc{CGAL::remove_outliers()} deletes a user-specified fraction of outliers from the input point set. More specifically, it sorts the input points in increasing order of average squared distances to the $k$ nearest neighbors and deletes the points with largest value.
\emph{Note to the reviewers: we will add a function in the analysis section which displays in the console the distribution of such average squared distance so as to help the user picking an appropriate fraction value.}
\ccRefIdfierPage{CGAL::remove_outliers} \\
% % Insert image remove_outliers.jpg/eps
% \begin{center}
% \label{Point_set_processing_3-fig-remove_outliers}
% % Image
% \begin{ccTexOnly}
% \includegraphics[width=0.9\textwidth]{Point_set_processing_3/remove_outliers} % omit .eps suffix
% \end{ccTexOnly}
% \begin{ccHtmlOnly}
% <img width="90%" border=0 src="./remove_outliers.jpg"><P>
% \end{ccHtmlOnly}
% % Title
% \begin{figure}[h]
% \caption{Outlier removal}
% \end{figure}
% \end{center}
Example:
\ccIncludeExampleCode{Point_set_processing_3/remove_outliers_example.cpp}

View File

@ -0,0 +1,16 @@
\section{Output}
The output of the processing stage is a point set with normals.
For convenience, we provide functions to write point sets to standard file formats:
\begin{itemize}
\item XYZ
\item OFF
\end{itemize}
\ccRefIdfierPage{CGAL::write_off_point_set} \\
\ccRefIdfierPage{CGAL::write_xyz_point_set} \\
Example:
See \ccc{read_write_xyz_point_set_example.cpp} example above.

View File

@ -1,265 +0,0 @@
\section{Example}
A typical usage of this package is to pre-process a point set before calling a reconstruction method.
Surface Reconstruction from Point Sets is a sequential process:
\begin{itemize}
\item Scanning and scan alignment produce a set of points
or points with normals. Alignment is not yet
covered by \cgal.
\item Outlier removal for reconstruction methods which
are not resilient to outliers.
\item Simplification to reduce the number of input points.
\item Smoothing to reduce noise in the input data.
\item Normal estimation and orientation when the normals
are not already provided by the acquisition device.
\item Surface reconstruction.
\end{itemize}
\cgal\ provides algorithms for all steps listed above except alignment.\\
This package provides outlier removal, simplification, smoothing,
normal estimation and orientation.\\
Chapter \ccc{Surface_reconstruction_points_3} \ref{chap:surface_reconstruction_points_3}
describes surface reconstruction using \cgal\ Surface Mesh Generator.
% Insert image pipeline.jpg/eps
\begin{center}
\label{Point_set_processing_3-fig-pipeline}
% Image
\begin{ccTexOnly}
\includegraphics[width=0.8\textwidth]{Point_set_processing_3/pipeline} % omit .eps suffix
\end{ccTexOnly}
\begin{ccHtmlOnly}
<img width="65%" border=0 src="./pipeline.jpg"><P>
\end{ccHtmlOnly}
% Title
\begin{figure}[h]
\caption{Point Set Processing pipeline.}
\end{figure}
\end{center}
\section{Input}
The algorithms of this component expect as input parameters range iterators over:
\begin{itemize}
\item 3D points
\item Normals (orientable 3D vectors)
\item 3D points with unoriented normals
\item 3D points with oriented normals
\end{itemize}
These types are described as concepts.
\cgal\ provides the next classes to implement points and normals:
\begin{itemize}
\item \ccRefIdfierPage{CGAL::Point_3<GeomTraits>} \\
\cgal\ 3D position.
\item \ccRefIdfierPage{CGAL::Vector_3<GeomTraits>} \\
\cgal\ 3D vector.
\item \ccRefIdfierPage{CGAL::Point_with_normal_3<GeomTraits, Normal_3>} \\
3D point location plus normal.
\end{itemize}
We provide convenient functions to read point sets from standard file formats:
\begin{itemize}
\item XYZ
\item OFF
\end{itemize}
\ccRefIdfierPage{CGAL::read_xyz_point_set} \\
\ccRefIdfierPage{CGAL::read_off_point_set} \\
Example:
\ccIncludeExampleCode{Point_set_processing_3/read_write_xyz_point_set_example.cpp}
\section{Analysis}
The purpose of the analysis stage is to measure common statistics and bounding volumes over the input points so as to automatically determine parameters for subsequent stages:
\begin{itemize}
\item Point set barycenter, bounding box,
bounding sphere (provided by other \cgal\ components).
\item Average spacing to the $k$ nearest neighbors.
\end{itemize}
\ccc{CGAL::compute_average_spacing()} computes the average spacing of all input points to their $k$ nearest neighbors.
\ccRefIdfierPage{CGAL::centroid} \\
\ccRefIdfierPage{CGAL::bounding_box} \\
\ccRefIdfierPage{CGAL::bounding_sphere} \\
\ccRefIdfierPage{CGAL::compute_average_spacing} \\
Example:
\ccIncludeExampleCode{Point_set_processing_3/average_spacing_example.cpp}
\section{Outlier Removal}
Function \ccc{CGAL::remove_outliers()} deletes a user-specified fraction of outliers from the input point set. More specifically, it sorts the input points in increasing order of average squared distances to the $k$ nearest neighbors and deletes the points with largest value.
\emph{Note to the reviewers: we will add a function in the analysis section which displays in the console the distribution of such average squared distance so as to help the user picking an appropriate fraction value.}
\ccRefIdfierPage{CGAL::remove_outliers} \\
% % Insert image remove_outliers.jpg/eps
% \begin{center}
% \label{Point_set_processing_3-fig-remove_outliers}
% % Image
% \begin{ccTexOnly}
% \includegraphics[width=0.9\textwidth]{Point_set_processing_3/remove_outliers} % omit .eps suffix
% \end{ccTexOnly}
% \begin{ccHtmlOnly}
% <img width="90%" border=0 src="./remove_outliers.jpg"><P>
% \end{ccHtmlOnly}
% % Title
% \begin{figure}[h]
% \caption{Outlier removal}
% \end{figure}
% \end{center}
Example:
\ccIncludeExampleCode{Point_set_processing_3/remove_outliers_example.cpp}
\section{Simplification}
Two functions are provided to simplify the input point set.
\ccc{CGAL::merge_simplify_point_set()} iteratively merges pairs of points which are epsilon-closed.\\
This algorithm is precise but slower than \ccc{CGAL::random_simplify_point_set()}.
\ccc{CGAL::random_simplify_point_set()} randomly deletes a user-specified fraction of points from the input point set.\\
This algorithm is very fast.
\ccRefIdfierPage{CGAL::merge_simplify_point_set} \\
\ccRefIdfierPage{CGAL::random_simplify_point_set} \\
% Insert image merge_simplification.jpg/eps
\begin{center}
\label{Point_set_processing_3-fig-merge_simplification}
% Image
\begin{ccTexOnly}
\includegraphics[width=1.0\textwidth]{Point_set_processing_3/merge_simplification} % omit .eps suffix
\end{ccTexOnly}
\begin{ccHtmlOnly}
<img width="100%" border=0 src="../Point_set_processing_3/merge_simplification.jpg"><P>
\end{ccHtmlOnly}
% Title
\begin{figure}[h]
\caption{Point set simplification by merging.
Left: input point set.
Right: removed points are depicted in red.}
\end{figure}
\end{center}
Example:
\ccIncludeExampleCode{Point_set_processing_3/random_simplification_example.cpp}
\section{Smoothing}
Function \ccRefIdfierPage{CGAL::jet_smooth_point_set} smooths the input point set by projecting each point onto a smooth parametric surface patch (so-called jet surface) fitted over the $k$ nearest neighbors. \\
% % Insert image jet_smoothing.jpg/eps
% \begin{center}
% \label{Point_set_processing_3-fig-jet_smoothing}
% % Image
% \begin{ccTexOnly}
% \includegraphics[width=1.0\textwidth]{Point_set_processing_3/jet_smoothing} % omit .eps suffix
% \end{ccTexOnly}
% \begin{ccHtmlOnly}
% <img width="100%" border=0 src="./jet_smoothing.jpg"><P>
% \end{ccHtmlOnly}
% % Title
% \begin{figure}[h]
% \caption{Point set smoothing}
% \end{figure}
% \end{center}
Example:
\ccIncludeExampleCode{Point_set_processing_3/jet_smoothing_example.cpp}
\section{Normal Estimation}
Two functions are provided to estimate the normal direction of the inferred surface at each point from the input point set. In both cases, the result is an unoriented normal vector for each input point.
Function \ccc{CGAL::jet_estimate_normals()} estimates the normal direction at each point from the set by fitting a jet surface over its $k$ nearest neighbors. The default jet is a quadric surface.\\
This algorithm is well suited to point sets scattered over curved surfaces.
Function \ccc{CGAL::pca_estimate_normals()} estimates the normal direction at each point from the set by linear least squares fitting of a plane over its $k$ nearest neighbors.\\
This algorithm is well suited to point sets scattered over plane surfaces. It is much faster than \ccc{CGAL::jet_estimate_normals()}.
\ccRefIdfierPage{CGAL::pca_estimate_normals} \\
\ccRefIdfierPage{CGAL::jet_estimate_normals} \\
% % Insert image pca_estimate_normals.jpg/eps
% \begin{center}
% \label{Point_set_processing_3-fig-pca_estimate_normals}
% % Image
% \begin{ccTexOnly}
% \includegraphics[width=0.9\textwidth]{Point_set_processing_3/pca_estimate_normals} % omit .eps suffix
% \end{ccTexOnly}
% \begin{ccHtmlOnly}
% <img width="90%" border=0 src="./pca_estimate_normals.jpg"><P>
% \end{ccHtmlOnly}
% % Title
% \begin{figure}[h]
% \caption{Normal estimation by Principal Components Analysis}
% \end{figure}
% \end{center}
Example:
\ccIncludeExampleCode{Point_set_processing_3/pca_estimate_normals_example.cpp}
\section{Normal Orientation}
Function \ccc{CGAL::mst_orient_normals()} orients the normals of a set of points with (unoriented) normals using the method described by Hoppe et al. in {\em Surface reconstruction from unorganized points} \cite{cgal:hddms-srup-92}. More specifically, this method constructs a Riemannian graph over the input points and propagates a seed normal orientation within a minimum spanning tree computed over the graph with the Boost graph library. The result is an oriented normal vector for each input point/normal.
\ccRefIdfierPage{CGAL::mst_orient_normals} \\
% Insert image mst_orient_normals.jpg/eps
\begin{center}
\label{Point_set_processing_3-fig-mst_orient_normals}
% Image
\begin{ccTexOnly}
\includegraphics[width=1.0\textwidth]{Point_set_processing_3/mst_orient_normals} % omit .eps suffix
\end{ccTexOnly}
\begin{ccHtmlOnly}
<img width="100%" border=0 src="./mst_orient_normals.jpg"><P>
\end{ccHtmlOnly}
% Title
\begin{figure}[h]
\caption{Normal orientation of a cube's normals. Notice the left and bottom normals orientation.}
\end{figure}
\end{center}
Example: see \ccc{pca_estimate_normals_example.cpp} example above.
\section{Output}
The output of the processing stage is a point set with normals.
For convenience, we provide functions to write point sets to standard file formats:
\begin{itemize}
\item XYZ
\item OFF
\end{itemize}
\ccRefIdfierPage{CGAL::write_off_point_set} \\
\ccRefIdfierPage{CGAL::write_xyz_point_set} \\
Example:
See \ccc{read_write_xyz_point_set_example.cpp} example above.

View File

@ -0,0 +1,34 @@
\section{Simplification}
Two functions are provided to simplify the input point set.
\ccc{CGAL::merge_simplify_point_set()} iteratively merges pairs of points which are epsilon-closed.\\
This algorithm is precise but slower than \ccc{CGAL::random_simplify_point_set()}.
\ccc{CGAL::random_simplify_point_set()} randomly deletes a user-specified fraction of points from the input point set.\\
This algorithm is very fast.
\ccRefIdfierPage{CGAL::merge_simplify_point_set} \\
\ccRefIdfierPage{CGAL::random_simplify_point_set} \\
% Insert image merge_simplification.jpg/eps
\begin{center}
\label{Point_set_processing_3-fig-merge_simplification}
% Image
\begin{ccTexOnly}
\includegraphics[width=1.0\textwidth]{Point_set_processing_3/merge_simplification} % omit .eps suffix
\end{ccTexOnly}
\begin{ccHtmlOnly}
<img width="100%" border=0 src="../Point_set_processing_3/merge_simplification.jpg"><P>
\end{ccHtmlOnly}
% Title
\begin{figure}[h]
\caption{Point set simplification by merging.
Left: input point set.
Right: removed points are depicted in red.}
\end{figure}
\end{center}
Example:
\ccIncludeExampleCode{Point_set_processing_3/random_simplification_example.cpp}

View File

@ -0,0 +1,23 @@
\section{Smoothing}
Function \ccRefIdfierPage{CGAL::jet_smooth_point_set} smooths the input point set by projecting each point onto a smooth parametric surface patch (so-called jet surface) fitted over the $k$ nearest neighbors. \\
% % Insert image jet_smoothing.jpg/eps
% \begin{center}
% \label{Point_set_processing_3-fig-jet_smoothing}
% % Image
% \begin{ccTexOnly}
% \includegraphics[width=1.0\textwidth]{Point_set_processing_3/jet_smoothing} % omit .eps suffix
% \end{ccTexOnly}
% \begin{ccHtmlOnly}
% <img width="100%" border=0 src="./jet_smoothing.jpg"><P>
% \end{ccHtmlOnly}
% % Title
% \begin{figure}[h]
% \caption{Point set smoothing}
% \end{figure}
% \end{center}
Example:
\ccIncludeExampleCode{Point_set_processing_3/jet_smoothing_example.cpp}