簡體   English   中英

Python中的圖像過濾(圖像規范化)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM