worldToIntrinsic

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

Описание

пример

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

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

пример

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

Примеры

свернуть все

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

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-направлении, а третья точка - на 0,2 мм справа от неё в + x-направлении. Последняя точка находится вне контура изображения.

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