Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

makeresampler

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

説明

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

R = makeresampler(Name,Value) は、名前と値の引数を使用してユーザー設定のリサンプラーを作成します。

すべて折りたたむ

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

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

Figure contains an axes object. The axes object contains an object of type image.

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

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

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

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

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

B = imtransform(A,stretch,resamp);

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

imshow(B)

Figure contains an axes object. The axes object contains an object of type image.

入力引数

すべて折りたたむ

内挿カーネル。"nearest""linear""cubic"、または cell 配列として指定します。これらのカーネルは、それぞれ最近傍内挿、双一次内挿、双三次内挿、およびカスタム内挿を実行します。

カスタムの内挿カーネルは、次のどちらかの形式で 2 要素の cell 配列として定義します。

形式説明

{half_width, positive_half}

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

{half_width, interp_fcn}

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

要素数が変換次元の数と等しい cell 配列 を指定することで、各変換次元に沿って内挿法を個別に定義することができます。cell 配列の各要素は、上記の内挿カーネル タイプのいずれかでなければなりません。たとえば、3 次元内挿カーネルの interpolant の次の値について考えてみましょう。

{"nearest","linear",{2 KERNEL_TABLE}}

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

データ型: char | string | 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 | string

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: "Type","separable" は分離可能なリサンプラーを作成します。

リサンプラー タイプ。次のいずれかの値を指定します。

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

データ型: char | string

詳細については、padMethod 引数を参照してください。

データ型: char | string

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

データ型: char | string | 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

ユーザー定義データ。string スカラー、文字ベクトルまたは数値配列を使用して指定します。

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

出力引数

すべて折りたたむ

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

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する