推文:图像平滑处理(归一化块滤波、高斯滤波、中值滤波、双边滤波)

推文:图像的平滑与滤波

模糊操作

三种模糊操作方式

  1. 均值模糊
  2. 中值模糊
  3. 自定义模糊(可以实现上面两种模糊方式)

原理:

图像处理:基础(模板、卷积运算)

图像处理-模板、卷积的整理

  1. 基于离散卷积
    定义好每个卷积核
    不同卷积核得到不同的卷积效果
    模糊是卷积的一种表象

一:均值模糊blur

  1. def blur_demo(image): #均值模糊
  2. dst = cv.blur(image,(,)) #ksize是卷积核大小1行3列,列数越大模糊越大
  3. cv.imshow("blur_demo",dst)
  1. opencv有一个专门的平均滤波模板供使用–归一化卷积模板,所有的滤波模板都是使卷积框覆盖区域所有像素点与模板相乘后得到的值作为中心像素的值。
    Opencv中均值模板可以用cv2.blurcv2.boxFilter,比如一个3*3的模板其实就可以如下表示:

  1. 模板大小是m*n是可以设置的。如果你不想要前面的1/,可以使用非归一化的模板cv2.boxFilter

二:中值模糊mediaBlur

  1. 中值滤波模板就是用卷积框中像素的中值代替中心值,达到去噪声的目的。
  2. 这个模板一般用于去除椒盐噪声。
  3. 前面的滤波器都是用计算得到的一个新值来取代中心像素的值,而中值滤波是用中心像素周围(也可以使他本身)的值来取代他,卷积核的大小也是个奇数。
  1. def median_blur_demo(image): #中值模糊,对于椒盐噪声的去噪效果好,去掉图片中的一些黑点等
  2. gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
  3. for i in range(): # 添加点噪声,白色
  4. temp_x = np.random.randint(, gray.shape[])
  5. temp_y = np.random.randint(, gray.shape[])
  6. gray[temp_x][temp_y] =
  7.  
  8. cv.imshow("median_blur_gray", gray)
  9. dst = cv.medianBlur(gray,) #ksize是卷积核大小1行3列,列数越大模糊越大
  10. cv.imshow("median_blur_demo",dst)

  1. 可以看到中值滤波对于这些白点噪声的去除是非常的好的。

三:自定义模糊filter2D(上面是封装在2D滤波器之上)

图像滤波函数imfilter函数的应用及其扩展

  1. Opencv提供的一个通用的2D滤波函数为cv2.filter2D(),
    滤波函数的使用需要一个核模板,对图像的滤波操作过程为:将和模板放在图像的一个像素A上,求与之对应的图像上的每个像素点的和,
    核不同,得到的结果不同,而滤波的使用核心也是对于这个核模板的使用,需要注意的是,该滤波函数是单通道运算的,
    也就是说对于彩色图像的滤波,需要将彩色图像的各个通道提取出来,对各个通道分别滤波才行。

(1)实现中值模糊

  1. def custom_blur_demo(image): #自定义模糊
  2. kernel = np.ones([,],np.float32)/ #声明二维数组5*,初始化1,保证值不溢出,除以数组大小,实现中值模糊 自定义卷积核的算子
  3. dst = cv.filter2D(image,-,kernel)
  4. cv.imshow("custom_blur_demo",dst)
  1. 上述生成的5*5核模板其实就是一个均值滤波。,当我们是/25就是中值滤波,归一化处理

(2)实现锐化处理

  1. def custom_blur_demo(image): #自定义模糊
  2. kernel = np.array([[,-,],[-,,-],[,-,]],np.float32) #实现锐化处理,提高图像的对比度,提高立体感,轮廓更加清晰
  3. dst = cv.filter2D(image,-,kernel)
  4. cv.imshow("custom_blur_demo",dst)

OpenCV---模糊操作的更多相关文章

  1. Python+OpenCV图像处理(七)—— 滤波与模糊操作

    过滤是信号和图像处理中基本的任务.其目的是根据应用环境的不同,选择性的提取图像中某些认为是重要的信息.过滤可以移除图像中的噪音.提取感兴趣的可视特征.允许图像重采样等等.频域分析将图像分成从低频到高频 ...

  2. opencv python:模糊操作

    均值模糊 中值模糊 自定义模糊 模糊操作的基本原理 基于离散卷积 定义好每个卷积核 不同卷积核得到不同的卷积效果 模糊是卷积的一种表象 blur cv2.blur(image, (1, 3)) 第二个 ...

  3. opencv 矩阵操作

    OpenCv矩阵操作 有很多函数有mask,代表掩码,如果某位mask是0,那么对应的src的那一位就不计算,mask要和矩阵/ROI/的大小相等 大多数函数支持ROI,如果图像ROI被设置,那么只处 ...

  4. OpenCV 填充(ROI)+模糊操作

    1.ROI 操作 src = cv.imread('./1.jpg') cv.imshow('src',src) dst = src[40:240,100:300] gray = cv.cvtColo ...

  5. python实现模糊操作

    目录: (一)模糊或平滑与滤波的介绍 (二)均值模糊 (1) 原理 (2)代码实现-----均值模糊函数blur() (三)中值模糊------mediaBlur函数 (四)高斯模糊------Gau ...

  6. opencv鼠标操作及GUI矩形绘画

    OpenCV的鼠标操作是通过一个中介函数配合回调函数来实现的.指定鼠标操作消息回调函数的函数为SetMouseCallback. void setMouseCallback(const string& ...

  7. OPENCV形态学操作1

    形态学操作是指基于形状的一系列图像处理操作,包括膨胀,腐蚀,二值化,开运算,闭运算,顶帽算法,黑帽算法,形态学梯度等,最基本的形态学操作就是膨胀和腐蚀. 一.膨胀 首先需要明确一个概念,膨胀和腐蚀都是 ...

  8. 基于PI+QT实现OpenCV图像处理操作(基本环境搭建)

    这篇博客就是在PI上直接写出来的!cheers!! PI3的性能已经非常强劲,而作为一个能够独立运行的运算单元,使用它来做图像处理,将是非常适合的.为了挖掘机器的最大潜能,我没有采用比较常见的pyth ...

  9. [OpenCV-Python] OpenCV 核心操作 部分 III

    部分 III核心操作 OpenCV-Python 中文教程(搬运)目录 9 图像的基础操作 目标 • 获取像素值并修改 • 获取图像的属性(信息) • 图像的 ROI() • 图像通道的拆分及合并几乎 ...

  10. [python-opencv] 模糊操作

    @不要在奋斗的年纪 选择安逸 均值模糊 中值模糊 自定义模糊 意义与应用场景 模糊的基本原理: 1.基于离散卷积 2.定义好每个卷积核 3.不同卷积核得到不同的卷积效果 4.模糊是卷积的一种表象 #均 ...

随机推荐

  1. 暑假App

    简介 实现了一个计时器APP,程序界面简洁,只有一个时间显示区域和两个图片按钮,一个按钮是开始/暂停,另一个按钮是停止. 功能介绍 一个显示界面,当最小计时单位为0.1秒时,显示为:分钟:秒:0.1秒 ...

  2. 团队Alpha冲刺(二)

    目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:丹丹 组员7:家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示组内 ...

  3. Floyd算法(原理|代码实现)

    http://www.cnblogs.com/twjcnblog/archive/2011/09/07/2170306.html 正如我们所知道的,Floyd算法用于求最短路径.Floyd算法可以说是 ...

  4. Rsyslog初步学习

    一.Rsyslog整体架构 Rsyslog消息流:输入模块——>预处理模块——>主队列——>过滤模块——>执行队列——>输出模块 1. 输入模块 输入模块是消息来源 2. ...

  5. CodeForces Round #527 (Div3) A. Uniform String

    http://codeforces.com/contest/1092/problem/A You are given two integers nn and kk. Your task is to c ...

  6. 将oracle数据库表使用命令的形式导入到excle文件中 亲测可用!

    main.sql 中的代码 set markup html on entmap ON spool on preformat off spool D:\新建文件夹\mick\tables.xls @ge ...

  7. ant 安装及基础教程 !

    这篇文章主要介绍了ant使用指南详细入门教程,本文详细的讲解了安装.验证安装.使用方法.使用实例.ant命令等内容,需要的朋友可以参考下   一.概述 ant 是一个将软件编译.测试.部署等步骤联系在 ...

  8. Linux的压缩/解压缩文件处理 zip & unzip

    Linux的压缩/解压缩命令详解及实例 压缩服务器上当前目录的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前目录 unzip filename.zip 另:有些服 ...

  9. 转载:理解OAuth 2.0

    转载地址:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 作者: 阮一峰 日期: 2014年5月12日 OAuth是一个关于授权(autho ...

  10. Maven 私服安装和启动

    在安装私服的时候容易碰到的两个问题,一个是安装时拒绝访问,另一个是安装完成后服务无法启动: 拒绝访问问题: 原因:没有以管理员身份运行 cmd 解决办法: 如果是 win7 的话,可以直接在 [运行- ...