使用pyplot在图像上添加基于数组的图形

时间:2018-03-30 12:15:03

标签: python arrays matplotlib

我正在从CT上绘制一个DICOM切片,我想要绘制一个感兴趣区域(ROI)。问题是我没有成功在我的背景DICOM图像上显示此ROI。我的想法是最终在我的背景DICOM图像上绘制一个彩色圆圈。 这是代码:

import numpy as np
import matplotlib.pyplot as plt

ArrayDicom = np.ones((512, 512, 148))
plt.figure(figsize=(3, 3), dpi=300)
plt.axes().set_aspect('equal', 'datalim')
plt.axis('off')
plt.set_cmap(plt.gray())
x = np.arange(0, 512, 1)
y = np.arange(0, 512, 1)
plt.pcolormesh(x, y, np.flipud(ArrayDicom[:, :, 0]))  # ArrayDicom = Image 3D Array

nx, ny, nz = (512, 512, 148)
# Grid creation
x, y = np.ogrid[:nx, :ny]
# Mask creation
radius = 5
x_center, y_center = (2, 2)
contour = (x - x_center) ** 2 + (y - y_center) ** 2 == radius ** 2
mask_contour = np.zeros((nx, ny, nz))
mask_contour[:, :, 0][contour] = 1
ax = plt.gca()
ax.plot(mask_contour[:, :, 0], color='red')

plt.show()

我使用本教程https://pyscience.wordpress.com/2014/09/08/dicom-in-python-importing-medical-image-data-into-numpy-with-pydicom-and-vtk/来显示我的DICOM图像。 我想我只是想念一种绘制数据的方法。我知道我可以使用plt.Circle但是我想处理球体而不是下一个圆圈。

感谢您的帮助。

0 个答案:

没有答案