我想把两张照片叠起来。第一个是512x512 numpy阵列(来自CT图像)。第二个也是512x512 numpy数组,但我只对值大于0(功能图像)的像素感兴趣。
为此,我正试图创建一个蒙面数组。
import numpy as np
import numpy.ma as ma
import matplotlib.pyplot as plt
# Both images are loaded from a dicom. Both are numpy arrays of (512,512)
Image1 = readimage(path)
Image2 = readimage(path)
# Create image 2 mask
mask = ma.masked_where(Image2>0, Image2)
Image2_mask = ma.masked_array(Image2,mask)
# Plot images
plt.figure(dpi=300)
y, x = np.mgrid[1:513,1:513]
plt.axes().set_aspect('equal', 'datalim')
plt.set_cmap(plt.gray())
plt.pcolormesh(x, y, Image1,cmap='gray')
plt.pcolormesh(x, y, Image2_mask,cmap='jet')
plt.axis([x.min(), x.max(), y.min(), y.max()])
plt.colorbar()
plt.show()
此代码不显示任何覆盖。我做错什么了?有没有捷径?我来自一个Matlab环境,我对phyton相当陌生。
谢谢你
为什么不用
imshow
代替呢?可以通过执行以下操作打印二维图像:
之后,您可以通过执行以下操作轻松覆盖分段:
更改alpha将更改覆盖的不透明度。
另外,为什么要创建两个遮罩?只有一个是足够的,你可以做到:
实例:
相关问题 更多 >
编程相关推荐