1
我想要讀取一個灰度圖像,用(248,480,3)形狀表示一些東西,然後使用它的每個元素作爲製作Poisson隨機值的lam值,併爲每個元素執行此操作並創建一個新的數據集具有相同的形狀。我想這樣做多達nscan
,然後我想將它們全部加在一起,並將它們放入一個新的數據集中,並再次繪製它以獲得與我在開始時放置的第一張圖像相似的內容。此代碼正在工作,但速度非常慢,我想知道是否有任何方法可以使其更快?如何優化循環以在python中生成一個新的隨機泊松數組?
import numpy as np
import matplotlib.pyplot as plt
my_image = plt.imread('myimage.png')
def genP(data):
new_data = np.zeros(data.shape)
for i in range(data.shape[0]):
for j in range(data.shape[1]):
for k in range(data.shape[2]):
new_data[i, j, k] = np.random.poisson(lam = data[i, j, k])
return new_data
def get_total(data, nscan = 1):
total = genP(data)
for i in range(nscan):
total += genP(data)
total = total/nscan
plt.imshow(total)
plt.show()
get_total(my_image, 100)