このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
intrinsicToWorld
固有座標からワールド座標への変換
構文
説明
[
は、2 次元空間参照オブジェクト xWorld
, yWorld
] = intrinsicToWorld(R
,xIntrinsic
,yIntrinsic
)R
で定義された関係に基づいて、点の位置を 2 次元固有座標系 (xIntrinsic
,yIntrinsic
) から 2 次元ワールド座標系 (xWorld
,yWorld
) にマッピングします。
k 番目の入力座標 (xIntrinsic
(k),yIntrinsic
(k)) が固有座標系のイメージの境界の外側にある場合、intrinsicToWorld
はワールド座標系でのイメージの範囲外に xWorld
(k) および yWorld
(k) を外挿します。
[
は、3 次元空間参照オブジェクト xWorld
, yWorld
, zWorld
] = intrinsicToWorld(R
,xIntrinsic
,yIntrinsic
,zIntrinsic
)R
を使用して、固有座標系からワールド座標系に点をマッピングします。
例
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,'DisplayRange',[0 512]) axis on
膝のおおよその位置と幅をミリメートル単位で計算するとします。膝頭の高さで膝を横切って水平に走る線分の端点を選択します。たとえば、(x,y) の点 (34,172) と (442,172) を使用します。
xIntrinsic = [34 442]; yIntrinsic = [172 172];
これらの点を固有座標からワールド座標に変換します。
[xWorld,yWorld] = intrinsicToWorld(RA,xIntrinsic,yIntrinsic)
xWorld = 1×2
10.6250 138.1250
yWorld = 1×2
53.7500 53.7500
2 つの点のワールド座標はミリメートル単位で (10.625,53.75) と (138.125,53.75) です。膝のおよその幅 (ミリメートル) は以下のとおりです。
width = xWorld(2) - xWorld(1)
width = 127.5000
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]
空間参照オブジェクトを省略して、ボリュームの中央のスライスを表示します。座標軸座標は、固有座標を反映します。座標 (0,0) はこの平面の左上隅にあることに注意してください。z = 0 は最初のスライスのすぐ下にあり、z 軸は頭頂部に向かって上向きに正です。
figure
imshow(D(:,:,13))
axis on
このスライス内の特徴の位置をミリメートル単位で決めるとします。4 つのサンプル点を選択し、その固有座標をベクトルに格納します。たとえば、最初の点は固有座標 (54,46,13) です。このスライス内におけるすべての点で、固有の z 座標は同一です。
xI = [54 71 57 70]; yI = [46 48 79 80]; zI = [13 13 13 13];
intrinsicToWorld
を使用して、固有座標をワールド座標に変換します。
[xW,yW,zW] = intrinsicToWorld(R,xI,yI,zI)
xW = 1×4
108 142 114 140
yW = 1×4
92 96 158 160
zW = 1×4
52 52 52 52
結果として得られるベクトルは、選択された点のミリメートル単位のワールド座標 x、y、z です。たとえば、第 1 の点は、原点から x 方向に 108 mm、y 方向に 92 mm、z 方向に 52 mm オフセットされています。
入力引数
xIntrinsic
— 固有座標系の x 次元に沿った座標
数値スカラーまたはベクトル
固有座標系の x 次元に沿った座標であり、数値スカラーまたは数値ベクトルとして指定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
yIntrinsic
— 固有座標系の y 次元に沿った座標
数値スカラーまたはベクトル
固有座標系の y 次元に沿った座標であり、数値スカラーまたは数値ベクトルとして指定します。yIntrinsic
は、xIntrinsic
と同じ長さです。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
zIntrinsic
— 固有座標系の z 次元に沿った座標
数値スカラーまたはベクトル
固有座標系の z 次元に沿った座標であり、数値スカラーまたは数値ベクトルとして指定します。zIntrinsic
は、xIntrinsic
と同じ長さです。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
出力引数
xWorld
— ワールド座標系の x 次元に沿った座標
数値スカラーまたはベクトル
ワールド座標系の x 次元に沿った座標であり、数値スカラーまたは数値ベクトルとして返されます。xWorld
は、xIntrinsic
と同じ長さです。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
yWorld
— ワールド座標系の y 次元に沿った座標
数値スカラーまたはベクトル
ワールド座標系の y 次元に沿った座標であり、数値スカラーまたは数値ベクトルとして返されます。yWorld
は、xIntrinsic
と同じ長さです。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
zWorld
— ワールド座標系の z 次元に沿った座標
数値スカラーまたはベクトル
ワールド座標系の z 次元に沿った座標であり、数値スカラーまたは数値ベクトルとして返されます。zWorld
は、xIntrinsic
と同じ長さです。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
バージョン履歴
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)