これは少し問題です。ライブラリを見つけようとするのではなく、定義からそれを書いてみましょう。あなたは、ウィンドウがサイズxサイズの二乗にしたくない場合は、単に(ETCディスクとの畳み込み、ガウスフィルタ、)何か他のものでuniform_filter
を置き換える
from scipy.ndimage.filters import uniform_filter
from scipy.ndimage.measurements import variance
def lee_filter(img, size):
img_mean = uniform_filter(img, (size, size))
img_sqr_mean = uniform_filter(img**2, (size, size))
img_variance = img_sqr_mean - img_mean**2
overall_variance = variance(img)
img_weights = img_variance**2/(img_variance**2 + overall_variance**2)
img_output = img_mean + img_weights * (img - img_mean)
return img_output
。 img_mean
とimg_square_mean
の両方を計算する場合と同じであれば、任意のタイプの(重み付けされた)平均化フィルタが実行されます。
Leeフィルタは、フィルタとしてかなり古風なようです。エッジがあるウィンドウでは、分散が全体的な画像の分散よりもはるかに大きくなるため、フィルタリングされた画像に対する相対的なフィルタリングされていない画像の重み付けが行われているため、エッジでうまく動作しません例1.
に近くなるように:あなたはノイズリダクションを見ることができるように
from pylab import *
import numpy as np
img = np.random.normal(0.5, 0.1, (100,100))
img[:,:50] += 0.25
imshow(img, vmin=0, vmax=1, cmap='gray')
imshow(lee_filter(img, 20), vmin=0, vmax=1, cmap='gray')
することは一般的には非常に良いですが、縁に沿ってはるかに弱いです。
私はSARに精通していないので、LeeフィルタにSARのスペックルに特に適している機能があるかどうかはわかりませんが、ガイドフィルタやガイドなどの最新のエッジ認識デノイアを見たい場合があります。バイラテラルフィルタ。
ありがとうございました!!!!アレックス、実際に私はこのドメインに新しいですし、良いliterature.Thanksたくさん!!!!!!!!を見つけることができませんでした –
@Shubham_geoようこそ。私はいくつかのノートと例を追加しました。 –
pyradarパッケージは、私が持っている画像の問題であるようですが、上記のフィルタのようにすべてのフィルタの定義を見つけることができる適切な場所を教えてください。 https://pyradar-tools.readthedocs.io/en/latest/examples.html#example-of-filtros – bicepjai