Фон:
Я использую Xarray для анализа медицинской визуализации и контуров, определенных в регионе.Мой xarray - это трехмерный массив значений пикселей с координатами, определенными системой координат пациента (x, y, z) в мм.
У меня есть ряд координат (в x, y, z), которые определяют вершины комплексного многоугольника.Это список кортежей, где каждый список определяет все вершины в z-плоскости.например,
[[(x1, y1, z1),..(xN, yN, z1)], [(x1, y1, z2),..(xM, yM, z2)], ...]
Я сделал цифру, но мой хопситал заблокировал доступ ко всем веб-сайтам обмена изображениями, которые я пробовал.Сожалею.
Запрос справки:
Я хотел бы создать маску области, определяемой этими многоугольными координатами.Мне трудно понять, как это сделать.Руководство будет высоко оценено !!
Вот некоторый игрушечный код для иллюстрации:
pixel_data = np.ones((5,5,5))
x_coords = np.arange(2.4, 7.4, 1)
y_coords = np.arange(-3.6, 1.4, 1)
z_coords = np.arange(202.7, 207.7, 1)[::-1]
coords = {'x': x_coords, 'y': y_coords, 'z': z_coords}
example = xr.DataArray(pixel_data, dims=('y','x','z'), coords=coords)
Массив:
<xarray.DataArray (y: 5, x: 5, z: 5)>
array([[[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]],
...
Coordinates:
* x (x) float64 2.4 3.4 4.4 5.4 6.4
* y (y) float64 -3.6 -2.6 -1.6 -0.6 0.4
* z (z) float64 206.7 205.7 204.7 203.7 202.7
contours = [[(2.4, -3.6, 203.7),(3.4, 0.4, 203.7),(6.4, -1.6, 203.7)],
[(2.4, -2.6, 204.7),(4.4, 0.4, 204.7),(6.4, -3.6, 204.7)]]
Координаты x, y и z вкаждый кортеж всегда будет точно соответствовать координатам x, y, z в моем массиве данных.