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练习程序批量修改文件名
Jan 16 Python
使用Pyrex来扩展和加速Python程序的教程
Apr 13 Python
Python中的自省(反射)详解
Jun 02 Python
Python中使用asyncio 封装文件读写
Sep 11 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
Apr 11 Python
Collatz 序列、逗号代码、字符图网格实例
Jun 22 Python
python机器学习实战之K均值聚类
Dec 20 Python
对python打乱数据集中X,y标签对的方法详解
Dec 14 Python
如何使用selenium和requests组合实现登录页面
Feb 03 Python
Python中的None与 NULL(即空字符)的区别详解
Sep 24 Python
python mock测试的示例
Oct 19 Python
python程序实现BTC(比特币)挖矿的完整代码
Jan 20 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变量作用域的深入解析
2013/06/03 PHP
php strnatcmp()函数的用法总结
2013/11/27 PHP
php结合安卓客户端实现查询交互实例
2015/05/05 PHP
PHP对象链式操作实现原理分析
2016/10/09 PHP
PHP二维数组去重算法
2016/12/17 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
javascript 选择文件夹对话框(web)
2009/07/07 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
学习并汇集javascript匿名函数
2010/11/25 Javascript
js querySelector和getElementById通过id获取元素的区别
2012/04/20 Javascript
jquery 插件开发 extjs中的extend用法小结
2013/01/04 Javascript
简介JavaScript中Math.cos()余弦方法的使用
2015/06/15 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
2016/12/08 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
JS删除对象中某一属性案例详解
2020/09/08 Javascript
python 判断一个进程是否存在
2009/04/09 Python
Python协程的用法和例子详解
2017/09/09 Python
Python3中的json模块使用详解
2018/05/05 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
2019/04/29 Python
Python + OpenCV 实现LBP特征提取的示例代码
2019/07/11 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
2020/02/29 Python
简述python Scrapy框架
2020/08/17 Python
Python加载数据的5种不同方式(收藏)
2020/11/13 Python
英国时尚泳装品牌:Maru Swimwear
2019/10/06 全球购物
ShellScript面试题一则-ShellScript编程
2014/03/05 面试题
酒店管理专业自荐信
2014/05/23 职场文书
学生会竞选演讲稿纪检部
2014/08/25 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS
python中 .npy文件的读写操作实例
2022/04/14 Python
APP界面设计技巧和注意事项
2022/04/29 杂记