def one_country(maparray, country, background):
cmask = mask_by_color(maparray, colorfn(country))
edtmask = cmask
for c in background:
edtmask = edtmask | mask_by_color(maparray, colorfn(c))
_, (indx,indy) = ndimage.distance_transform_edt(edtmask, return_indices=True)
edtvals = maparray[indx,indy]
for i in range(edtvals.shape[-1]): edtvals[...,i] *= cmask
return Image.fromarray(edtvals)
评论列表
文章目录