,,Python 图像处理- 生成二维高斯分布蒙版的实例

,,Python 图像处理: 生成二维高斯分布蒙版的实例

今天边肖给大家分享一个Python图像处理:生成二维高斯分布掩膜的例子,有很好的参考价值。希望对你有帮助。来和边肖一起看看吧。

在图像处理和图像特效中,经常会用到高斯分布的掩膜,可用于图像融合。用蒙版把两个内容不同的图像组合起来,可以创造出不同的艺术效果。

这里II代表合成图像,FF代表前景图像,BB代表背景图像,MM代表蒙版,或者直接将蒙版与图像相乘,形成渐变的贴图效果。如下图。

这里介绍高斯分布掩膜的特点,并用Python实现。

高斯分布的掩膜,简单来说就是从中心向外扩散的亮度分布图,如下图:

的亮度范围是从1到0,从中心到边缘逐渐降低。中心的最高亮度值为1,边缘的最低亮度值为0。图像上任意一点的亮度值为:

其中I,ji,j表示图像上任意点的坐标,左上角为坐标原点,dd表示图像上任意点到图像中心的距离,RR表示图像的半径。假设图像的高度是HH,宽度是WW

IMAGE_WIDTH=512

IMAGE_HEIGHT=392

中心x=图像宽度/2

center_y=IMAGE_HEIGHT/2

r=NP . sqrt(center _ x * * 2 center _ y * * 2)

Gauss_map=np.zeros((图像高度,图像宽度))

#由for循环实现

对于范围内的I(IMAGE _ HEIGHT):

对于范围内的j(IMAGE _ WIDTH):

dis=NP . sqrt((I-center _ y)* * 2(j-center _ x)* * 2)

高斯_映射[i,j]=np.exp(-0.5*dis/R)

#通过矩阵运算直接实现

mask _ x=NP . matlib . repmat(center _ x,IMAGE_HEIGHT,IMAGE_WIDTH)

mask _ y=NP . matlib . repmat(center _ y,IMAGE_HEIGHT,IMAGE_WIDTH)

x1=np.arange(IMAGE_WIDTH)

x_map=np.matlib.repmat(x1,IMAGE_HEIGHT,1)

y1=np.arange(IMAGE_HEIGHT)

y_map=np.matlib.repmat(y1,IMAGE_WIDTH,1)

y_map=np.transpose(y_map)

gauss _ map=NP . sqrt((x _ map-mask _ x)* * 2(y _ map-mask _ y)* * 2)

高斯地图=NP . exp(-0.5 *高斯地图/R)

#显示并保存生成的图像

图表()

plt.imshow(高斯_地图,plt.cm .格雷)

plt.imsave('out_2.jpg ',Gauss_map,cmap=plt.cm.gray)

plt.show()

以上Python图像处理:生成二维高斯分布掩膜的例子是边肖分享的所有内容。希望给大家一个参考,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: