makeresampler
リサンプリング構造体の作成
説明
は、R
= makeresampler(interpolant
,padMethod
)tformarray
で使用する分離可能な resampler 構造体を作成します。引数 interpolant
は、分離可能なリサンプラーが使用する内挿カーネルを指定します。padMethod
引数は、入力配列のエッジの近くやエッジの外側の部分をマッピングしたときに、リサンプラーが出力要素に値をどのように内挿するか、または割り当てるかを制御します。
は、名前と値の引数を使用してユーザー設定のリサンプラーを作成します。R
= makeresampler(Name,Value
)
例
分離可能なリサンプラーを使用した Y 方向へのイメージの引き伸ばし
イメージをワークスペースに読み取って表示します。
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"
| "linear"
| "nearest"
| cell 配列
内挿カーネル。"nearest"
、"linear"
、"cubic"
、または cell 配列として指定します。これらのカーネルは、それぞれ最近傍内挿、双一次内挿、双三次内挿、およびカスタム内挿を実行します。
カスタムの内挿カーネルは、次のどちらかの形式で 2 要素の cell 配列として定義します。
形式 | 説明 |
---|---|
|
|
|
|
要素数が変換次元の数と等しい cell 配列 を指定することで、各変換次元に沿って内挿法を個別に定義することができます。cell 配列の各要素は、上記の内挿カーネル タイプのいずれかでなければなりません。たとえば、3 次元内挿カーネルの interpolant
の次の値について考えてみましょう。
{"nearest","linear",{2 KERNEL_TABLE}}
この例では、リサンプラーは、最初の変換次元に沿って最近傍内挿を、2 番目の次元に沿って線形内挿を、3 番目の次元に沿ってカスタム仕様の表をベースにした内挿を使います。
データ型: char
| string
| cell
padMethod
— パディング方法
"bound"
| "circular"
| "replicate"
| "symmetric"
| "fill"
入力配列の外側にマッピングされる出力要素に値を割り当てるために使用するパディング方法。次のいずれかの値として指定します。
パディング方法 | 説明 |
---|---|
| 塗りつぶしの値の配列から入力配列の外側にマッピングされる点に値を割り当てます。配列内にマッピングされる点には、配列の境界要素を繰り返します ( |
| 次元内で巡回的に要素を繰り返して、配列をパディングします。 |
| 最近傍内挿を使用する以外は、平滑化したようなエッジをもつ出力配列を作成します。入力配列のエッジ (内側または外側) の近傍にマッピングする出力点に対して、入力イメージと塗りつぶしの値を組み合わせます。 |
| 配列の境界の要素を繰り返すことによって配列をパディングします。 |
| 配列自体の鏡像で配列をパディングします。 |
"fill"
、"replicate"
、"circular"
、または "symmetric"
の場合、tformarray
により実行されるリサンプリングは、2 つの論理ステップを経由します。
入力変換空間すべてを塗りつぶすために、配列
A
を制限なくパディングします。幾何学的なマップで指定される出力点で、リサンプリング カーネルとパディングされた
A
の畳み込みを評価します。
変換されない各次元は、別々に取り扱われます。パディングは、性能やメモリの効率的な観点で使用する仮想的なものです (配列の添字の再マッピングにより実行)。カスタムのリサンプラーを実装する場合、これらの動作を実装することになります。
データ型: char
| string
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値の各ペアを区切り、Name
を引用符で囲みます。
例: "Type","separable"
は分離可能なリサンプラーを作成します。
Type
— リサンプラー タイプ
"separable"
| "custom"
リサンプラー タイプ。次のいずれかの値を指定します。
型 | 説明 |
---|---|
"separable" | 分離可能なリサンプラーを作成します。この値を指定した場合、他に指定可能な引数は、Interpolant と PadMethod のみになります。結果は makeresampler(interpolant,padMethod) の構文を使用する場合と等価です。 |
"custom" | カスタムのリサンプラーを作成します。この値を指定した場合、NDims および ResampleFcn の各引数を指定しなければなりません。オプションとして CustomData 引数を指定することもできます。 |
データ型: char
| string
PadMethod
— パディング方法
文字ベクトル | string スカラー
詳細については、padMethod
引数を参照してください。
データ型: char
| string
Interpolant
— 内挿カーネル
文字ベクトル | string スカラー | cell 配列
詳細については、interpolant
引数を参照してください。
データ型: char
| string
| cell
NDims
— 取り扱い可能なカスタム リサンプラーの次元
正の整数
取り扱い可能なカスタム リサンプラーの次元。正の整数として指定します。Inf
値を使って、カスタム リサンプラーが任意の次元を取り扱うことができることを示します。"Type"
が "custom"
の場合、NDims
を指定しなければなりません。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
ResampleFcn
— リサンプリングを実行する関数
関数ハンドル
リサンプリングを実行する関数。関数ハンドルとして指定します。この関数は、次のインターフェイスで呼び出します。
B = resample_fcn(A,M,TDIMS_A,TDIMS_B,FSIZE_A,FSIZE_B,F,R)
この関数の入力引数の詳細については、tformarray
のヘルプを参照してください。引数 M
は配列で、B
の変換添字空間を A
の変換添字空間にマッピングするものです。A
が N
の変換次元 (N = length(TDIMS_A))
をもち、B
が P
の変換次元 (P = length(TDIMS_B))
をもつ場合、N > 1
の場合、ndims(M) = P + 1
、N == 1
の場合 P
です。また、size(M,P + 1) = N
です。
M
の最初の P
次元は、出力変換空間に対応し、TDIMS_B
にリストされる出力変換次元の順番に従って、置換されます (一般的に、TDIMS_A
と TDIMS_B
は、昇順に並べ替える必要はありませんが、このような制限を設けるリサンプラーもあります)。そして、size(M)
の最初の P
要素は、B
の変換次元のサイズを決定します。各点がマッピングされる入力変換座標は、TDIMS_A
に与えられる順番に従って、M
の最後の次元をまたいで配置されます。M
は double
でなければなりません。FSIZE_A
および FSIZE_B
は、A
および B
のフル サイズで、必要に応じて、TDIMS_A
、TDIMS_B
、および size(A)
と整合性を保つ必要がある場合、1
でパディングします。
データ型: function_handle
CustomData
— ユーザー定義データ
数値配列 | string スカラー | 文字ベクトル
ユーザー定義データ。string スカラー、文字ベクトルまたは数値配列を使用して指定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
出力引数
R
— リサンプラー
構造体
リサンプラー。構造体として返されます。
拡張機能
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数は、スレッドベースの環境を完全にサポートします。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2006a より前に導入R2021b: スレッドベース環境のサポート
makeresampler
は、スレッドベースの環境をサポートするようになりました。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)