- メインページ
- モジュール
- ネームスペース
- データ構造
- ファイル

ネームスペース | 関数
ガウシアンフィルタ
線形フィルタ

## ネームスペース
namespace | mist::gaussian
| ガウシアンフィルタの実装（コールバック関数を指定することが可能）

## 関数
template<class T1 , class Allocator1 , class T2 , class Allocator2 >
bool | mist::gaussian_filter (const array< T1, Allocator1 > &in, array< T2, Allocator2 > &out, const double sigma=1.0, typename array< T1, Allocator1 >::size_type thread_num=0)
| ガウシアンフィルタ( array )
template<class T1 , class Allocator1 , class T2 , class Allocator2 >
bool | mist::gaussian_filter (const array1< T1, Allocator1 > &in, array1< T2, Allocator2 > &out, const double sigma=1.0, typename array1< T1, Allocator1 >::size_type thread_num=0)
| ガウシアンフィルタ( array1 )
template<class T1 , class Allocator1 , class T2 , class Allocator2 >
bool | mist::gaussian_filter (const array2< T1, Allocator1 > &in, array2< T2, Allocator2 > &out, const double sigma=1.0, typename array2< T1, Allocator1 >::size_type thread_num=0)
| ガウシアンフィルタ( array2 )
template<class T , class Allocator >
bool | mist::gaussian_filter (array2< T, Allocator > &in, const double sigma=1.0, typename array2< T, Allocator >::size_type thread_num=0)
| ガウシアンフィルタ( array2 )
template<class T1 , class Allocator1 , class T2 , class Allocator2 >
bool | mist::gaussian_filter (const array3< T1, Allocator1 > &in, array3< T2, Allocator2 > &out, const double sigma=1.0, typename array3< T1, Allocator1 >::size_type thread_num=0)
| ガウシアンフィルタ( array3 )
template<class T , class Allocator >
bool | mist::gaussian_filter (array3< T, Allocator > &in, const double sigma=1.0, typename array3< T, Allocator >::size_type thread_num=0)
| ガウシアンフィルタ( array3 )

## 説明

次のヘッダをインクルードする
#include <mist/filter/linear.h>

配列の端（カーネルがはみ出すところ）の要素の計算値は保障しません． 使用可能な要素型は，算術型か mist::rgb< 算術型 > に限ります． 内部の計算は，出力配列の要素型が算術型の場合は double 型， mist::rgb< 算術型 > の場合は mist::rgb< double > で行います．

## 関数

template<class T1 , class Allocator1 , class T2 , class Allocator2 >

bool mist::gaussian_filter | ( | const array< T1, Allocator1 > & | in,
|  | array< T2, Allocator2 > & | out,
|  | const double | sigma = `1.0`,
|  | typename array< T1, Allocator1 >::size_type | thread_num = `0`
| ) |  |

ガウシアンフィルタ( array )

任意サイズのガウシアンフィルタ

注意
  入力と出力は，別のMISTコンテナオブジェクトでなくてはならない
  スレッド数は無視され，常にシングルスレッドで動作する

引数

  [in] | in | … 入力配列
  [out] | out | … 出力配列
  [in] | sigma | … フィルタの標準偏差（画素の大きさを考慮した値を指定）
  [in] | thread_num | … 使用するスレッド数

戻り値

  true | … フィルタリングに成功
  false | … 入力と出力が同じオブジェクトを指定した場合

参照先 mist::linear::filter().

参照元 mist::harris().

template<class T1 , class Allocator1 , class T2 , class Allocator2 >

bool mist::gaussian_filter | ( | const array1< T1, Allocator1 > & | in,
|  | array1< T2, Allocator2 > & | out,
|  | const double | sigma = `1.0`,
|  | typename array1< T1, Allocator1 >::size_type | thread_num = `0`
| ) |  |

ガウシアンフィルタ( array1 )

任意サイズのガウシアンフィルタ

注意
  入力と出力は，別のMISTコンテナオブジェクトでなくてはならない
  スレッド数は無視され，常にシングルスレッドで動作する

引数

  [in] | in | … 入力配列
  [out] | out | … 出力配列
  [in] | sigma | … フィルタの標準偏差（画素の大きさを考慮した値を指定）
  [in] | thread_num | … 使用するスレッド数

戻り値

  true | … フィルタリングに成功
  false | … 入力と出力が同じオブジェクトを指定した場合

参照先 mist::linear::filter().

template<class T1 , class Allocator1 , class T2 , class Allocator2 >

bool mist::gaussian_filter | ( | const array2< T1, Allocator1 > & | in,
|  | array2< T2, Allocator2 > & | out,
|  | const double | sigma = `1.0`,
|  | typename array2< T1, Allocator1 >::size_type | thread_num = `0`
| ) |  |

ガウシアンフィルタ( array2 )

任意サイズのガウシアンフィルタ

出力のデータ方が float や double や rgb< float > などの浮動小数点型の場合は， ガウシアンカーネルを1次元分解し，高速にフィルタを計算する．それ以外のデータ型 （int等）の場合は各画素ごとにカーネルを適用する（計算コスト大）

注意
  入力と出力は，別のMISTコンテナオブジェクトでなくてはならない
  スレッド数に0を指定した場合は，使用可能なCPU数を自動的に取得する

引数

  [in] | in | … 入力配列
  [out] | out | … 出力配列
  [in] | sigma | … フィルタの標準偏差（画素の大きさを考慮した値を指定）
  [in] | thread_num | … 使用するスレッド数

戻り値

  true | … フィルタリングに成功
  false | … 入力と出力が同じオブジェクトを指定した場合

参照先 mist::linear::filter().

template<class T , class Allocator >

bool mist::gaussian_filter | ( | array2< T, Allocator > & | in,
|  | const double | sigma = `1.0`,
|  | typename array2< T, Allocator >::size_type | thread_num = `0`
| ) |  |

ガウシアンフィルタ( array2 )

任意サイズのガウシアンフィルタ

出力のデータ方が float や double や rgb< float > などの浮動小数点型の場合は， ガウシアンカーネルを1次元分解し，高速にフィルタを計算する．それ以外のデータ型 （int等）の場合は各画素ごとにカーネルを適用する（計算コスト大）

注意
  入力と出力は，別のMISTコンテナオブジェクトでなくてはならない
  スレッド数に0を指定した場合は，使用可能なCPU数を自動的に取得する

引数

  [in,out] | in | … 入力・出力配列
  [in] | sigma | … フィルタの標準偏差（画素の大きさを考慮した値を指定）
  [in] | thread_num | … 使用するスレッド数

戻り値

  true | … フィルタリングに成功
  false | … 入力と出力が同じオブジェクトを指定した場合

参照先 mist::linear::filter().

template<class T1 , class Allocator1 , class T2 , class Allocator2 >

bool mist::gaussian_filter | ( | const array3< T1, Allocator1 > & | in,
|  | array3< T2, Allocator2 > & | out,
|  | const double | sigma = `1.0`,
|  | typename array3< T1, Allocator1 >::size_type | thread_num = `0`
| ) |  |

ガウシアンフィルタ( array3 )

任意サイズのガウシアンフィルタ

出力のデータ方が float や double や rgb< float > などの浮動小数点型の場合は， ガウシアンカーネルを1次元分解し，高速にフィルタを計算する．それ以外のデータ型 （int等）の場合は各画素ごとにカーネルを適用する（計算コスト大）

注意
  入力と出力は，別のMISTコンテナオブジェクトでなくてはならない
  スレッド数に0を指定した場合は，使用可能なCPU数を自動的に取得する

引数

  [in] | in | … 入力配列
  [out] | out | … 出力配列
  [in] | sigma | … フィルタの標準偏差（画素の大きさを考慮した値を指定）
  [in] | thread_num | … 使用するスレッド数

戻り値

  true | … フィルタリングに成功
  false | … 入力と出力が同じオブジェクトを指定した場合

参照先 mist::linear::filter().

template<class T , class Allocator >

bool mist::gaussian_filter | ( | array3< T, Allocator > & | in,
|  | const double | sigma = `1.0`,
|  | typename array3< T, Allocator >::size_type | thread_num = `0`
| ) |  |

ガウシアンフィルタ( array3 )

任意サイズのガウシアンフィルタ

出力のデータ方が float や double や rgb< float > などの浮動小数点型の場合は， ガウシアンカーネルを1次元分解し，高速にフィルタを計算する．それ以外のデータ型 （int等）の場合は各画素ごとにカーネルを適用する（計算コスト大）

注意
  入力と出力は，別のMISTコンテナオブジェクトでなくてはならない
  スレッド数に0を指定した場合は，使用可能なCPU数を自動的に取得する

引数

  [in,out] | in | … 入力・出力配列
  [in] | sigma | … フィルタの標準偏差（画素の大きさを考慮した値を指定）
  [in] | thread_num | … 使用するスレッド数

戻り値

  true | … フィルタリングに成功
  false | … 入力と出力が同じオブジェクトを指定した場合

参照先 mist::linear::filter().