worldToSubscript

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

Описание

пример

[I, J] = worldToSubscript(R,xWorld,yWorld) карты точек от 2-D мировой системы (xWorld, yWorld) к нижним индексам массивов I и J основанный на связи, заданной 2-D пространственный объект привязки R.

Если k-я входные координаты (xWorld(<reservedrangesplaceholder1>), yWorld(k)) упасть вне границ изображения в мировой системе координат, worldToSubscript устанавливает соответствующие индексы I(k) и J(k) для NaN.

пример

[I, J, K] = worldToSubscript(R,xWorld,yWorld,zWorld) преобразует точки из 3-D мировой системы в нижние индексы массивов I, J, и K, использование 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];

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

[rS, cS] = worldToSubscript(RA,xW,yW)
rS = 1×4

   220   220   242   NaN

cS = 1×4

   123   126   123   NaN

Получившиеся векторы содержат индексы строка и столбец, которые находятся ближе всего к точке. Обратите внимание, что индексы являются дискретными и что точки за контур изображения имеют NaN для обоих индексов строка и столбец.

Кроме того, порядок входных и выходных координат противоположен. Вектор координат X в мире, xW, соответствует второму выходному вектору, cS. Вектор мировой y-координаты, yW, соответствует первому выходному вектору, rS.

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

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

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

[rS, cS, pS] = worldToSubscript(R,xW,yW,zW)
rS = 1×4

    46    46    46   NaN

cS = 1×4

    54    54    57   NaN

pS = 1×4

    13    14    13   NaN

Получившиеся векторы содержат индексы столбца, строки и плоскости, которые находятся ближе всего к точке. Обратите внимание, что индексы являются дискретными, и что точки за контур изображения имеют значения индекса NaN.

Кроме того, порядок входных и выходных координат противоположен. Вектор координат X в мире, xW, соответствует второму выходному вектору, cS. Вектор мировой y-координаты, yW, соответствует первому выходному вектору, rS.

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

свернуть все

Пространственный объект привязки, заданный как 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

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

свернуть все

Индексы строк, возвращенные как положительный целочисленный скаляр или вектор. I - такая же длина, как и yWorld. Для m -by- n или m -by- n -by- p изображения 1 ≤ Im.

Типы данных: double

Индексы столбцов, возвращенные как положительный целочисленный скаляр или вектор. J - такая же длина, как и xWorld. Для m -by- n или m -by- n -by- p изображения 1 ≤ Jn.

Типы данных: double

Плоские индексы, возвращенные как положительный целочисленный скаляр или вектор. K - такая же длина, как и zWorld. Для m -by- n -by- p изображения 1 ≤ Kp.

Типы данных: double

См. также

| |

Введенный в R2013a