exponenta event banner

worldToIntrinsic

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

Описание

пример

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

Если k-ый входной координаты (xWorld(k),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