ユークリッド距離変換 [詳細]
関数 | |
| template<class Array1 , class Array2 > | |
| void | distance_transform (const Array1 &in, Array2 &out, typename Array1::size_type thread_num=0) |
| ユークリッド距離変換 | |
| template<class Array1 , class Array2 > | |
| void | inverse_distance_transform (const Array1 &in, Array2 &out, typename Array1::size_type thread_num=0) |
| ユークリッド2乗逆距離変換 | |
| template<class Array1 , class Array2 > | |
| void | voronoi_distance_transform (Array1 &voronoi, Array2 &dist, typename Array1::size_type thread_num=0) |
| ユークリッド距離を用いたボロノイ分割 | |
| template<class Array > | |
| void | voronoi_transform (Array &voronoi, typename Array::size_type thread_num=0) |
| ユークリッド距離を用いたボロノイ分割 | |
| template<class T1 , class T2 , class Allocator1 , class Allocator2 > | |
| void | thinning8 (const array2< T1, Allocator1 > &in, array2< T2, Allocator2 > &out) |
| ユークリッド距離を用いた2次元画像に対する細線化アルゴリズム | |
| template<class T1 , class T2 , class Allocator1 , class Allocator2 > | |
| void | shrink_skelton6 (const array3< T1, Allocator1 > &in, array3< T2, Allocator2 > &out) |
| 3次元画像に対する収縮スケルトンアルゴリズム(6連結) | |
| template<class T1 , class T2 , class Allocator1 , class Allocator2 > | |
| void | shrink_skelton26 (const array3< T1, Allocator1 > &in, array3< T2, Allocator2 > &out) |
| 3次元画像に対する収縮スケルトンアルゴリズム(26連結) | |
| template<class T1 , class T2 , class Allocator1 , class Allocator2 > | |
| void | thinning6 (const array3< T1, Allocator1 > &in, array3< T2, Allocator2 > &out) |
| ユークリッド距離を用いた3次元画像に対する細線化アルゴリズム | |
| template<class T1 , class T2 , class Allocator1 , class Allocator2 > | |
| void | thinning26 (const array3< T1, Allocator1 > &in, array3< T2, Allocator2 > &out) |
| ユークリッド距離を用いた3次元画像に対する細線化アルゴリズム | |
| template<class T1 , class T2 , class Allocator1 , class Allocator2 > | |
| void | surface_thinning6 (const array3< T1, Allocator1 > &in, array3< T2, Allocator2 > &out) |
| ユークリッド距離を用いた3次元画像に対する薄面化アルゴリズム | |
| template<class T1 , class T2 , class Allocator1 , class Allocator2 > | |
| void | surface_thinning26 (const array3< T1, Allocator1 > &in, array3< T2, Allocator2 > &out) |
| ユークリッド距離を用いた3次元画像に対する薄面化アルゴリズム | |
ユークリッド距離変換
ユークリッド距離変換を用いた細線化アルゴリズム
| void mist::euclidean::distance_transform | ( | const Array1 & | in, |
| Array2 & | out, | ||
| typename Array1::size_type | thread_num = 0 |
||
| ) |
ユークリッド距離変換
計算される距離は,ユークリッド2乗距離となります. ユークリッド距離に変換するためには,計算結果の各値の平方根を求めてください. ただし,計算に用いる画素が立方体ではなく直方体の場合には,計算されるユークリッド2距離も画素のアスペクトを考慮して計算されます. 立方体画素を用いている場合には以下を考慮する必要はありません.
本関数で計算されるユークリッド2乗距離は,X軸方向の画素の大きさを1としたときの比を用いて計算されます. ここで,本関数のある画素の出力が
で,画素のX軸方向の解像度(大きさ)が
の場合,
が画素の大きさを考慮したユークリッド距離値になります.
| [in] | in | … 入力画像 |
| [out] | out | … 出力画像 |
| [in] | thread_num | … 使用するスレッド数 |
| void mist::euclidean::inverse_distance_transform | ( | const Array1 & | in, |
| Array2 & | out, | ||
| typename Array1::size_type | thread_num = 0 |
||
| ) |
ユークリッド2乗逆距離変換
入力画像はユークリッド2乗距離が入った画像であり,出力画像は2値図形となります. アスペクトを考慮したユークリッド2乗逆距離変換が可能です.
本関数で用いるユークリッド2乗距離は,X軸方向の画素の大きさを1としたときの比を用いて計算されます.
| [in] | in | … 入力画像 |
| [out] | out | … 出力画像 |
| [in] | thread_num | … 使用するスレッド数 |
1.8.1.2