OpenCV3.3+Python3.6实现图片高斯模糊

本文实例为大家分享了OpenCV3.3+Python3.6实现图片高斯模糊的具体代码,供大家参考,具体内容如下

高斯模糊

高斯模糊(英语:Gaussian Blur),通常用它来减少图像噪声以及降低细节层次。这种模糊技术生成的图像,其视觉效果就像是经过一个半透明屏幕在观察图像,这与镜头焦外成像效果散景以及普通照明阴影中的效果都明显不同。高斯模糊也用于计算机视觉算法中的预先处理阶段,以增强图像在不同比例大小下的图像效果(参见尺度空间表示以及尺度空间实现)。 从数学的角度来看,图像的高斯模糊过程就是图像与正态分布做卷积。由于正态分布又叫作高斯分布,所以这项技术就叫作高斯模糊。图像与圆形方框模糊做卷积将会生成更加精确的焦外成像效果。由于高斯函数的傅立叶变换是另外一个高斯函数,所以高斯模糊对于图像来说就是一个低通滤波器。

高斯模糊原理: “模糊”,就是将图像中每个像素值进行重置的过程,这个过程采用将每一个像素都设置成周边像素的平均值。

# 高斯模糊
#     高斯模糊
#     操作
#     cv2.GaussianBlur(image, (135, 135), 0)  #(5, 5)表示高斯矩阵(高斯内核)的长与宽都是5(必须为奇数),标准差取0

import cv2
import numpy as np

def clamp(pv):  #保证 RGB三色值的数值不超过255
    if pv>255:
        return 255
    if pv<0:
        return 0
    else:
        return pv

def gaussian_noise(image):  #给图片加一些噪声,高斯噪声
    h, w, c = image.shape  #获取三个值,高度、宽度、深度
    for row in range(h):  #在宽度、 高度中遍历进行像素点RGB的赋值
        for col in range(w):
            s=np.random.normal(0, 20, 3)  #获取随机数  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("Gauss_noise", image)

print("--------Hello Python--------")
src=cv2.imread("lena.jpg")
cv2.imshow("Source Image",src)
t1=cv2.getTickCount()#获取时间值
gaussian_noise(src)
t2=cv2.getTickCount()#获取时间值
time=(t2-t1)/cv2.getTickFrequency()#计算出时间(s)
print("所用时间:%s"%(time*1000))

dst = cv2.GaussianBlur(src, (2555,2555), 15)#进行高斯模糊处理
cv2.imshow("Gauss_blur",dst)

cv2.waitKey(0)
cv2.destroyAllWindows()

(1)原图:

(2)高斯噪声图片

(3)高斯模糊效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python中使用PIL库实现图片高斯模糊实例

    一.安装PIL PIL是Python Imaging Library简称,用于处理图片.PIL中已经有图片高斯模糊处理类,但有个bug(目前最新的1.1.7bug还存在),就是模糊半径写死的是2,不能设置.在源码ImageFilter.py的第160行: 所以,我们在这里自己改一下就OK了. 项目地址:http://www.pythonware.com/products/pil/ 二.修改后的代码 代码如下: 复制代码 代码如下: #-*- coding: utf-8 -*- from PIL

  • python实现高斯模糊及原理详解

    高斯模糊是一种常见的模糊技术,相关知识点有:高斯函数.二维卷积. (一)一维高斯分布函数 一维(连续变量)高斯函数形式如下,高斯函数又称"正态分布函数": μ是分布函数的均值(或者期望),sigma是标准差. 一维高斯分布函数的图形: 从图可知,以x=0为中心,x取值距离中心越近,概率密度函数值越大,距离中心越远,密度函数值越小. (二)二维高斯分布函数 二维高斯分布函数的形式: 特别说明,当变量x和y相互独立时,则相关系数ρ=0,二维高斯分布函数可以简化为: 二维高斯分布函数的图形:

  • OpenCV实现灰度、高斯模糊、边缘检测的示例

    一.彩色图像转灰度 Opencv提供了一个方法,可以使彩色图像变为灰度图像. 函数名:cvtColor(src,dest,way); src表示初始的mat对象: dest表示转换后的mat对象: way表示以何种方式转换. 举个例子: int main() { //定义路径 string path = "Resources//test.png"; //Mat:opencv引入的矩阵数据类型,处理所有图像 Mat img = imread(path); //创建一个新的mat对象,用来

  • 在Python中使用PIL模块对图片进行高斯模糊处理的教程

    从一篇文章中看到,PIL 1.1.5 已经内置了高斯模糊,但是并没有在文档中提及,而且PIL的高斯模糊中 radius 是硬编码, 虽然构造方法中有传入 radius 参数,但压根就没有用到 (看这里),所以需要自己进行改造,当然,知道了原因, 修改起来自然非常简单了. 结合帖子中的需求,对局部进行高斯模糊,所以还需要结合使用 crop和 paste 方法实现局部使用滤镜. 代码如下: #-*- coding: utf-8 -*- from PIL import Image, ImageFilt

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

    运动模糊:由于相机和物体之间的相对运动造成的模糊,又称为动态模糊 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.getRotat

  • OpenCV3.3+Python3.6实现图片高斯模糊

    本文实例为大家分享了OpenCV3.3+Python3.6实现图片高斯模糊的具体代码,供大家参考,具体内容如下 高斯模糊 高斯模糊(英语:Gaussian Blur),通常用它来减少图像噪声以及降低细节层次.这种模糊技术生成的图像,其视觉效果就像是经过一个半透明屏幕在观察图像,这与镜头焦外成像效果散景以及普通照明阴影中的效果都明显不同.高斯模糊也用于计算机视觉算法中的预先处理阶段,以增强图像在不同比例大小下的图像效果(参见尺度空间表示以及尺度空间实现). 从数学的角度来看,图像的高斯模糊过程就是

  • JS实现图片高斯模糊切换效果的焦点图实例

    焦点图相信对大家来说都不陌生,本文给大家分享的是一种图片高斯模糊切换效果的焦点图,下面话不多说了,来看看实现的效果图和实例代码吧. 效果图 实例代码 <!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <style> @-webkit-keyframes show { 0%{ opacity:1; -webk

  • python2和python3实现在图片上加汉字的方法

    python2和python3实现在图片上加汉字,最主要的区别还是内部编码方式不一样导致的,在代码上表现为些许的差别.理解了内部编码原理也就不会遇到这些问题了,以下代码是在WIN10系统上时测好用的. Python2 在图片上加汉字代码实现 # -*- coding: cp936 -*- import cv2 import numpy as np from PIL import Image, ImageDraw, ImageFont def ID_2_Word(txt): tmp_ID = tx

  • Python3实现获取图片文字里中文的方法分析

    本文实例讲述了Python3实现获取图片文字里中文的方法.分享给大家供大家参考,具体如下: 一.运行环境 (1) win10 (2) pycharm (3) python 3.5 (4) pillow与pytesseract库安装: pip3 install pillow pip3 install pytesseract (5)  识别引擎tesseract-ocr ,下载之后解压安装,下载地址:https://www.jb51.net/softs/538925.html 二. 运行代码 # -

  • python3 实现验证码图片切割的方法

    切割前图片 切割后四个图片 代码 #coding:utf8 import os from PIL import Image,ImageDraw,ImageFile import numpy import pytesseract import cv2 import imagehash import collections class pictureIdenti: #rownum:切割行数:colnum:切割列数:dstpath:图片文件路径:img_name:要切割的图片文件 def spliti

  • Android实现图片高斯模糊

    本文实例为大家分享了Android实现图片高斯模糊的具体代码,供大家参考,具体内容如下 原图: 高斯模糊后: FastBlur.java import android.graphics.Bitmap; /**  * Description:  * User: chenzheng  * Date: 2017/2/22 0022  * Time: 12:22  */ public class FastBlur {     public static Bitmap doBlur(Bitmap sent

  • 四行Python3代码实现图片添加美颜效果

    目录 1.引言 2.代码实战 2.1 模块安装 2.2 读取图像 2.3 增强亮度 2.4 增强色度 2.5 增强对比度 2.6 增强锐度 1.引言 小屌丝:鱼哥,鱼哥,help… 小鱼:呼吸声越来越弱,你这是劳累过度?? 小屌丝:拉倒吧,我这是激动的 小鱼:什么大风大浪没见过,竟然能让你这么激动?? 小屌丝:刚刚一妹子加我WeChat,问我要照片. 小鱼:那你就发给她呗 小屌丝:鱼哥,我要是有你这一半的颜(dan)值(shi),我都不来让你帮忙. 小鱼:你这么说,我会不好意思的,干啥这么直接的

  • OpenCV3.0+Python3.6实现特定颜色的物体追踪

    一.环境 win10.Python3.6.OpenCV3.x:编译器:pycharm5.0.3 二.实现目标 根据需要追踪的物体颜色,设定阈值,在视频中框选出需要追踪的物体. 三.实现步骤 1)根据需要追踪的物体颜色,设定颜色阈值,获取追踪物体的掩膜 代码:generate_threshold.py # -*- coding : utf-8 -*- # Author: Tom Yu import cv2 import numpy as np cap = cv2.VideoCapture(0)#获

  • 浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法

    [更新]主要提供两种方案: 方案一:(参考网上代码,感觉实用性不是很强)使用PIL截取图像,然后将RGB转为HSV进行判断,统计判断颜色,最后输出RGB值 方案二:使用opencv库函数进行处理.(效果不错) 1.将图片颜色转为hsv, 2.使用cv2.inRange()函数进行背景颜色过滤 3.将过滤后的颜色进行二值化处理 4.进行形态学腐蚀膨胀,cv2.dilate() 5.统计白色区域面积 详解:方案一: 转载出处:www.jb51.net/article/62526.htm 项目实际需要

随机推荐