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


Posted in Python onJuly 04, 2019

在图像处理以及图像特效中,经常会用到一种成高斯分布的蒙版,蒙版可以用来做图像融合,将不同内容的两张图像结合蒙版,可以营造不同的艺术效果。

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

这里II 表示合成后的图像,FF 表示前景图,BB 表示背景图,MM 表示蒙版,或者直接用 蒙版与图像相乘, 形成一种渐变映射的效果。如下所示。

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

这里介绍一下高斯分布蒙版的特性,并且用Python实现。

高斯分布的蒙版,简单来说,就是一个从中心扩散的亮度分布图,如下所示:

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

亮度的范围从 1 到 0, 从中心到边缘逐渐减弱,中心的亮度值最高为1,边缘的亮度值最低为 0. 图像上任何一点的亮度值为:

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

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

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

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()

以上这篇Python 图像处理: 生成二维高斯分布蒙版的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python下使用Psyco模块优化运行速度
Apr 05 Python
Python基于pygame模块播放MP3的方法示例
Sep 30 Python
Python 模拟员工信息数据库操作的实例
Oct 23 Python
分析Python读取文件时的路径问题
Feb 11 Python
浅谈Tensorflow模型的保存与恢复加载
Apr 26 Python
Python设计模式之桥接模式原理与用法实例分析
Jan 10 Python
Python爬虫实现爬取百度百科词条功能实例
Apr 05 Python
PyQt编程之如何在屏幕中央显示窗体的实例
Jun 18 Python
Python assert关键字原理及实例解析
Dec 13 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
Apr 08 Python
python如何随机生成高强度密码
Aug 19 Python
python基础详解之if循环语句
Apr 24 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 #Python
libreoffice python 操作word及excel文档的方法
Jul 04 #Python
Python实现12306火车票抢票系统
Jul 04 #Python
如何利用Pyecharts可视化微信好友
Jul 04 #Python
python 获取等间隔的数组实例
Jul 04 #Python
python 中pyqt5 树节点点击实现多窗口切换问题
Jul 04 #Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
Jul 04 #Python
You might like
77A一级收信机修理记
2021/03/02 无线电
PHP 第三节 变量介绍
2012/04/28 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
twig模板常用语句实例小结
2016/02/04 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
2016/04/11 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
2019/08/27 PHP
JS版网站风格切换实例代码
2008/10/06 Javascript
js数字输入框(包括最大值最小值限制和四舍五入)
2009/11/24 Javascript
IE与FF下javascript获取网页及窗口大小的区别详解
2014/01/14 Javascript
javascript 实现map集合
2015/04/03 Javascript
javascript实现下拉提示选择框
2015/12/29 Javascript
JavaScript 继承详解(五)
2016/10/11 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
javascript设计模式 ? 享元模式原理与用法实例分析
2020/04/15 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
2021/02/05 Javascript
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
2018/12/05 Python
Python threading的使用方法解析
2019/08/28 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
Cinque网上商店:德国服装品牌
2019/03/17 全球购物
Conforama瑞士:家具、厨房、电器、装饰
2020/09/06 全球购物
宿舍保安职务说明书
2014/02/25 职场文书
环保倡议书400字
2014/05/15 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
模范教师事迹材料
2014/12/16 职场文书
2015年党务公开工作总结
2015/05/19 职场文书
建筑工程催款函
2015/06/24 职场文书
win10下go mod配置方式
2021/04/25 Golang
Mysql binlog日志文件过大的解决
2021/10/05 MySQL
SQL 聚合、分组和排序
2021/11/11 MySQL
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python