このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
worldToSubscript
ワールド座標から行と列の添字への変換
説明
例
2 次元ワールド座標の行と列の添字への変換
膝の 2 次元グレースケール イメージをワークスペースに読み取ります。
m = dicominfo('knee1.dcm');
A = dicomread(m);
ピクセルのサイズと解像度を指定して、imref2d
オブジェクトを作成します。DICOM ファイルには、各次元のイメージ解像度を 1 ピクセルあたりのミリメートル単位で指定するメタデータ フィールド PixelSpacing
が含まれます。
RA = imref2d(size(A),m.PixelSpacing(2),m.PixelSpacing(1))
RA = imref2d with properties: XWorldLimits: [0.1562 160.1562] YWorldLimits: [0.1562 160.1562] ImageSize: [512 512] PixelExtentInWorldX: 0.3125 PixelExtentInWorldY: 0.3125 ImageExtentInWorldX: 160 ImageExtentInWorldY: 160 XIntrinsicLimits: [0.5000 512.5000] YIntrinsicLimits: [0.5000 512.5000]
空間参照オブジェクトを含むイメージを表示します。座標軸座標は、ワールド座標を反映します。座標 (0,0) が左上隅にあることに注目してください。
figure
imshow(A,RA,'DisplayRange',[0 512])
サンプル点を選択し、そのワールド座標 x および y をベクトルに格納します。たとえば、最初の点はワールド座標 (38.44,68.75) で、2 番目の点はそれよりも 1 mm 右にあり、3 番目の点は 7 mm 下にあります。最後の点はイメージ境界外にあります。
xW = [38.44 39.44 38.44 -0.2]; yW = [68.75 68.75 75.75 1];
worldToSubscript
を使用してワールド座標から行と列の添字に変換します。
[rS, cS] = worldToSubscript(RA,xW,yW)
rS = 1×4
220 220 242 NaN
cS = 1×4
123 126 123 NaN
結果のベクトルには、点に最も近い行インデックスと列インデックスが含まれます。インデックスは離散的であり、イメージ境界外の点の行インデックスと列インデックスの両方に NaN
があります。
また、入力座標と出力座標の順序が逆になります。ワールド座標の x のベクトル xW
は、2 番目の出力ベクトル cS
に対応します。ワールド y 座標ベクトル yW
は、最初の出力ベクトル rS
に対応します。
3 次元ワールド座標の行、列、および平面への変換
3 次元ボリュームをワークスペースに読み取ります。このイメージは、27 フレームの 128 × 128 ピクセル イメージから構成されます。
load mri;
D = squeeze(D);
D = ind2gray(D,map);
ボリュームに関連付けられた imref3d
空間参照オブジェクトを作成します。説明をわかりやすくするために、各次元でピクセル解像度を指定します。解像度は 1 ピクセルあたりのミリメートル単位で指定します。
R = imref3d(size(D),2,2,4)
R = imref3d with properties: XWorldLimits: [1 257] YWorldLimits: [1 257] ZWorldLimits: [2 110] ImageSize: [128 128 27] PixelExtentInWorldX: 2 PixelExtentInWorldY: 2 PixelExtentInWorldZ: 4 ImageExtentInWorldX: 256 ImageExtentInWorldY: 256 ImageExtentInWorldZ: 108 XIntrinsicLimits: [0.5000 128.5000] YIntrinsicLimits: [0.5000 128.5000] ZIntrinsicLimits: [0.5000 27.5000]
サンプル点を選択し、そのワールド座標 x、y、および z をベクトルに格納します。たとえば、最初の点はワールド座標 (108,92,52) で、2 番目の点はそれよりも 3 mm 上 (+z 方向) にあり、3 番目の点は 5.2 mm 右 (+x 方向) にあります。最後の点はイメージ境界外にあります。
xW = [108 108 113.2 2]; yW = [92 92 92 -1]; zW = [52 55 52 0.33];
worldToSubscript
を使用してワールド座標から行、列、および平面の添字に変換します。
[rS, cS, pS] = worldToSubscript(R,xW,yW,zW)
rS = 1×4
46 46 46 NaN
cS = 1×4
54 54 57 NaN
pS = 1×4
13 14 13 NaN
結果として得られるベクトルには、点に最も近い列インデックス、行インデックス、および平面インデックスが含まれます。インデックスは離散的であり、イメージ境界外の点は、NaN
のインデックス値を持つことに注意してください。
また、入力座標と出力座標の順序が逆になります。ワールド座標の x のベクトル xW
は、2 番目の出力ベクトル cS
に対応します。ワールド y 座標ベクトル yW
は、最初の出力ベクトル rS
に対応します。
入力引数
xWorld
— ワールド座標系の x 次元に沿った座標
数値スカラーまたはベクトル
ワールド座標系の x 次元に沿った座標であり、数値スカラーまたは数値ベクトルとして指定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
yWorld
— ワールド座標系の y 次元に沿った座標
数値スカラーまたはベクトル
ワールド座標系の y 次元に沿った座標であり、数値スカラーまたは数値ベクトルとして指定します。yWorld
は、xWorld
と同じ長さです。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
zWorld
— ワールド座標系の z 次元に沿った座標
数値スカラーまたはベクトル
ワールド座標系の z 次元に沿った座標であり、数値スカラーまたは数値ベクトルとして指定します。zWorld
は、xWorld
と同じ長さです。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
出力引数
I
— 行インデックス
正の整数のスカラーまたはベクトル
行インデックス。正の整数のスカラーまたはベクトルとして返されます。I
は yWorld
の長さと同じです。m 行 n 列または m x n x p のイメージの場合、1 ≤ I
≤ m です。
データ型: double
J
— 列インデックス
正の整数のスカラーまたはベクトル
列インデックス。正の整数のスカラーまたはベクトルとして返されます。J
は xWorld
の長さと同じです。m 行 n 列または m x n x p のイメージの場合、1 ≤ J
≤ n です。
データ型: double
K
— 平面インデックス
正の整数のスカラーまたはベクトル
平面インデックス。正の整数のスカラーまたはベクトルとして返されます。K
は zWorld
の長さと同じです。m x n x p のイメージの場合、1 ≤ K
≤ p です。
データ型: double
バージョン履歴
R2013a で導入
参考
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)