[英]Image filtering in Python (image normalization)
我想編寫執行圖像過濾的代碼。 我使用簡單的3x3內核,然后使用scipy.ndimage.filters.convolve()
函數。 過濾后,值的范圍是-1.27至1.12。 過濾后如何規范化數據? 我是否需要裁剪值(小於零的值設置為零,大於1的值設置為1),或使用線性歸一化? 如果過濾后的值大於范圍[0,1],可以嗎?
>>> import numpy as np
>>> x = np.random.randn(10)
>>> x
array([-0.15827641, -0.90237627, 0.74738448, 0.80802178, 0.48720684,
0.56213483, -0.34239788, 1.75621007, 0.63168393, 0.99192999])
您可以裁剪超出范圍的值,盡管您會丟失該信息:
>>> np.clip(x,0,1)
array([ 0. , 0. , 0.74738448, 0.80802178, 0.48720684,
0.56213483, 0. , 1. , 0.63168393, 0.99192999])
為了保持縮放比例,您可以將線性重新歸一化為0到1:
>>> (x - np.min(x))/(np.max(x) - np.min(x))
array([ 0.27988553, 0. , 0.6205406 , 0.64334869, 0.52267744,
0.55086084, 0.21063013, 1. , 0.57702102, 0.71252388])
如果過濾后的值大於范圍[0,1],可以嗎?
這實際上取決於過濾圖像的用例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.