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 相关文章推荐
把MySQL表结构映射为Python中的对象的教程
Apr 07 Python
Django学习笔记之Class-Based-View
Feb 15 Python
Python中%是什么意思?python中百分号如何使用?
Mar 20 Python
Python3.5实现的罗马数字转换成整数功能示例
Feb 25 Python
python3编写ThinkPHP命令执行Getshell的方法
Feb 26 Python
pyqt5移动鼠标显示坐标的方法
Jun 21 Python
python实现图片九宫格分割
Mar 07 Python
浅析python表达式4+0.5值的数据类型
Feb 26 Python
推荐值得学习的12款python-web开发框架
Aug 10 Python
Python加载数据的5种不同方式(收藏)
Nov 13 Python
python selenium 获取接口数据的实现
Dec 07 Python
Python自然语言处理之切分算法详解
Apr 25 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 Try Catch异常测试
2009/03/01 PHP
php在线代理转向代码
2012/05/05 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
PHP+Ajax验证码验证用户登录
2016/07/20 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
php中Swoole的热更新实现代码实例
2021/03/04 PHP
javascript 全角转换实现代码
2009/07/17 Javascript
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
2011/09/02 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
2017/10/20 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
2017/10/30 Javascript
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
Node.js搭建小程序后台服务
2018/01/03 Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
2018/03/09 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
2018/05/21 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
Python编码时应该注意的几个情况
2013/03/04 Python
python利用MethodType绑定方法到类示例代码
2017/08/27 Python
Python类的继承、多态及获取对象信息操作详解
2019/02/28 Python
Python按钮的响应事件详解
2019/03/04 Python
python通过txt文件批量安装依赖包的实现步骤
2019/08/13 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
介绍一下mysql的日期和时间函数
2013/03/28 面试题
优秀应届生推荐信
2013/11/09 职场文书
计算机网络专业求职信
2014/06/05 职场文书
公司委托书范本5篇
2014/09/20 职场文书
事业单位聘任报告
2015/03/02 职场文书
2015年学生会干事工作总结
2015/04/09 职场文书
OpenCV实现反阈值二值化
2021/11/17 Java/Android
nginx静态资源的服务器配置方法
2022/07/07 Servers