python图像处理模糊_Python+OpenCV图像处理之模糊操作

模糊操作是图像处理中最简单和常用的操作之一,该使用的操作之一原因就为了给图像预处理时减低噪声,基于数学的卷积操作

均值模糊,函数 cv2.blur(image,(5,5)),这是一个平滑图片的函数,它将一个区域内所有点的灰度值的平均值作为这个点的灰度值。像该函数对领域点的灰度值进行权重相加最后设置灰度值,这样的操作又叫卷积,这样的滤波器叫线性滤波器。

中值模糊,函数cv2.medianBlur(image,5),该函数不同于上一个函数,它是非线性滤波器,它是取领域的中值作为当前点的灰度值。,上面函数就是选取了5*5大小的矩阵,必须为奇数,处理有椒盐噪声(就像烧烤撒很多孜然,图片上有很多点)有很好的效果

自定义模糊(锐化),函数filter2D():定义为cv2.filter2D(src,ddepth,kernel)

锐化就是突出图像细节或者增强图像被模糊的地方,锐化原理就是细节增强,图像的导数就是图像的细节,随着导数阶数升高,能代表的东西也不同。

均值模糊、中值模糊、自定义模糊的python代码

importcv2importnumpy as np__author__ = "boboa"

#均值模糊 去随机噪声有很好的去燥效果

defblur_demo(image):

dst= cv2.blur(image, (5, 5))

cv2.imshow("blur_demo", dst)#中值模糊去除椒盐噪声

defmedian_blur_demo(image):

dst= cv2.medianBlur(image, 5)

cv2.imshow("median_blur_demo", dst)#自定义模糊

defcustom_blur_demo(image):#kernels = np.ones([5, 5], np.float32)/25

kernels = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]], np.float32)

dst= cv2.filter2D(image, -1, kernel=kernels)

cv2.imshow("custom_blur_demo", dst)if __name__ == "__main__":

img= cv2.imread("img3.jpg")

cv2.namedWindow("input image", cv2.WINDOW_AUTOSIZE)

cv2.imshow("input image", img)

blur_demo(img)

median_blur_demo(img)

cv2.waitKey(0)

cv2.destroyAllWindows()

均值模糊运行效果

4da23da46b55f94e4892559b2ddb51af.png

中值模糊运行结果

7ab5b5fccbc01b0c7170b6d9a0e98b94.png

自定义运行结果

5a57355b03e4586d5687600406989630.png

高斯模糊本质上是低通滤波器,输出图像的每个像素点是原图像上对应像素点与周围像素点的加权和,原理并不复杂,就是用高斯分布权值矩阵与原始图像矩阵做卷积运算而已。

高斯模糊的python代码

importcv2importnumpy as np"""高斯模糊/噪声

轮廓还在,保留图像的主要特征

高斯模糊比均值模糊去噪效果好"""

defclamp(pv):if pv > 255:return 255

if pv <0:return0else:returnpvdefgaussian_noise(image):

h, w, c=image.shapefor row inrange(h):for col inrange(w):

s= np.random.normal(0, 20, 3)

b= image[row, col, 0] #blue

g = image[row, col, 1] #green

r = image[row, col, 2] #red

image[row, col, 0] = clamp(b +s[0])

image[row, col,1] = clamp(g + s[1])

image[row, col,2] = clamp(r + s[2])

cv2.imshow("noise image", image)if __name__ == "__main__":

img= cv2.imread("img5.jpg")

cv2.namedWindow("input image", cv2.WINDOW_AUTOSIZE)

cv2.imshow("input image", img)#gaussian_noise(img)

#高斯模糊抑制高斯噪声

dst = cv2.GaussianBlur(img, (5, 5), 0)

cv2.imshow("Gaussian Blur", dst)

cv2.waitKey(0)

cv2.destroyAllWindows()

运行结果

90f4ddef4341cb79dd885729c3062e17.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574338.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高斯消元学习

1. 证明XOR满足交换律&#xff0c;结合律&#xff0c;是自身的逆运算。比如说&#xff0c;1^0 1 1^1 0 0^1 1 0^0 01^1^0 0 1^0^1 0.a^b^ab 即一个数异或两次相当于无效 2. 从N个数中选出两个数&#xff0c;使XOR和最大。解法&#xff1a;我们知道两个数字之间的异或…

java经纬度格式_java经纬度格式转换

在数学中&#xff0c;表示角度的度、分、秒分别使用、′、″符号进行表示。160′&#xff0c;1′60″ &#xff0c;13600″。由上述可知度分秒转换度的计算公式为&#xff1a;(ddmm′ss″) ddmm/60ss/3600如&#xff1a;11330′10.25″ 11330/6010.25/3600 ≈113.502847度分秒…

e3是合法浮点数吗_下面4个选项中,均是合法浮点数的选项是?

选B。b中的123是整数&#xff0c;不是浮点数&#xff0c;2e4.2的指数是4.2不满足浮点数的规则必须是整数&#xff0c;e5中的e不满足浮点数的规则&#xff0c;所以b中3个数均不是浮点数。a中的160、0.12是正确的&#xff0c;c中的123e4、0.0是正确的&#xff0c;d中的234、1e3是…

winform 菜单激发窗体切换做法

经常会用到类似于下图这样的winform窗体&#xff0c;其中点击各个菜单时于鏊做到内容窗体的切换&#xff0c;今天也记录一直切换的方法 在主窗体放置一个panal&#xff0c;所有的内容窗体均在改panal上呈现&#xff0c;实现以下方法 ///实例化主窗体 private void FrmSetup_Loa…

java 正则表达式 反向_正则表达式中的数量表示符、反向引用、零宽断言、以及java中的用法...

在表示数量时&#xff0c;如果一个正则表达式X&#xff0c;后面没有加表示数量的符号&#xff0c;那就默认出现一次。如果指定需要出现n次&#xff0c;那就用{n}&#xff0c;例如a{n},就是匹配a出现n次的。a{n,}表示a出现至少n次的&#xff0c;而这个时候就会默认是贪婪模式&am…

django配置在MySQL_怎么在Django中安装与配置mysql

怎么在Django中安装与配置mysql发布时间&#xff1a;2021-02-26 17:42:11来源&#xff1a;亿速云阅读&#xff1a;57作者&#xff1a;Leah本篇文章为大家展示了怎么在Django中安装与配置mysql&#xff0c;内容简明扼要并且容易理解&#xff0c;绝对能使你眼前一亮&#xff0c;通…

Java字符串找出4个字节长度的字符

不解释&#xff0c;直接上代码&#xff1a; 由于Iteye代码贴四个字节的&#xff35;&#xff34;&#xff26;&#xff0d;&#xff18;字符出错&#xff0c;特能图的方式发布几个特殊字符&#xff1a; Java代码 public class Byte4Check { public static void main…

div 左右并排,使用CSS如何让两个div并排显示

用CSS如何让两个DIV盒子并排体现呢&#xff1f;各人知道默认情况下DIV是独占一排的&#xff0c;DIV不设置任何CSS格局&#xff0c;这个DIV盒子都邑独有一行踊跃换行。运用CSS让两个DIV并排闪现&#xff0c;排成一排显示思空见贯方式有两种&#xff1a;1、运用display:inline2、…

JStorm-介绍

1.概述 JStorm 是一个类似于 Hadoop 的MapReduce的计算系统&#xff0c;它是由Alibaba开源的实时计算模型&#xff0c;它使用Java重写了原生的Storm模型&#xff08;Clojure和Java混合编写的&#xff09;&#xff0c;并且再原来的基础上做了许多改进。用户只需按照指定的接口实…

又一个绝对棒的对话框插件fancybox v1.3.4

http://www.jsfoot.com/jquery/demo/2011-07-30/fancybox/index.html jquery插件&#xff1a;fancybox Fancybox的特点如下&#xff1a; 可以支持图片、html文本、flash动画、iframe以及ajax的支持可以自定义播放器的CSS样式可以以组的形式进行播放如果将鼠标滚动插件&#xff…

php this validate,php扩展ZF——Validate扩展

php扩展ZF——Validate扩展更新时间&#xff1a;2008年01月10日 20:27:49 作者&#xff1a;php扩展ZF——Validate扩展之前写了一片文章关于如何在ZF0.6版本下扩展ZF的。这篇应该说是类似的文章&#xff0c;但环境换成ZF1.0RC1版本了。在开始ZF扩展之前&#xff0c;推荐先看看…

浅谈数据结构-选择排序(简单、堆排序)

选择排序&#xff1a;每趟从待排序的记录中选出关键字最小的记录&#xff0c;顺序放在已排序的记录序列末尾&#xff0c;直到全部排序结束为止。 选择排序正如定义所讲&#xff0c;在数组查询出最小值&#xff0c;然后放在此次循环开始位置&#xff08;前一次循环已经获取比它更…

安装php7的mysql扩展,php7安装mysql扩展的方法是什么

php7安装mysql扩展的方法&#xff1a;1、下载mysql扩展并解压&#xff1b;2、使用phpize工具初始化并进行configure&#xff1b;3、执行【make && make install】命令&#xff1b;4、编辑php.ini文件&#xff1b;5、重启服务。本文环境&#xff1a;windows10系统、php7…

iPhone屏幕尺寸、分辨率及适配

目录(?)[-] iPhone尺寸规格单位inch英吋iPhone手机宽高屏幕尺寸像素密度PPI缩放因子scale factor between logic point and device pixel1Scale起源 2UIScreenscale 3UIScreennativeScale 4机型判别Resolutions Rendering2x3x以及高倍图适配12x 23x 3高倍图文件…

鼠标移动响应php程序,jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】...

本文实例讲述了jQuery实现的响应鼠标移动方向插件用法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;HTML代码如下&#xff1a;www.jb51.net jQuery响应鼠标移动*{margin:0;padding:0;}ul,li{list-style:none;}div{font-family:"Microsoft YaHei";}html,bo…

jitpack让使用第三方依赖库更简单

在开发过程中&#xff0c;使用第三方优秀依赖库是个很常见的问题&#xff0c;有的时候是maven&#xff0c;或者gradle, 或者sbt,大部分库工程&#xff0c;都会有对应的gradle,maven依赖代码&#xff0c;但是有的没有&#xff0c;尤其是使用的snapshot的依赖的时候&#xff0c;虽…

Swift - 发送消息(文本,图片,文件等)给微信好友或分享到朋友圈

通过调用微信提供的API接口&#xff0c;我们可以很方便的在应用中发送消息给微信好友&#xff0c;或者分享到朋友圈。在微信开发平台&#xff08;https://open.weixin.qq.com&#xff09;里&#xff0c;提供了详细的说明文档和样例。但由于提供的样例是使用Objective-C写的&…

linux怎么改程序图标,如何在Ubuntu Unity上修改应用程序图标

这篇文章将教大家在Ubuntu Unity上修改应用程序图标&#xff0c;这个教程适合于Ubuntu 14.04, Ubuntu 13.10, Ubuntu 12.04 等使用Unity作为默认桌面环境的发行版。在Unity桌面环境&#xff0c;程序启动器实际上以.desktop为后缀的文件的形式存储在电脑上&#xff0c;所以我们可…

htop linux命令详解,htop使用详解

在管理进程时通常要借助一些工具&#xff0c;比较常用的就是ps和top了&#xff1b;不过CentOS还为我们提供了一个更加强大的工具htop&#xff0c;下面就来了解一下此工具的使用方法。一、安装htophtop工具在epel源中提供&#xff0c;请自行配置epel源&#xff0c;也可以直接下载…

Android Termux安装SSH结合内网穿透实现远程SFTP文件传输

文章目录 1. 安装openSSH2. 安装cpolar3. 远程SFTP连接配置4. 远程SFTP访问4. 配置固定远程连接地址 SFTP&#xff08;SSH File Transfer Protocol&#xff09;是一种基于SSH&#xff08;Secure Shell&#xff09;安全协议的文件传输协议。与FTP协议相比&#xff0c;SFTP使用了…