斉藤先生によるユークリッド2乗距離変換 [詳細]
関数 | |
template<class Array1 , class Array2 > | |
void | distance_transform (const Array1 &in, Array2 &out, double max_length=-1.0, typename Array1::size_type thread_num=0) |
ユークリッド2乗距離変換 | |
template<class Array1 , class Array2 > | |
void | inverse_distance_transform (const Array1 &in, Array2 &out, typename Array1::size_type thread_num=0) |
ユークリッド2乗逆距離変換 |
斉藤先生によるユークリッド2乗距離変換
void mist::saito::distance_transform | ( | const Array1 & | in, |
Array2 & | out, | ||
double | max_length = -1.0 , |
||
typename Array1::size_type | thread_num = 0 |
||
) |
ユークリッド2乗距離変換
計算される距離は,ユークリッド2乗距離となります. ユークリッド距離に変換するためには,計算結果の各値の平方根を求めてください. ただし,計算に用いる画素が立方体ではなく直方体の場合には,計算されるユークリッド2距離も画素のアスペクトを考慮して計算されます. 立方体画素を用いている場合には以下を考慮する必要はありません.
本関数で計算されるユークリッド2乗距離は,X軸方向の画素の大きさを1としたときの比を用いて計算されます. ここで,本関数のある画素の出力が で,画素のX軸方向の解像度(大きさ)が
の場合,
が画素の大きさを考慮したユークリッド距離値になります.
[in] | in | … 入力画像 |
[out] | out | … 出力画像 |
[in] | max_length | … 伝播させる距離の最大値 |
[in] | thread_num | … 使用するスレッド数 |
参照先 mist::do_threads_(), と mist::get_cpu_num().
参照元 mist::euclidean::distance_transform(), mist::manhattan::distance_transform(), mist::cityblock::distance_transform(), mist::chessboard::distance_transform(), mist::figure_decomposition(), と mist::generate_depth_map().
void mist::saito::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 | … 使用するスレッド数 |