我正在python中创建一个圆形遮罩,如下所示:
import numpy as np
def make_mask(image, radius, center=(0, 0)):
r, c, d = image.shape
y, x = np.ogrid[-center[0]:r-center[0], -center[1]:r-center[1]]
mask = x*x + y*y <= radius*radius
array = np.zeros((r, c))
array[mask] = 1
return array
这将返回一个shape(r,c)的掩码。我想做的是有一个加权掩模,在图像的中心(由中心参数给定)的权重为1,并向图像的边缘线性递减。因此,his应该是行中0到1(不包括0)之间的附加权重。我想这应该是:
^{pr2}$但是,这将导致除以0,并且遮罩也不会介于0和1之间。在
首先,如果你想把权重设为线性的,你需要取距离的平方根(也就是说,你所说的“距离”不是到中心的距离,而是它的平方,所以你应该把它重命名为
R_squared
)。所以:然后,由于它从},您希望结果是
^{pr2}$0
开始,您希望它是1
,所以将1
添加到它;但是现在您已经添加了1
缩放该值,所以它是{0
。假设你想让它与中心相距0
,那么你的方程是:这里是},其中{}。在
1
,其中r==0
和{相关问题 更多 >
编程相关推荐