Calvinによるユークリッド2乗距離変換 [詳細]
関数 | |
template<class Array1 , class Array2 > | |
void | 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) |
ユークリッド距離を用いたボロノイ分割 |
Calvinによるユークリッド2乗距離変換
void mist::calvin::distance_transform | ( | const Array1 & | in, |
Array2 & | out, | ||
typename Array1::size_type | thread_num = 0 |
||
) |
ユークリッド2乗距離変換
計算される距離は,ユークリッド2乗距離となります. ユークリッド距離に変換するためには,計算結果の各値の平方根を求めてください. ただし,計算に用いる画素が立方体ではなく直方体の場合には,計算されるユークリッド2距離も画素のアスペクトを考慮して計算されます. 立方体画素を用いている場合には以下を考慮する必要はありません.
本関数で計算されるユークリッド2乗距離は,X軸方向の画素の大きさを1としたときの比を用いて計算されます. ここで,本関数のある画素の出力が で,画素のX軸方向の解像度(大きさ)が の場合, が画素の大きさを考慮したユークリッド距離値になります.
[in] | in | … 入力画像 |
[out] | out | … 出力画像 |
[in] | thread_num | … 使用するスレッド数 |
void mist::calvin::voronoi_distance_transform | ( | Array1 & | voronoi, |
Array2 & | dist, | ||
typename Array1::size_type | thread_num = 0 |
||
) |
ユークリッド距離を用いたボロノイ分割
ユークリッド2乗距離変換とボロノイ分割を同時に行うアルゴリズムになります. 計算されるユークリッド2乗距離は,最も近い母点までの2乗ユークリッド距離を表します. 画素のアスペクトを考慮したボロノイ分割が可能です. アルゴリズム自体は,参考文献の Calvin R. Maurer, Jr. の論文を改良したものである.
[in,out] | voronoi | … 母点毎に別々のラベルが割り当てられた画像.ボロノイ分割結果のラベル画像が出力される. |
[out] | dist | … 出力ユークリッド2乗距離画像 |
[in] | thread_num | … 使用するスレッド数 |
参照先 mist::do_threads_(), と mist::get_cpu_num().
参照元 mist::euclidean::voronoi_distance_transform(), と voronoi_transform().
void mist::calvin::voronoi_transform | ( | Array & | voronoi, |
typename Array::size_type | thread_num = 0 |
||
) |
ユークリッド距離を用いたボロノイ分割
ユークリッド距離に基づくボロノイ分割を行い,画素のアスペクトを考慮したボロノイ分割が可能です. 内部では,ユークリッド2乗距離を計算するための一時画像を作成します. アルゴリズム自体は,参考文献の Calvin R. Maurer, Jr. の論文を改良したものである.
[in,out] | voronoi | … 母点毎に別々のラベルが割り当てられた画像.ボロノイ分割結果のラベル画像が出力される. |
[in] | thread_num | … 使用するスレッド数 |