Opencv+Python实现图像运动模糊和高斯模糊的示例


Posted in Python onApril 11, 2019

运动模糊:由于相机和物体之间的相对运动造成的模糊,又称为动态模糊

Opencv+Python实现运动模糊,主要用到的函数是cv2.filter2D()

# coding: utf-8
import numpy as np
import cv2
def motion_blur(image, degree=12, angle=45):
  image = np.array(image)
  # 这里生成任意角度的运动模糊kernel的矩阵, degree越大,模糊程度越高
  M = cv2.getRotationMatrix2D((degree / 2, degree / 2), angle, 1)
  motion_blur_kernel = np.diag(np.ones(degree))
  motion_blur_kernel = cv2.warpAffine(motion_blur_kernel, M, (degree, degree))
  motion_blur_kernel = motion_blur_kernel / degree
  blurred = cv2.filter2D(image, -1, motion_blur_kernel)
  # convert to uint8
  cv2.normalize(blurred, blurred, 0, 255, cv2.NORM_MINMAX)
  blurred = np.array(blurred, dtype=np.uint8)
  return blurred
img = cv2.imread('./9.jpg')
img_ = motion_blur(img)
cv2.imshow('Source image',img)
cv2.imshow('blur image',img_)
cv2.waitKey()

原图:

Opencv+Python实现图像运动模糊和高斯模糊的示例

运动模糊效果:

Opencv+Python实现图像运动模糊和高斯模糊的示例

高斯模糊:图像与二维高斯分布的概率密度函数做卷积,模糊图像细节

Opencv+Python实现高斯模糊,主要用到的函数是cv2.GaussianBlur():

# coding: utf-8
import numpy as np
import cv2
img = cv2.imread('./9.jpg')
img_ = cv2.GaussianBlur(img, ksize=(9, 9), sigmaX=0, sigmaY=0)
cv2.imshow('Source image',img)
cv2.imshow('blur image',img_)
cv2.waitKey()

高斯模糊效果:

Opencv+Python实现图像运动模糊和高斯模糊的示例

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
详解Python中open()函数指定文件打开方式的用法
Jun 04 Python
python 读写中文json的实例详解
Oct 29 Python
Django入门使用示例
Dec 12 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
Jan 15 Python
Python 12306抢火车票脚本 Python京东抢手机脚本
Feb 06 Python
如何实现删除numpy.array中的行或列
May 08 Python
对python sklearn one-hot编码详解
Jul 10 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
Dec 24 Python
Python实现Event回调机制的方法
Feb 13 Python
python算法题 链表反转详解
Jul 02 Python
Python队列RabbitMQ 使用方法实例记录
Aug 05 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
Jun 02 Python
详解python执行shell脚本创建用户及相关操作
Apr 11 #Python
python中aioysql(异步操作MySQL)的方法
Apr 11 #Python
很酷的python表白工具 你喜欢我吗
Apr 11 #Python
2019 Python最新面试题及答案16道题
Apr 11 #Python
【python】matplotlib动态显示详解
Apr 11 #Python
python爬虫之验证码篇3-滑动验证码识别技术
Apr 11 #Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
Apr 11 #Python
You might like
如何突破PHP程序员的技术瓶颈分析
2011/07/17 PHP
完美解决PHP中的Cannot modify header information 问题
2013/08/12 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
Prototype Object对象 学习
2009/07/12 Javascript
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
原生js轮播(仿慕课网)
2017/02/15 Javascript
discuz表情的JS提取方法分析
2017/03/22 Javascript
js数组实现权重概率分配
2017/09/12 Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
2017/11/07 Javascript
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
关于AOP在JS中的实现与应用详解
2019/05/06 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
vue中使用echarts的示例
2021/01/03 Vue.js
js实现简单商品筛选功能
2021/02/02 Javascript
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
python logging.basicConfig不生效的原因及解决
2020/02/20 Python
python 多线程死锁问题的解决方案
2020/08/25 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
HTML5的结构和语义(4):语义性的内联元素
2008/10/17 HTML / CSS
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
SOA面试题:如何在SOA中实现松耦合
2013/07/21 面试题
外贸业务员求职信范文
2013/12/12 职场文书
校园绿化美化方案
2014/06/08 职场文书
安全环保标语
2014/06/09 职场文书
合作合同协议书范本
2015/01/27 职场文书
活着观后感
2015/06/03 职场文书
小学同学聚会感言
2015/07/30 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
Mysql中常用的join连接方式
2022/05/11 MySQL