
64
3 章 ndimage を使った画像領域のネットワーク
3.4
汎用フィルタ:近傍データの任意の関数
ndi.convolve
に実装される内積に加えて、
SciPy
では近傍点の任意の関数であるフィルタをユー
ザが定義できます。これは
ndi.generic_filter
に実装されています。これにより、任意の複雑な
フィルタを表せます。
例えば、ある郡における住宅の価格の中央値を表す画像があり、解像度が
100 m
×
100 m
であ
るとします。地方自治体が定めた住宅売却時の税金は、
$10,000
に、半径
1 km
内の家の価格の
90
パーセンタイルの
5 %
を加えた額でした(つまり、高級住宅地の家を売るとよりお金がかかりま
す )。
generic_filter
のコードを使うと、地図上のどの地点の税額でも示せる地図が作れます。
from skimage import morphology
def tax(prices):
return 10000 + 0.05 * np.percentile(prices, 90)
house_price_map = (0.5 + np.random.rand(100, 100)) * 1e6
footprint = morphology.disk(radius=10)
tax_rate_map = ndi.generic_filter(house_price_map, tax, footprint=footprint)
plt.imshow(tax_rate_map)
plt.colorbar(); ...