我写了以下代码来生成随机数据:
xx, yy = np.meshgrid(np.linspace(0, 1, 32), np.linspace(0, 1, 32))
X = xx
Y = yy
Z = np.random.rand(32, 32)
##### MASK : SQUARE IMAGE => CIRCLE IMAGE ######
N = 32
m = (N-1)/2
mask = np.ones((N,N))
D = 80
a = D/N
for i in range(N):
for j in range(N):
if (i-m)**2+(j-m)**2 < (D/2/a)**2:
mask[i][j] = 0
################################################
plt.imshow(np.ma.masked_array(Z, mask))
#plt.contourf(X, Y, np.ma.masked_array(Z, mask), zdir='z', offset=0.5, levels=100)
plt.show()
输出:
我想将图像转换为圆柱体对象。这就像有多个(相同的)堆叠的圆形图像。
***另一示例:***1.[
]
2.[
]
1条答案
按热度按时间aydmsdu91#
如果您只想创建一个像素数据堆栈,这应该适合您
这只是沿着z轴重复带有随机数据
z_height
次的圆,并将结果分配给一个新的数组mask3
。请注意,我冒昧地简化了任务。您创建的遮罩数组实际上并不包含任何像素数据,因此我将Z乘以遮罩的倒数。
您也可以将1而不是0分配给您想要保留的掩码位置,然后您可以简化上面的代码。
如果你想要一个纹理网格,这是一个完全不同的故事,将需要一些更多的工作,我不能迅速鞭打这样:D
编辑:
下面是上面代码的输出: