ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

makeresampler

リサンプリング構造体の作成

構文

R = makeresampler(interpolant,padmethod)
R = makeresampler(Name,Value,...)

説明

R = makeresampler(interpolant,padmethod) は、tformarray で使用する分離可能な resampler 構造体を作成します。引数 interpolant は、個々のリサンプラーが使用する内挿カーネルを指定します。引数 padmethod は、入力配列のエッジの近くやエッジの外側の部分をマッピングしたときに、出力要素に値をどのように内挿するか、または、割り当てるかを制御します。

R = makeresampler(Name,Value,...) は、パラメーターと値の組み合わせによるユーザー設定のリサンプラーを使用する resampler 構造体を作成します。

すべて折りたたむ

イメージをワークスペースに読み取って表示します。

A = imread('moon.tif');
imshow(A)

分離可能なリサンプラーを作成します。

resamp = makeresampler({'nearest','cubic'},'fill');

アフィン変換を定義する空間変換構造体 (TFORM) を作成します。

stretch = maketform('affine',[1 0; 0 1.3; 0 0]);

カスタム リサンプラーを指定して変換を適用します。

B = imtransform(A,stretch,resamp);

変換後のイメージを表示します。

imshow(B)

入力引数

すべて折りたたむ

内挿カーネル。文字ベクトルまたはセル配列として指定します。文字ベクトルを指定する場合、interpolant では次のいずれかの値を使用できます。

内挿

説明

'cubic'

3 次内挿

'linear'

線形内挿

'nearest'

最近傍内挿

カスタムの内挿カーネルを使用する場合、次のどちらかの型でセル配列として interpolant を指定できます。

{half_width, positive_half}

half_width は、対称な内挿カーネルの幅の半分を指定する正のスカラー値。positive_half は、閉区間 [0 positive_half] 上で、カーネルを等間隔でサンプリングする値を要素とするベクトルです。

{half_width, interp_fcn}

interp_fcn は区間
[0 positive_half] 内の入力値の配列に対する内挿カーネルの値を返す関数ハンドルです。

個々の次元に沿って、別々な内挿法を指定するには、両方の内挿仕様を組み合わせます。セル配列内の要素数は、変換次元の数と等しくなければなりません。たとえば、次の例の interpolant 値を考えます。

{'nearest', 'linear', {2 KERNEL_TABLE}}

この例では、リサンプラーは、最初の変換次元に沿って最近傍内挿を、2 番目の次元に沿って線形内挿を、3 番目の次元に沿ってカスタム仕様の表をベースにした内挿を使います。

データ型: char | cell

入力配列の外側にマッピングされる出力要素に値を割り当てるためのメソッド。次のいずれかの文字ベクトルとして指定します。

パディング方法

説明

'bound'

塗りつぶしの値の配列から入力配列の外側にマッピングされる点に値を割り当てます。配列内にマッピングされる点には、配列の境界要素を繰り返します ('replicate' と同様)。interpolant'nearest' の場合、このパディング方法では 'fill' と同じ結果が得られます。'bound' は、'fill' と同様ですが、塗りつぶしの値と入力イメージ値を組み合わせません。

'circular'

次元内で巡回的に要素を繰り返して、配列をパディングします。padarray と同じです。

'fill'

最近傍内挿を使用する以外は、平滑化したようなエッジをもつ出力配列を作成します。入力配列のエッジ (内側または外側) の近傍にマッピングする出力点に対して、入力イメージと塗りつぶしの値を組み合わせます。interpolant'nearest' の場合、このパディング方法では 'bound' と同じ結果が得られます。

'replicate'

配列の境界の要素を繰り返すことによって配列をパディングします。padarray と同じです。

'symmetric'

配列自体の鏡像で配列をパディングします。padarray と同じです。

'fill''replicate''circular' または 'symmetric' の場合、tformarray により実行されるリサンプリングは、2 つの論理ステップを経由します。

  1. 入力変換空間すべてを塗りつぶすために、配列 A を制限なくパディングします。

  2. 幾何学的なマップで指定される出力点で、リサンプリング カーネルとパディングされた A のたたみ込みを計算します。

変換されない各次元は、別々に取り扱われます。パディングは、性能やメモリの効率的な観点で使用する仮想的なものです (配列の添字の再マッピングにより実行)。カスタムのリサンプラーを実装する場合、これらの動作を実装することになります。

データ型: char

名前/値のペアの引数

オプションの Name,Value 引数のペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

例: resamp = makeresampler('Type','separable','Interpolant','linear','PadMethod','fill');

すべて折りたたむ

リサンプラー タイプ。次のいずれかの文字ベクトルとして指定します。

タイプ説明
'separable'分離可能なリサンプラーを作成します。この値を指定した場合、他に指定可能なプロパティは、'Interpolant''PadMethod' のみになります。結果は makeresampler(interpolant,padmethod) の構文を使用する場合と等価です。
'custom'カスタムのリサンプラーを作成します。この値を指定した場合、'NDims' および 'ResampleFcn' の各プロパティを指定しなければなりません。オプションとして 'CustomData' プロパティを指定することもできます。

データ型: char

詳細は、「引数 padmethod」を参照してください。

データ型: char

詳細は、「引数 interpolant」を参照してください。

データ型: char | cell

取り扱い可能なカスタム リサンプラーの次元。正の整数として指定します。Inf 値を使って、カスタム リサンプラーが任意の次元を取り扱うことができることを示します。'Type''custom' の場合、NDims を指定しなければなりません。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

リサンプリングを実行する関数。関数ハンドルとして指定します。この関数は、次のインターフェイスで呼び出します。

B = resample_fcn(A,M,TDIMS_A,TDIMS_B,FSIZE_A,FSIZE_B,F,R)

この関数の入力引数の詳細については、tformarray のヘルプを参照してください。引数 M は配列で、B の変換添字空間を A の変換添字空間にマッピングするものです。AN の変換次元 (N = length(TDIMS_A)) をもち、BP の変換次元 (P = length(TDIMS_B)) をもつ場合、N > 1 の場合、ndims(M) = P + 1N == 1 の場合 P です。また、size(M,P + 1) = N です。

M の最初の P 次元は、出力変換空間に対応し、TDIMS_B にリストされる出力変換次元の順番に従って、置換されます (一般的に、TDIMS_ATDIMS_B は、昇順に並べ替える必要はありませんが、このような制限を設けるリサンプラーもあります)。そして、size(M) の最初の P 要素は、B の変換次元のサイズを決定します。各点がマッピングされる入力変換座標は、TDIMS_A に与えられる順番に従って、M の最後の次元をまたいで配置されます。Mdouble でなければなりません。FSIZE_A および FSIZE_B は、A および B のフル サイズで、必要に応じて、TDIMS_ATDIMS_B、および size(A) と整合性を保つ必要がある場合、1 でパディングします。

データ型: function_handle

ユーザー定義データ。数値配列または文字ベクトルとして指定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char

出力引数

すべて折りたたむ

リサンプラー。構造体として返されます。

R2006a より前に導入

この情報は役に立ちましたか?