exponenta event banner

intrinsicToWorld

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

Описание

пример

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

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

пример

[xWorld, yWorld, zWorld] = intrinsicToWorld(R,xIntrinsic,yIntrinsic,zIntrinsic) отображение точек из внутренней системы координат в мировую систему координат с использованием объекта пространственной привязки 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,'DisplayRange',[0 512])
axis on

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

Предположим, вы хотите вычислить приблизительное положение и ширину колена в миллиметрах. Выберите конечные точки отрезка линии, который проходит горизонтально через колено на уровне колена. Например, используйте точки (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

Мировые координаты двух точек - (10,625,53,75) и (138,125,53,75), в единицах миллиметров. Приблизительная ширина колена в миллиметрах равна:

width = xWorld(2) - xWorld(1)
width = 127.5000

Чтение тома 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]

Отображение среднего фрагмента объема, в котором отсутствует объект пространственной ссылки. Координаты осей отражают внутренние координаты. Обратите внимание, что координата (0,0) находится в левом верхнем углу этой плоскости. z = 0 находится прямо под первым срезом, а ось z положительна в направлении вверх, к вершине головки.

figure
imshow(D(:,:,13))
axis on

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

Предположим, что необходимо определить положение элементов в данном фрагменте в миллиметрах. Выберите четыре точки выборки и сохраните их внутренние координаты в векторах. Например, первая точка имеет собственные координаты (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 в миллиметрах выбранных точек. Первая точка, например, смещена от начала координат на 108 мм в направлении x, 92 мм в направлении y и 52 мм в направлении z.

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

свернуть все

Объект пространственной ссылки, указанный как imref2d или imref3d объект.

Координаты вдоль размера X в собственной системе координат, заданные как числовой скаляр или вектор.

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

См. также

| |

Представлен в R2013a