Python 图像处理: 生成二维高斯分布蒙版的实例
作者:Matrix_11 时间:2023-01-31 16:29:06
在图像处理以及图像特效中,经常会用到一种成高斯分布的蒙版,蒙版可以用来做图像融合,将不同内容的两张图像结合蒙版,可以营造不同的艺术效果。
这里II 表示合成后的图像,FF 表示前景图,BB 表示背景图,MM 表示蒙版,或者直接用 蒙版与图像相乘, 形成一种渐变映射的效果。如下所示。
这里介绍一下高斯分布蒙版的特性,并且用Python实现。
高斯分布的蒙版,简单来说,就是一个从中心扩散的亮度分布图,如下所示:
亮度的范围从 1 到 0, 从中心到边缘逐渐减弱,中心的亮度值最高为1,边缘的亮度值最低为 0. 图像上任何一点的亮度值为:
其中 i,ji,j 表示图像上任何一点的坐标,以左上角为坐标原点,dd 表示 图像上任何一点 到图像中心点的距离,RR 表示图像的半径。假设图像的高为 HH 宽为 WW
IMAGE_WIDTH = 512
IMAGE_HEIGHT = 392
center_x = IMAGE_WIDTH/2
center_y = IMAGE_HEIGHT/2
R = np.sqrt(center_x**2 + center_y**2)
Gauss_map = np.zeros((IMAGE_HEIGHT, IMAGE_WIDTH))
# 利用 for 循环 实现
for i in range(IMAGE_HEIGHT):
for j in range(IMAGE_WIDTH):
dis = np.sqrt((i-center_y)**2+(j-center_x)**2)
Gauss_map[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)
Gauss_map = np.exp(-0.5*Gauss_map/R)
# 显示和保存生成的图像
plt.figure()
plt.imshow(Gauss_map, plt.cm.gray)
plt.imsave('out_2.jpg', Gauss_map, cmap=plt.cm.gray)
plt.show()
来源:https://blog.csdn.net/matrix_space/article/details/57942262
标签:Python,二维,高斯,分布,蒙版


猜你喜欢
django的分页器Paginator 从django中导入类
2022-02-07 04:24:29

Python监听剪切板实现方法代码实例
2023-11-10 13:48:32
利用Python的Django框架生成PDF文件的教程
2023-07-15 14:26:04
100行Python代码实现自动抢火车票(附源码)
2022-12-16 12:14:09

在Python中使用第三方模块的教程
2022-09-06 12:20:27
解读Python中的frame是什么
2023-09-26 08:25:50

python实现字符串和日期相互转换的方法
2022-09-02 04:05:55
python config文件的读写操作示例
2022-04-05 07:42:11
详解如何在Go项目中输出版本信息
2024-04-26 17:17:20
ASP获取ACCESS数据库表名及结构的代码
2011-04-15 10:50:00
一文搞懂Go语言操作Redis的方法
2024-04-25 13:20:25
MySQL如何查看正在运行的SQL详解
2024-01-22 22:48:48
python字典序问题实例
2023-07-31 05:46:58
vue.js在标签属性中插入变量参数的方法
2024-05-28 15:58:09

Python实现批量压缩图片
2021-04-20 09:58:44

asp中判断是否是手机浏览器以及手机类型
2014-12-06 09:33:05
使用 Python 实现简单的 switch/case 语句的方法
2021-02-02 09:10:16
asp+XMLHTTP的国际域名查询系统(whois)源代码
2008-02-16 09:23:00
客户体验
2008-12-11 13:58:00
Python异步编程之协程任务的调度操作实例分析
2023-02-23 17:03:46