我有一张灰度图像和一个边界为ROI的二进制掩膜。我想对灰度图像执行模糊操作,但仅限于掩膜内部。目前我是在整个图像上进行模糊处理,然后只是移除掩膜外的物品,但我不希望掩膜外的像素影响我的ROI。是否有一种方法可以在不构建自定义模糊函数的情况下完成此操作?
希望得到类似以下的东西:
扩张方法:
希望得到类似以下的东西:
import scipy
blurredImage = scipy.ndimage.filters.gaussian_filter(img, sigma = 3, weight = myMask)
@stefan:
blur = 3
invmask = np.logical_not(mask).astype(int)
masked = img * mask
remaining = img * invmask
blurred = scipy.ndimage.filters.gaussian_filter(masked, sigma = blur)
blurred = blurred+remaining
扩张方法:
blur = 3
invmask = np.logical_not(mask).astype(int)
masked = img * mask
masked2 = scipy.ndimage.morphology.grey_dilation(masked,size=(5,5))
masked2 = masked2 *invmask
masked2 = masked + masked2
blurred = scipy.ndimage.filters.gaussian_filter(masked2, sigma = blur)