第 3 章 リファレンス 55
3.3 WaveField クラス
3.3.23 サンプル点数を拡大縮小するメンバー関数
以下のメンバー関数はサンプル点の多重化や反復により,オブジェクトのサンプル点数を2のm乗倍にする.例え ば,デフォルト引数mxy=1の場合にはいずれの関数もサンプル点数を2(= 21)倍にし,mxy=2の場合には4(= 22)倍 に変化させる.
WaveField& Replicate(int mxy = 1) WaveField& Replicate(int mx, int my)
戻り値 対象オブジェクトへの参照
説 明 1番目の形式では関数実行前のオブジェクトサンプル値のパターンをx方向にもy方向にも2のmxy乗回 繰り返すことにより,オブジェクトを拡大する(図3.6).2番目の形式ではx方向に2のmx乗回,y方向には2 のmy乗回繰り返すことにより,オブジェクトを拡大する.
Note
• オブジェクトのサンプリング間隔は変化しない.
図3.6 Replicate()の効果
WaveField& EnlargeZeroFill(int mxy = 1) WaveField& EnlargeZeroFill(int mx, int my)
戻り値 対象オブジェクトへの参照
説 明 1番目の形式では関数実行前のオブジェクトサンプル値のパターンをx方向にもy方向にも2のmxy乗倍 に拡大する.このとき,新たに付け加えられたサンプル点を0で埋める(図3.7).2番目の形式ではx方向に2 のmx乗倍,y方向には2のmy乗倍に拡大する.
Note
• オブジェクトのサンプリング間隔は変化しない.
3.3 WaveFieldクラス 117
図3.7 EnlargeZeroFill()の効果
図3.8 Embed()の効果
WaveField& Embed(int mxy = 1) WaveField& Embed(int mx, int my)
戻り値 対象オブジェクトへの参照
説 明 1番目の形式では関数実行前のオブジェクトサンプル値のパターンをx方向にもy方向にも2のmxy乗倍 に拡大する.このとき,元のサンプル点の周辺に均等に0値を埋め込む(図3.8).2番目の形式ではx方向に2 のmx乗倍,y方向には2のmy乗倍に拡大する.
Note
• オブジェクトのサンプリング間隔は変化しない.
WaveField& Extract(int mxy = 1) WaveField& Extract(int mx, int my)
戻り値 対象オブジェクトへの参照
説 明 1番目の形式では関数実行前のオブジェクトサンプル値のパターンをx方向にもy方向にも2のmxy乗分 の1に縮小する(図3.9).2番目の形式ではx方向に2のmx乗分の1,y方向には2のmy乗分の1に縮小する.
Note
• オブジェクトのサンプリング間隔は変化しない.
図3.9 Extract()の効果
WaveField& ReduceByAverage(int mxy = 1) WaveField& ReduceByAverage(int mx, int my)
戻り値 対象オブジェクトへの参照
説 明 平均化処理による縮小.1番目の形式では関数実行前のオブジェクトのサンプル点数をx方向にもy方向に も2のmxy乗分の1に縮小する.2番目の形式ではx方向に2のmx乗分の1,y方向には2のmy乗分の1に 縮小する.
Note
• オブジェクトの物理サイズが変化しないようにサンプル点数のみを縮小するため,オブジェクトのサンプリング 間隔はmxy倍,またはmx倍とmy倍に拡大する.
WaveField& ReduceByThinning(int mxy = 1) WaveField& ReduceByThinning(int mx, int my)
戻り値 対象オブジェクトへの参照
説 明 サンプル点の間引き処理による縮小.1番目の形式では,関数実行前のオブジェクトのサンプル点数をx方 向にもy方向にも2のmxy乗分の1に縮小する.2番目の形式ではx方向に2のmx乗分の1,y方向には2の my乗分の1に縮小する.
Note
• オブジェクトの物理サイズが変化しないようにサンプル点数のみを縮小するため,オブジェクトのサンプリング 間隔はmxy倍,またはmx倍とmy倍に拡大する.
WaveField& ExtractWindow(const WaveField& source, Complex backg = Complex(0.0, 0.0))
戻り値 対象オブジェクトへの参照
説 明 sourceオブジェクトのウィンドウ領域を切り出し,その部分のみを対象オブジェクトにコピーする.対象
オブジェクトの各サンプル点はあらかじめゼロで埋められている.
Note
• sourceのウィンドウ領域全体が格納できる最小の2の累乗サイズのオブジェクトとして対象オブジェクトを再
生成して,対象オブジェクトの中央部にウィンドウ領域のサンプルデータをコピーする.
3.3 WaveFieldクラス 119
• 対象オブジェクトのウィンドウ領域はコピーした範囲に設定される.
• sourceオブジェクトのパラメータからサンプル点数 Nx×Ny以外のパラメータが対象オブジェクトのパラ
メータにコピーされる.
WaveField& Subdivide(int mxy = 1) WaveField& Subdivide(int mx, int my) WaveField& Pixelation(int mxy = 1) WaveField& Pixelation(int mx, int my)
戻り値 対象オブジェクトへの参照
説 明 1番目の形式ではサンプリング数がx方向にもy方向にも2のmxy乗倍になるようにサンプル点を多重化 する.この関数では,オブジェクト全体の物理的大きさは変化せず,サンプリング数が増加した割合でサンプリ ング間隔が減少する(図3.10).2番目の形式ではサンプリング数がx方向に2のmx乗倍,y方向には2のmy 乗倍になるようにサンプル点を多重化する.
Note
• 1番目の形式ではサンプリング間隔はx方向にもy方向にも2のmxy乗分の1になる.2番目の形式ではサン プリング間隔がx方向に2のmx乗分の1,y方向には2のmy乗分の1になる.
図3.10 Subdivide() & Pixelation()の効果