worldToIntrinsic

Преобразуйте от мира до внутренних координат

Описание

пример

[xIntrinsic, yIntrinsic] = worldToIntrinsic(R,xWorld,yWorld) карты указывают от 2D мировой системы (xWorld, yWorld) к 2D внутренней системе (xIntrinsic, yIntrinsic) на основе отношения, заданного 2D пространственным объектом привязки R.

Если k th входные координаты (xWorld(k), yWorld(k)), выходят за пределы границ изображений в системе мировой координаты, worldToIntrinsic экстраполирует xIntrinsic(k) и yIntrinsic(k) вне изображения ограничивает во внутренней системе координат.

пример

[xIntrinsic,yIntrinsic,zIntrinsic] = worldToIntrinsic(R,xWorld,yWorld,zWorld) карты указывают от системы мировой координаты до внутренней системы координат с помощью 3-D пространственного объекта привязки R.

Примеры

свернуть все

Считайте 2D полутоновое изображение колена в рабочую область.

m = dicominfo('knee1.dcm');
A = dicomread(m);

Создайте imref2d объект, задавая размер и разрешение пикселей. Файл DICOM содержит поле метаданных 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])

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

Выберите точки выборки и сохраните их мир x-и координаты y-в векторах. Например, первая точка имеет мировые координаты (38.44,68.75), вторая точка составляет 1 мм справа от нее, и третья точка на 7 мм ниже ее. Последняя точка находится вне границы изображения.

xW = [38.44 39.44 38.44 -0.2];
yW = [68.75 68.75 75.75 -1];

Преобразуйте мировые координаты во внутренние координаты с помощью worldToIntrinsic.

[xI, yI] = worldToIntrinsic(RA,xW,yW)
xI = 1×4

  123.0080  126.2080  123.0080   -0.6400

yI = 1×4

  220.0000  220.0000  242.4000   -3.2000

Итоговые векторы являются внутренним параметром x-и координатами y-в модулях пикселей. Обратите внимание на то, что внутренняя система координат непрерывна, и некоторые возвращенные внутренние координаты имеют значения нецелого числа. Кроме того, worldToIntrinsic экстраполирует внутренние координаты точки вне границы изображения.

Считайте 3-D объем в рабочую область. Это изображение состоит из 27 систем координат 128 128 пиксельных изображений.

load mri;
D = squeeze(D);
D = ind2gray(D,map);

Создайте imref3d пространственный объект привязки сопоставлен с объемом. В иллюстративных целях обеспечьте пиксельное разрешение в каждой размерности. Разрешение находится в миллиметрах на пиксель.

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), вторая точка на 3 мм выше ее в +z-direction, и третья точка составляет 0,2 мм справа от нее в +x-direction. Последняя точка находится вне границы изображения.

xW = [108 108 108.2 2];
yW = [92 92 92 -1];
zW = [52 55 52 0.33];

Преобразуйте мировые координаты во внутренние координаты с помощью worldToIntrinsic.

[xI, yI, zI] = worldToIntrinsic(R,xW,yW,zW)
xI = 1×4

   54.0000   54.0000   54.1000    1.0000

yI = 1×4

   46.0000   46.0000   46.0000   -0.5000

zI = 1×4

   13.0000   13.7500   13.0000    0.0825

Итоговые векторы являются внутренним параметром x-, y-, и z-координатами в модулях пикселей. Обратите внимание на то, что внутренняя система координат непрерывна, и некоторые возвращенные внутренние координаты имеют значения нецелого числа. Кроме того, worldToIntrinsic экстраполирует внутренние координаты точки вне границы изображения.

Входные параметры

свернуть все

Пространственный объект привязки в виде imref2d или imref3d объект.

Координаты вдоль x - размерность в системе мировой координаты, возвращенной в виде числа или вектора.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Координаты вдоль y - размерность в системе мировой координаты, возвращенной в виде числа или вектора. yWorld та же длина как xWorld.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Координаты вдоль z - размерность в системе мировой координаты, возвращенной в виде числа или вектора. zWorld та же длина как xWorld.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Координаты вдоль x - размерность во внутренней системе координат в виде числового скаляра или вектора. xIntrinsic та же длина как xWorld.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Координаты вдоль y - размерность во внутренней системе координат в виде числового скаляра или вектора. yIntrinsic та же длина как xWorld.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Координаты вдоль z - размерность во внутренней системе координат в виде числового скаляра или вектора. zIntrinsic та же длина как xWorld и yWorld.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Смотрите также

| | |

Введенный в R2013a