Преобразуйте мировые координаты в индексы строк и столбцов
[
карты точек от 2-D мировой системы (I
, J
] = worldToSubscript(R
,xWorld
,yWorld
)xWorld
, yWorld
) к нижним индексам массивов I
и J
основанный на связи, заданной 2-D пространственный объект привязки R
.
Если k-я входные координаты (xWorld
(<reservedrangesplaceholder1>), yWorld
(k)) упасть вне границ изображения в мировой системе координат, worldToSubscript
устанавливает соответствующие индексы I(k) и
J
(k) для NaN
.
Считайте 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])
Выберите точки выборки и сохраните их мировые координаты 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
.
xWorld
- Координаты вдоль x -размерность в мировой системе координатКоординаты вдоль x -размерность в мировой системе координат, заданные в виде числа или вектора.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
yWorld
- Координаты вдоль y -размерность в мировой системе координатКоординаты вдоль y -размерность в мировой системе координат, заданные в виде числа или вектора. yWorld
- такая же длина, как и xWorld
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
zWorld
- Координаты вдоль z -размерность в мировой системе координатКоординаты вдоль z -размерность в мировой системе координат, заданные в виде числа или вектора. zWorld
- такая же длина, как и xWorld
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
I
- Индексы строкИндексы строк, возвращенные как положительный целочисленный скаляр или вектор. I
- такая же длина, как и yWorld
. Для m -by- n или m -by- n -by- p изображения 1 ≤ I
≤ m.
Типы данных: double
J
- Индексы столбцовИндексы столбцов, возвращенные как положительный целочисленный скаляр или вектор. J
- такая же длина, как и xWorld
. Для m -by- n или m -by- n -by- p изображения 1 ≤ J
≤ n.
Типы данных: double
K
- Индексы плоскостиПлоские индексы, возвращенные как положительный целочисленный скаляр или вектор. K
- такая же длина, как и zWorld
. Для m -by- n -by- p изображения 1 ≤ K
≤ p.
Типы данных: double
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.