我有一些圖像需要添加增量的泊松噪聲才能更全面地分析它們。我知道你可以在MATLAB中做到這一點,但你如何去做Python?到目前爲止搜索沒有任何結果。將泊松噪聲添加到圖像
回答
如果numpy/scipy可供您使用,那麼以下內容應該有所幫助。我建議你將數組強制浮點以進行中間計算,然後將其轉換回uint8用於輸出/顯示目的。由於泊松噪聲全部> = 0,因此您將需要決定如何處理數組溢出問題,因爲您將其轉換回uint8。您可以根據自己的目標進行縮放或截斷。
filename = 'myimage.png'
imagea = (scipy.misc.imread(filename)).astype(float)
poissonNoise = numpy.random.poisson(50,imagea.shape).astype(float)
noisyImage = imagea + poissonNoise
其實保羅的答案沒有道理。
泊松噪聲取決於信號!並且使用由他提供的這些命令,稍後添加到圖像的噪聲不依賴於信號。
爲了使依賴於信號您shold圖像傳遞到與NumPy的泊松功能:
filename = 'myimage.png'
img = (scipy.misc.imread(filename)).astype(float)
noise_mask = numpy.random.poisson(img)
noisy_img = img + noise_mask
赫爾德的答案是正確的。我只想添加一個事實,即泊松噪聲不是加性的,不能將其添加爲高斯噪聲。
取決於你想要達到的目標,這裏是一些建議:
模擬低光噪聲圖像(如PEAK = 1,這將是很大的聲響)
import numpy as np image = read_image("YOUR_IMAGE") # need a rescale to be more realistic noisy = np.random.poisson(image/255.0 * PEAK)/PEAK * 255 # noisy image
在乾淨的圖像
import numpy as np image = read_image("YOUR_IMAGE") noisemap = create_noisemap() noisy = image + np.random.poisson(noisemap)
然後你可以裁剪的結果爲0 - 255如果你喜歡(我使用PIL,所以我用255而不是1)。
這應該是正確的答案。 –
泊松分佈生成整數。如果圖像是範圍爲[0,1]的np.float數組,則正確的代碼應爲'noisy = np.random.poisson(image * 255.0 * PEAK)/ PEAK/255' – misssprite
- 1. 如何添加泊松噪聲和高斯噪聲?
- 2. Image雙精度圖像中的泊松噪聲(散粒噪聲)
- 3. 將泊松噪聲添加到擬合文件
- 4. 隨機泊松噪聲
- 5. 泊松噪聲去除,MATLAB
- 6. 將RMS噪聲添加到圖像
- 7. 添加具有高斯分佈的泊松噪聲
- 8. 向圖像添加噪聲
- 9. 如何在特定方差的圖像中插入泊松和斑點噪聲?
- 10. 創建噪聲圖像(隨機噪聲)
- 11. 疊加泊松分佈到直方圖
- 12. R:如何將噪聲簇添加到DBSCAN圖中
- 13. 如何將添加噪聲添加到數字序列C#中?
- 14. 將噪聲添加到輸入圖像時,Tensorflow損失發生變化
- 15. 圖像噪聲過濾
- 16. 閾值圖像和噪聲
- 17. 噪聲圖像壓縮
- 18. 試圖用噪音,numpy和圖像創建噪聲圖像
- 19. 手動添加圖像中的脈衝噪聲
- 20. 將遠程標記添加到泊塢窗圖像
- 21. 將標準CA根添加到busybox泊塢窗圖像
- 22. 從圖像中去除胡椒噪聲和鹽噪聲
- 23. 鑑於噪聲分佈情況,噪聲破壞圖像?
- 24. 如何爲圖像添加噪點?
- 25. 如何將使用的基礎(FROM)圖像添加到泊塢窗圖像
- 26. 通過FFT將1000Hz噪聲添加到wav文件中C
- 27. 如何使用python將噪聲添加到wav文件?
- 28. 如何使用NumPy將單色噪聲添加到PyGame表面?
- 29. 將隨機噪聲添加到變量tensorflow中
- 30. 如何將噪聲添加到PCM原始數據中
你的回答很有意義。雖然你如何處理這導致的飽和? –
那麼,在這種情況下,您必須自己處理飽和度,將負值設置爲0,並設置爲圖像位數的最高值,然後將這些值設置爲最高值。 – Helder
謝謝。我通過飽和前5%的像素來處理它 –