ndi图像处理

The model itself is written in keras, but to prepare vector labels I used scipy.ndimage.morphology

scipy.ndimage.morphology.distance_transform_edt() is very useful to find distance and direction to the border as it can return the index of the nearest pixel outside of mask:

edt, inds = scipy.ndimage.morphology.distance_transform_edt(crop_smooth, return_distances=True, return_indices=True)
border_vector = np.array([
    np.expand_dims(np.arange(0, rows), axis=1) - inds[0],
    np.expand_dims(np.arange(0, cols), axis=0) - inds[1]])

border_vector_norm = border_vector / (np.linalg.norm(border_vector, axis=0, keepdims=True) + 1e-5)
res_crop[:, :, 0] = border_vector_norm[0]
res_crop[:, :, 1] = border_vector_norm[1]

Vector to the center is easier to calculate, it's a difference of the pixel position and the mask center of mass:

 center_of_mass = scipy.ndimage.measurements.center_of_mass(crop)
 current_offset_field = np.zeros((CROP_SIZE, CROP_SIZE, 2))
 current_offset_field[:, :, 0] = np.expand_dims(center_of_mass[0] - np.arange(0, CROP_SIZE), axis=1)
 current_offset_field[:, :, 1] = np.expand_dims(center_of_mass[1] - np.arange(0, CROP_SIZE), axis=0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值