Namespace of all things related to geometry. More...
Namespaces | |
namespace | impl |
Implementation namespace of geom namespace. | |
Classes | |
class | complex_geometry |
A functor returning the sites of the faces of a complex where the locations of each 0-face is stored. More... | |
Functions | |
template<typename S > | |
box< typename S::site > | bbox (const Site_Set< S > &pset) |
Compute the precise bounding box of a point set pset . | |
template<typename I > | |
box< typename I::site > | bbox (const Image< I > &ima) |
Compute the precise bounding box of a point set pset . | |
template<typename W > | |
box< typename W::psite > | bbox (const Window< W > &win) |
Compute the precise bounding box of a window win . | |
template<typename W > | |
box< typename W::psite > | bbox (const Weighted_Window< W > &win) |
Compute the precise bounding box of a weighted window win . | |
template<typename I , typename W > | |
mln::trait::ch_value< I, unsigned >::ret | chamfer (const Image< I > &input_, const W &w_win_, unsigned max=mln_max(unsigned)) |
Apply chamfer algorithm to a binary image. | |
template<typename W > | |
unsigned | delta (const Window< W > &win) |
Compute the delta of a window win . | |
template<typename W > | |
unsigned | delta (const Weighted_Window< W > &wwin) |
Compute the delta of a weighted window wwin . | |
template<typename N > | |
unsigned | delta (const Neighborhood< N > &nbh) |
Compute the delta of a neighborhood nbh . | |
template<typename I > | |
mln::trait::concrete< I >::ret | horizontal_symmetry (const Image< I > &input) |
Perfoms a horizontal symmetry. | |
template<typename I > | |
I::site::coord | max_col (const Image< I > &ima) |
Give the maximum column of an image. | |
template<typename B > | |
B::site::coord | max_col (const Box< B > &b) |
Give the maximum col of an box 2d or 3d. | |
template<typename I > | |
I::site::coord | max_ind (const Image< I > &ima) |
Give the maximum ind of an image. | |
template<typename I > | |
I::site::coord | max_row (const Image< I > &ima) |
Give the maximum row of an image. | |
template<typename B > | |
B::site::coord | max_row (const Box< B > &b) |
Give the maximum row of an box 2d or 3d. | |
template<typename I > | |
I::site::coord | max_sli (const Image< I > &ima) |
Give the maximum sli of an image. | |
std::pair< complex_image < 2, mln::space_2complex_geometry, algebra::vec< 3, float > >, complex_image < 2, mln::space_2complex_geometry, float > > | mesh_corner_point_area (const p_complex< 2, space_2complex_geometry > &mesh) |
Compute the area ``belonging'' to normals at vertices. | |
std::pair< complex_image < 2, mln::space_2complex_geometry, float >, complex_image < 2, mln::space_2complex_geometry, float > > | mesh_curvature (const p_complex< 2, space_2complex_geometry > &mesh) |
Compute the principal curvatures of a surface at vertices. | |
complex_image < 2, mln::space_2complex_geometry, algebra::vec< 3, float > > | mesh_normal (const p_complex< 2, space_2complex_geometry > &mesh) |
Compute normals at vertices. | |
template<typename I > | |
I::site::coord | min_col (const Image< I > &ima) |
Give the minimum column of an image. | |
template<typename B > | |
B::site::coord | min_col (const Box< B > &b) |
Give the minimum column of an box 2d or 3d. | |
template<typename I > | |
I::site::coord | min_ind (const Image< I > &ima) |
Give the minimum ind of an image. | |
template<typename I > | |
I::site::coord | min_row (const Image< I > &ima) |
Give the minimum row of an image. | |
template<typename B > | |
B::site::coord | min_row (const Box< B > &b) |
Give the minimum row of an box 2d or 3d. | |
template<typename I > | |
I::site::coord | min_sli (const Image< I > &ima) |
Give the minimum sli of an image. | |
template<typename I > | |
unsigned | ncols (const Image< I > &ima) |
Give the number of columns of an image. | |
template<typename B > | |
unsigned | ncols (const Box< B > &b) |
Give the number of cols of a box 2d or 3d. | |
template<typename I > | |
unsigned | ninds (const Image< I > &ima) |
Give the number of inds of an image. | |
template<typename I > | |
unsigned | nrows (const Image< I > &ima) |
Give the number of rows of an image. | |
template<typename B > | |
unsigned | nrows (const Box< B > &b) |
Give the number of rows of a box 2d or 3d. | |
template<typename I > | |
unsigned | nsites (const Image< I > &input) |
Compute the number of sites of the image input . | |
template<typename I > | |
unsigned | nslices (const Image< I > &ima) |
Give the number of slices of an image. | |
template<typename S > | |
void | pmin_pmax (const Site_Set< S > &s, typename S::site &pmin, typename S::site &pmax) |
Compute the minimum and maximum points, pmin and max , of point set s . | |
template<typename S > | |
std::pair< typename S::site, typename S::site > | pmin_pmax (const Site_Set< S > &s) |
Compute the minimum and maximum points of point set s . | |
template<typename I > | |
std::pair< typename I::site, typename I::site > | pmin_pmax (const Site_Iterator< I > &p) |
Compute the minimum and maximum points when browsing with iterator p . | |
template<typename I > | |
void | pmin_pmax (const Site_Iterator< I > &p, typename I::site &pmin, typename I::site &pmax) |
Compute the minimum and maximum points, pmin and max , when browsing with iterator p . | |
template<typename I , typename Ext > | |
mln::trait::concrete< I >::ret | rotate (const Image< I > &input, double angle, const Ext &extension) |
template<typename B > | |
B | rotate (const Box< B > &box, double angle) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. The rotation center ref is set to box.pcenter(). | |
template<typename I , typename Ext , typename S > | |
mln::trait::concrete< I >::ret | rotate (const Image< I > &input, double angle, const Ext &extension, const Site_Set< S > &output_domain) |
Perform a rotation from the center of an image. | |
template<typename I > | |
mln::trait::concrete< I >::ret | rotate (const Image< I > &input, double angle) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Use literal::zero as default value for the extension. | |
template<typename B > | |
B | rotate (const Box< B > &box_, double angle, const typename B::site &ref) |
Rotate a box. | |
template<typename I , typename N > | |
mln::trait::concrete< I >::ret | seeds2tiling (const Image< I > &ima_, const Neighborhood< N > &nbh) |
Take a labeled image ima_ with seeds and extend them until creating tiles. | |
template<typename I , typename V , typename Ext , typename S > | |
mln::trait::concrete< I >::ret | translate (const Image< I > &input, const algebra::vec< I::site::dim, V > &ref, const Ext &extension, const Site_Set< S > &output_domain) |
Perform a translation from the center of an image. | |
template<typename I , typename V > | |
mln::trait::concrete< I >::ret | translate (const Image< I > &input, const algebra::vec< I::site::dim, V > &ref) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Use literal::zero as default value for the extension. | |
template<typename I , typename V , typename Ext > | |
mln::trait::concrete< I >::ret | translate (const Image< I > &input, const algebra::vec< I::site::dim, V > &ref, const Ext &extension) |
template<typename I > | |
mln::trait::concrete< I >::ret | vertical_symmetry (const Image< I > &input) |
Perfoms a vertical symmetry. | |
template<typename I , typename N > | |
I | seeds2tiling_roundness (Image< I > &ima_, const w_window2d_int &w_win, unsigned max, const Neighborhood< N > &nbh_) |
Take a labeled image ima_ with seeds and extend them until creating tiles rounder than the primary version. |
Namespace of all things related to geometry.
Namespace of essential things related to geometry.
box< typename S::site > mln::geom::bbox | ( | const Site_Set< S > & | pset | ) | [inline] |
Compute the precise bounding box of a point set pset
.
Referenced by bbox(), mln::transform::distance_and_closest_point_geodesic(), mln::registration::icp(), max_col(), max_row(), max_sli(), min_col(), min_row(), min_sli(), mln::debug::println(), mln::debug::println_with_border(), and rotate().
box< typename I::site > mln::geom::bbox | ( | const Image< I > & | ima | ) |
Compute the precise bounding box of a point set pset
.
References bbox().
box< typename W::psite > mln::geom::bbox | ( | const Window< W > & | win | ) |
Compute the precise bounding box of a window win
.
References mln::literal::origin.
box< typename W::psite > mln::geom::bbox | ( | const Weighted_Window< W > & | win | ) |
Compute the precise bounding box of a weighted window win
.
References bbox().
mln::trait::ch_value< I, unsigned >::ret mln::geom::chamfer | ( | const Image< I > & | input_, | |
const W & | w_win_, | |||
unsigned | max = mln_max(unsigned) | |||
) |
Apply chamfer algorithm to a binary image.
unsigned mln::geom::delta | ( | const Window< W > & | win | ) |
Compute the delta of a window win
.
Referenced by mln::extension::adjust(), and delta().
unsigned mln::geom::delta | ( | const Weighted_Window< W > & | wwin | ) |
Compute the delta of a weighted window wwin
.
References delta().
unsigned mln::geom::delta | ( | const Neighborhood< N > & | nbh | ) |
Compute the delta of a neighborhood nbh
.
References delta().
mln::trait::concrete< I >::ret mln::geom::horizontal_symmetry | ( | const Image< I > & | input | ) |
Perfoms a horizontal symmetry.
I::site::coord mln::geom::max_col | ( | const Image< I > & | ima | ) | [inline] |
B::site::coord mln::geom::max_col | ( | const Box< B > & | b | ) | [inline] |
Give the maximum col of an box 2d or 3d.
I::site::coord mln::geom::max_ind | ( | const Image< I > & | ima | ) | [inline] |
Give the maximum ind of an image.
Referenced by ninds().
I::site::coord mln::geom::max_row | ( | const Image< I > & | ima | ) | [inline] |
B::site::coord mln::geom::max_row | ( | const Box< B > & | b | ) | [inline] |
Give the maximum row of an box 2d or 3d.
I::site::coord mln::geom::max_sli | ( | const Image< I > & | ima | ) | [inline] |
std::pair< complex_image< 2, mln::space_2complex_geometry, algebra::vec<3, float> >, complex_image< 2, mln::space_2complex_geometry, float > > mln::geom::mesh_corner_point_area | ( | const p_complex< 2, space_2complex_geometry > & | mesh | ) | [inline] |
Compute the area ``belonging'' to normals at vertices.
Inspired from the method Trimesh::need_pointareas of the Trimesh library.
From the documentation of Trimesh:
``Compute the area "belonging" to each vertex or each corner of a triangle (defined as Voronoi area restricted to the 1-ring of a vertex, or to the triangle).''
References mln::data::fill(), mln::norm::sqr_l2(), mln::algebra::vprod(), and mln::literal::zero.
Referenced by mesh_curvature().
std::pair< complex_image< 2, mln::space_2complex_geometry, float >, complex_image< 2, mln::space_2complex_geometry, float > > mln::geom::mesh_curvature | ( | const p_complex< 2, space_2complex_geometry > & | mesh | ) | [inline] |
Compute the principal curvatures of a surface at vertices.
These princpal curvatures are names kappa_1 and kappa_2 in
Sylvie Philipp-Foliguet, Michel Jordan Laurent Najman and Jean Cousty. Artwork 3D Model Database Indexing and Classification.
[in] | mesh | The surface (triangle mesh) on which the curvature is to be computed. |
References mln::algebra::ldlt_decomp(), mln::algebra::ldlt_solve(), mesh_corner_point_area(), mesh_normal(), mln::algebra::vprod(), and mln::literal::zero.
complex_image< 2, mln::space_2complex_geometry, algebra::vec<3, float> > mln::geom::mesh_normal | ( | const p_complex< 2, space_2complex_geometry > & | mesh | ) | [inline] |
Compute normals at vertices.
Inspired from the method Trimesh::need_normals of the Trimesh library.
For simplicity purpose, and contrary to Trimesh, this routine only compute normals from a mesh, not from a cloud of points.
References mln::data::fill(), mln::norm::sqr_l2(), mln::algebra::vprod(), and mln::literal::zero.
Referenced by mesh_curvature().
I::site::coord mln::geom::min_col | ( | const Image< I > & | ima | ) | [inline] |
Give the minimum column of an image.
References bbox().
Referenced by mln::transform::hough(), and ncols().
B::site::coord mln::geom::min_col | ( | const Box< B > & | b | ) | [inline] |
Give the minimum column of an box 2d or 3d.
I::site::coord mln::geom::min_ind | ( | const Image< I > & | ima | ) | [inline] |
Give the minimum ind of an image.
Referenced by ninds().
I::site::coord mln::geom::min_row | ( | const Image< I > & | ima | ) | [inline] |
Give the minimum row of an image.
References bbox().
Referenced by mln::transform::hough(), and nrows().
B::site::coord mln::geom::min_row | ( | const Box< B > & | b | ) | [inline] |
Give the minimum row of an box 2d or 3d.
I::site::coord mln::geom::min_sli | ( | const Image< I > & | ima | ) | [inline] |
unsigned mln::geom::ncols | ( | const Image< I > & | ima | ) | [inline] |
Give the number of columns of an image.
References max_col(), and min_col().
Referenced by mln::labeling::impl::compute_fastest(), mln::subsampling::gaussian_subsampling(), mln::transform::hough(), ncols(), and mln::subsampling::subsampling().
unsigned mln::geom::ncols | ( | const Box< B > & | b | ) |
unsigned mln::geom::ninds | ( | const Image< I > & | ima | ) | [inline] |
unsigned mln::geom::nrows | ( | const Image< I > & | ima | ) | [inline] |
Give the number of rows of an image.
References max_row(), and min_row().
Referenced by mln::subsampling::gaussian_subsampling(), mln::transform::hough(), nrows(), and mln::subsampling::subsampling().
unsigned mln::geom::nrows | ( | const Box< B > & | b | ) |
unsigned mln::geom::nsites | ( | const Image< I > & | input | ) | [inline] |
Compute the number of sites of the image input
.
Referenced by pmin_pmax().
unsigned mln::geom::nslices | ( | const Image< I > & | ima | ) | [inline] |
std::pair< typename S::site, typename S::site > mln::geom::pmin_pmax | ( | const Site_Set< S > & | s | ) | [inline] |
Compute the minimum and maximum points of point set s
.
References nsites().
Referenced by pmin_pmax().
void mln::geom::pmin_pmax | ( | const Site_Set< S > & | s, | |
typename S::site & | pmin, | |||
typename S::site & | pmax | |||
) | [inline] |
Compute the minimum and maximum points, pmin
and max
, of point set s
.
References nsites().
std::pair< typename I::site, typename I::site > mln::geom::pmin_pmax | ( | const Site_Iterator< I > & | p | ) | [inline] |
Compute the minimum and maximum points when browsing with iterator p
.
References pmin_pmax().
void mln::geom::pmin_pmax | ( | const Site_Iterator< I > & | p, | |
typename I::site & | pmin, | |||
typename I::site & | pmax | |||
) | [inline] |
Compute the minimum and maximum points, pmin
and max
, when browsing with iterator p
.
mln::trait::concrete< I >::ret mln::geom::rotate | ( | const Image< I > & | input, | |
double | angle | |||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Use literal::zero as default value for the extension.
References rotate(), and mln::literal::zero.
mln::trait::concrete< I >::ret mln::geom::rotate | ( | const Image< I > & | input, | |
double | angle, | |||
const Ext & | extension | |||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References rotate().
B mln::geom::rotate | ( | const Box< B > & | box, | |
double | angle | |||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. The rotation center ref
is set to box.pcenter().
References rotate().
mln::trait::concrete< I >::ret mln::geom::rotate | ( | const Image< I > & | input, | |
double | angle, | |||
const Ext & | extension, | |||
const Site_Set< S > & | output_domain | |||
) |
Perform a rotation from the center of an image.
[in] | input | An image. |
[in] | angle | An angle in degrees. |
[in] | extension | Function, image or value which will be used as extension. This extension allows to map values to sites which where not part of the domain before the rotation. |
[in] | output_domain | The domain of the output image. An invalid domain, causes the routine to use a domain large enough to display the whole original image. |
input
. References bbox(), mln::compose(), mln::duplicate(), mln::initialize(), mln::mln_exact(), mln::literal::origin, and mln::data::paste().
Referenced by rotate().
B mln::geom::rotate | ( | const Box< B > & | box_, | |
double | angle, | |||
const typename B::site & | ref | |||
) |
Rotate a box.
FIXME: the return type may be too generic and may lead to invalid covariance.
References mln::compose(), mln::literal::origin, and mln::accu::shape::bbox< P >::to_result().
mln::trait::concrete< I >::ret mln::geom::seeds2tiling | ( | const Image< I > & | ima_, | |
const Neighborhood< N > & | nbh | |||
) | [inline] |
Take a labeled image ima_
with seeds and extend them until creating tiles.
[in,out] | ima_ | The labeled image with seed. |
[in] | nbh | The neighborhood to use on this algorithm. |
ima_
has to be initialized. References mln::geom::impl::seeds2tiling().
I mln::geom::seeds2tiling_roundness | ( | Image< I > & | ima_, | |
const w_window2d_int & | w_win, | |||
unsigned | max, | |||
const Neighborhood< N > & | nbh_ | |||
) | [inline] |
Take a labeled image ima_
with seeds and extend them until creating tiles rounder than the primary version.
[in,out] | ima_ | The labeled image with seed. |
[in] | w_win | The weight window using by geom::chamfer to compute distance. |
[in] | max | Unsigned using by geom::chamfer to compute the distance. |
[in] | nbh_ | The neighborhood to use on this algorithm. |
ima_
has to be initialized. mln::trait::concrete< I >::ret mln::geom::translate | ( | const Image< I > & | input, | |
const algebra::vec< I::site::dim, V > & | ref | |||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Use literal::zero as default value for the extension.
References translate(), and mln::literal::zero.
mln::trait::concrete< I >::ret mln::geom::translate | ( | const Image< I > & | input, | |
const algebra::vec< I::site::dim, V > & | ref, | |||
const Ext & | extension, | |||
const Site_Set< S > & | output_domain | |||
) |
Perform a translation from the center of an image.
[in] | input | An image. |
[in] | ref | The translation vector. |
[in] | extension | Function, image or value which will be used as extension. This extension allows to map values to sites which where not part of the domain before the translation. |
[in] | output_domain | The domain of the output image. An invalid domain, causes the routine to use the translated input_ domain. |
input
. References mln::extend(), mln::data::fill(), and mln::mln_exact().
Referenced by translate().
mln::trait::concrete< I >::ret mln::geom::translate | ( | const Image< I > & | input, | |
const algebra::vec< I::site::dim, V > & | ref, | |||
const Ext & | extension | |||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
References translate().
mln::trait::concrete< I >::ret mln::geom::vertical_symmetry | ( | const Image< I > & | input | ) |
Perfoms a vertical symmetry.