主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

imwarp

イメージへの幾何学的変換の適用

説明

B= imwarp (一个tformは,幾何学的変換tformに従って数値イメージ,論理イメージ,または直言イメージ一个を変換します。関数は変換されたイメージをBに返します。

B= imwarp (一个Dは,変位場Dに従ってイメージ一个を変換します。

BRB) = imwarp (一个类风湿性关节炎tformは,イメージデータ一个およびこれに関連付けられた空間参照オブジェクト类风湿性关节炎によって指定される空間参照イメージを変換します。出力は,イメージデータBおよびこれに関連付けられた空間参照オブジェクトRBによって指定される空間参照イメージです。

___) = imwarp (___插值函数は,使用する内挿のタイプを指定します。

___) = imwarp (___名称,值は,幾何学的変換のさまざまな特性を制御する名前と値のペアの引数を指定します。

ヒント

入力の変換tformでフォワード変換を定義しない場合は,名前と値のペアの引数OutputViewを使用して変換を高速化します。

すべて折りたたむ

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

我= imread (“cameraman.tif”);imshow(我)

2次元幾何学的変換オブジェクトを作成します。

Tform = affine2d([1 0 0;5 1 0;0 0 1])
tform = affine2d with properties: T: [3x3 double]维数:2

変換をイメージに適用します。

J = imwarp(我tform);图imshow (J)

3次元MRIデータをワークスペースに読み取り,それを可視化します。

s =负载(“核磁共振”);mriVolume =挤压(其中);sizeIn =大小(mriVolume);hFigOriginal =图;hAxOriginal =轴;片(双(mriVolume) sizeIn (2) / 2, sizeIn (1) / 2, sizeIn (3) / 2);网格,阴影插值函数, colormap灰色的

3次元幾何学的変換オブジェクトを作成します。まず,y軸に対してイメージを回転した変換行列を作成します。その後,変換行列からaffine3dオブジェクトを作成します。

θ=π/ 8;T = [cos 0 -sin 0 0 1 0 0 0 sin 0 cos 0 0 0 1];tform = affine3d (t)
tform = affine3d with properties: T: [4x4 double] dimension: 3

変換をイメージに適用します。

mriVolumeRotated = imwarp (mriVolume tform);

変換されたボリュームの中心を通る3つのスライス平面を可視化します。

sizeOut =大小(mriVolumeRotated);hFigRotated =图;hAxRotated =轴;片(双(mriVolumeRotated) sizeOut (2) / 2, sizeOut (1) / 2, sizeOut(3) / 2)网格,阴影插值函数, colormap灰色的

両方の軸のビューをリンクさせます。

linkprop ([hAxOriginal, hAxRotated],“视图”);

回転の効果を確認するためのビューを設定します。

集(hAxRotated,“视图”(-3.5 - 20.0))

イメージを読み取って表示します。イメージの空間範囲を確認するには,座標軸を表示します。

一个= imread (“kobi.png”);iptsetpref (“ImshowAxesVisible”“上”) imshow (A)

2次元アフィン変換を作成します。この例では,範囲[1.2,2.4]の係数でのスケーリング,範囲[45]-45年,度の角度での回転,範囲(100、200)ピクセルの距離での水平方向の平行移動で構成されるランダムな変換を作成します。

tform = randomAffine2d (“规模”[1.2, 2.4],“XTranslation”(100 200),“旋转”, -45年,45);

イメージと変換について3つの異なる出力表示を作成します。

centerOutput = affineOutputView(大小(A)、tform“BoundsStyle”“CenterOutput”);followOutput = affineOutputView(大小(A)、tform“BoundsStyle”“FollowOutput”);sameAsInput = affineOutputView(大小(A)、tform“BoundsStyle”“SameAsInput”);

異なる出力表示スタイルをそれぞれ使用して,入力イメージに変換を適用します。

BCenterOutput = imwarp (tform,“OutputView”, centerOutput);BFollowOutput = imwarp (tform,“OutputView”, followOutput);BSameAsInput = imwarp (tform,“OutputView”, sameAsInput);

結果のイメージを表示します。

imshow (BCenterOutput)标题(“CenterOutput边界风格”);

imshow (BFollowOutput)标题(“FollowOutput边界风格”);

imshow (BSameAsInput)标题(“SameAsInput边界风格”);

iptsetpref (“ImshowAxesVisible”“关闭”

入力引数

すべて折りたたむ

変換されるイメージ。任意の次元の数値配列,逻辑配列,または直言配列として指定します。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|分类

適用する幾何学的変換。rigid2daffine2dprojective2drigid3d,またはaffine3dオブジェクトとして指定します。

  • tformが2次元で,一个が2次元より大きい場合(たとえば,RGBイメージなど),imwarpは,より高い次元に沿ったすべての2次元平面に同じ2次元変換を適用します。

  • tformが3次元の場合,一个は3次元イメージボリュームでなければなりません。

変位場。数値配列として指定します。変位場は出力イメージのグリッド サイズと位置を定義します。変位値の単位はピクセルです。imwarpでは,Dは既定の固有座標系を基準とすると仮定しています。変位場の推定には,imregdemonsを使用します。

  • 一个が2次元イメージの場合,Dはm x n x 2の配列です。変位場の1番目の平面D (:: 1)は,加算される変位のx成分を表しています。imwarpはこれらの値をDの行と列の位置に加算し,一个における再マップ後の位置を生成します。変位場の2番目の平面D (:: 2)が,加算される変位値のy成分を表しています。カラーチャネルが複数ある2次元カラーイメージまたはマルチスペクトルイメージの場合,imwarpは各チャネルに同じm x n x 2の変位場を適用します。

  • 一个が3次元イメージの場合,Dはm x n x p x 3の配列です。変位場の1番目の平面D (:: 1)は,加算される変位のx成分を表しています。imwarpはこれらの値をDの行と列の位置に加算し,一个における再マップ後の位置を生成します。同様に,変位場の2番目と3番目の平面がそれぞれ,加算される変位値のy成分とz成分を表しています。

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

変換されるイメージの空間参照情報。2次元変換のimref2dオブジェクトまたは3次元変換のimref3dオブジェクトとして指定されます。

使用される内挿のタイプ。以下のいずれかの値を指定します。

内挿法 説明
“最近的”

最近傍内挿。出力ピクセルには,対象の点が含まれるピクセルの値が代入されます。周りの他のピクセルは,考慮に入れません。

最近傍内挿は,直言イメージでサポートされている唯一のメソッドであり,このタイプのイメージに対する既定のメソッドです。

“线性” 線形内挿。これは,数値イメージと論理イメージに対する既定の内挿法です。
“立方” 3 次内挿

データ型:字符|字符串

名前と値のペアの引数

オプションの引数名称,值のコンマ区切りペアを指定します。的名字は引数名で,价值は対応する値です。的名字は引用符で囲まなければなりません。Name1, Value1,…,的家のように,複数の名前と値のペアの引数を,任意の順番で指定できます。

例:J = imwarp(我tform FillValues, 255)は塗りつぶしの値に白のピクセルを使用します。

ワールド座標系における出力イメージのサイズと位置。“OutputView”と空間参照オブジェクトimref2dまたはimref3dで構成されるコンマ区切りのペアとして指定します。このオブジェクトには,ワールド座標系における出力イメージのサイズと位置を定義するプロパティがあります。

関数affineOutputViewを使用することで,出力表示を作成できます。imwarpで計算される既定の出力表示を再現するには,affineOutputViewの既定の境界のスタイル(“CenterOutput”)を使用します。

入力の変位場Dを指定する場合,OutputViewは指定できません。

入力イメージの外側にある出力ピクセルに使用する塗りつぶしの値。“FillValues”と次の値のいずれかで構成されるコンマ区切りのペアとして指定します。imwarpは,入力イメージにおける対応する逆変換後の位置が完全に入力イメージの境界外である場合に,塗りつぶしの値を出力ピクセルに使用します。

数値イメージと論理イメージの既定の塗りつぶしの値は0です。直言イメージの既定の塗りつぶしの値は失踪です。<定义>カテゴリに対応します。

イメージタイプ

変換の次元

塗りつぶしの値の形式

2次元グレースケールイメージまたは論理イメージ 2 次元
  • 数値スカラー

2次元カラーイメージまたは2次元マルチスペクトルイメージ 2 次元
  • 数値スカラー

  • c要素の数値ベクトル。cチャネルのそれぞれに塗りつぶしの値を指定します。カラーイメージの場合,チャネル数cは3です。

一連のp 2次元イメージ 2 次元

  • 数値スカラー

  • p c行列の数値行列。チャネル数cはグレースケールイメージの場合は1になり,カラーイメージの場合は3になります。

N次元イメージ 2 次元
  • 数値スカラー

  • 入力イメージ一个の3 ~ N次元に一致するサイズの数値配列。たとえば,一个が200 x 200 x 10 x 3である場合,FillValuesは10行3列の配列となります。

3次元グレースケールイメージまたは論理イメージ 3 次元
  • 数値スカラー

直言イメージ 2次元または3次元
  • イメージ内の有効なカテゴリ。字符串スカラーまたは文字ベクトルとして指定します。

  • 失踪<定义>カテゴリに対応します。詳細については,失踪を参照してください。

例:255にすると,uint8イメージを白のピクセルで塗りつぶします

例:1にすると,イメージを白のピクセルで塗りつぶします

例:(0 1 0)にすると,カラーイメージを緑のピクセルで塗りつぶします

例:[0 1 0;0 1 1]“にすると2つのカラーイメージから成るセットの場合,1番目のイメージを緑のピクセルで,2番目のイメージをシアンのピクセルで塗りつぶします

例:“汽车”にすると,直言イメージを“车辆”カテゴリで塗りつぶします

滑らかなエッジを作成するためのイメージのパディング。真正的またはを指定します。真正的に設定すると,imwarpFillValuesで指定された値を使用して入力イメージをパディングすることで,滑らかなエッジを出力イメージに作成します。に設定すると,imwarpはイメージをパディングしません。(パディングなし)を選択すると,入力イメージによって出力イメージに鋭いエッジが生成される可能性があります。こうした鋭いエッジは,2つのイメージを並べてレジストレーションする場合に継ぎ目の歪みを最小化するのに役立ちます。

出力引数

すべて折りたたむ

変換されたイメージ。入力イメージ一个と同じデータ型の数値配列,逻辑配列,または直言配列として返されます。

変換されたイメージの空間参照情報。imref2dまたはimref3dの空間参照オブジェクトとして返されます。

アルゴリズム

imwarpは,出力イメージの位置を入力イメージの対応する位置に逆マッピングして,出力イメージのピクセルの値を決定します。imwarpは入力イメージ内で内挿して出力ピクセル値を算出します。

次の図は平行移動変換を示しています。規則により,入力空間の軸にはuおよびv,出力空間の軸にはxおよびyのラベルが付けられます。入力イメージのピクセルの位置を定義する空間座標がimwarpによってどのように変更されるかを,この図で確認してください。(1,1)のピクセルが(41岁41)に配置されました。このチェッカーボードのイメージでは,黒,白,グレーの四角はそれぞれが高さ10ピクセル,10幅ピクセルです。空間座標とピクセル座標の違いの詳細については,イメージの座標系を参照してください。

平行移動した入力イメージ

拡張機能

R2013aで導入