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获取本机外网ip的方法
Apr 15 Python
详解Python3中yield生成器的用法
Aug 20 Python
Python的净值数据接口调用示例分享
Mar 15 Python
Python中在for循环中嵌套使用if和else语句的技巧
Jun 20 Python
Python两个内置函数 locals 和globals(学习笔记)
Aug 28 Python
深入分析python数据挖掘 Json结构分析
Apr 21 Python
python实现批量图片格式转换
Jun 16 Python
Python 实现两个服务器之间文件的上传方法
Feb 13 Python
YUV转为jpg图像的实现
Dec 09 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
Mar 10 Python
解决jupyter notebook 出现In[*]的问题
Apr 13 Python
用python实现学生管理系统
Jul 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
Linux操作系统安装LAMP环境
2015/06/26 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
2017/05/26 PHP
javascript 面向对象,实现namespace,class,继承,重载
2009/10/29 Javascript
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
JS+css 图片自动缩放自适应大小
2013/08/08 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
javascript特殊用法示例介绍
2013/11/29 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
JavaScript函数获取事件源的小例子
2014/05/14 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
详解用原生JavaScript实现jQuery的某些简单功能
2016/12/19 Javascript
JavaScript常用正则验证函数实例小结【年龄,数字,Email,手机,URL,日期等】
2017/01/23 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
js控制随机数生成概率代码实例
2019/03/21 Javascript
React中阻止事件冒泡的问题详析
2019/04/12 Javascript
Vue实现简易购物车页面
2020/12/30 Vue.js
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
python翻译软件实现代码(使用google api完成)
2013/11/26 Python
Python实现定时执行任务的三种方式简单示例
2019/03/30 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
django2.2安装错误最全的解决方案(小结)
2019/09/24 Python
2020版Python学习路线图(附学习资料)
2020/09/15 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
CSS+jQuery+PHP+MySQL实现的在线答题功能
2015/04/25 HTML / CSS
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
中学教师岗位职责
2013/11/26 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
员工安全生产承诺书
2014/05/22 职场文书
店铺转让协议书(2014版)
2014/09/23 职场文书
党的群众路线教育实践活动个人对照检查材料(乡镇)
2014/11/05 职场文书
团员自我评价范文
2015/03/10 职场文书
百善孝为先:关于孝道的经典语录
2019/10/18 职场文书
Spring中的@Transactional的工作原理
2022/06/05 Java/Android