私はsci-kitイメージからmean filterを使用しています。しかし、浮動小数点画像のdtype
をuint8
に変更したように見えます。これは、もう一度他のフィルタ関数に渡すときに問題になります。scikit-image:平均フィルタの変更dtype
例として、次のコードを検討してください。
import numpy as np
from skimage import filters
from skimage.morphology import square
def mean_filter(img):
selem = square(3)
print(img.dtype)
print(img.max(), img.min())
fi = filters.rank.mean(img, selem=selem)
print(fi.dtype)
print(fi.max(), fi.min())
return fi
arr = np.array([[.1, .2, .3],
[.4, .5, .6],
[.7, .8, .9]], dtype='float64')
m = mean_filter(arr)
次の出力を行います。
float64
0.9 0.1
uint8
178 76
しかし、ドキュメントに従って、戻り値の型は入力型と同じでなければなりません。ここで何が起こっているのですか?