opencv学习笔记(四)--图像平滑处理
图像平滑处理的几种常用方法:
- 均值滤波
- 归一化滤波
- 高斯模糊
- 中值滤波
平滑处理(模糊)的主要目的是去燥声:
不同的处理方式适合不同的噪声图像,其中高斯模糊最常用。
其实最重要的是对图像卷积的核的理解,核太大图像会失真,具体关于核的讲解点击传送门
图像噪声:引起较强视觉效果的孤立像素点或像素块。一般,噪声信号与要研究的对象不相关,它以无用的信息形式出现,扰乱图像的可观测信息。通俗的说就是噪声让图像不清楚。
废话不多说,直接上代码:
#均值滤波 //像素点等于周围N*N像素的平均值
img = cv.imread("E:/pictures/lenanoise.jpg")
blur = cv.blur(img,(7,7)) #res = cv.blur(src,核大小)
cv.imshow("orginal",img)
cv.imshow("blur",blur)
cv.waitKey()
cv.destroyAllWindows()
(这是原图)
borderType:Int类型,用于推断图像外部像素的某种边界模式,有默认值BORDER_DEFAULT.
方框滤波(归一化滤波):
#方框滤波 归一化处理
img = cv.imread("E:/pictures/lenanoise.jpg")
boxFiter = cv.boxFilter(img,-1,(5,5))
boxFiter2 = cv.boxFilter(img,-1,(5,5),normalize=False) #res = cv.boxFilter(src,图像深度,核大小,normalize属性)
cv.imshow("orginal",img) #图像深度一般设为-1表示和原图的深度一样
cv.imshow("boxFilter",boxFiter) #normalize->是否进行归一化处理
cv.imshow("boxFilter2",boxFiter2) #normalize属性有两个值TRUE和False,默认为TRUE
cv.waitKey() #(归一化)normalize为TRUE时和均值滤波一样,等于周围N*N个像素的平均值
cv.destroyAllWindows() #normalize为FALSE时,表示周围N*N个像素和,大于255的置为255
高斯模糊:
#高斯滤波 //周围N*N个像素的加权平均值
img = cv.imread("E:/pictures/lenanoise.jpg") #离中心点越近权重越大,越远权重越小
gassblur = cv.GaussianBlur(img,(9,9),0) #dst = cv.GaussianBlur(src,ksize,sigmax)
cv.imshow("orginal",img) #ksize->核大小(必须为奇数)3=3*3,5=5*5
cv.imshow("GaussianBlur",gassblur) #sigmax ->x方向方差(计算权重) ,一般设为0,由ksize推算,当然是由计算机完成的
cv.waitKey()
cv.destroyAllWindows() 在这种方法中,不使用由相同滤波器系数组成的盒式滤波器,而是使用高斯内核。 它使用函数cv2.GaussianBlur()完成。 我们应该指定内核的宽度和高度
,它应该是正数和奇数。 我们还应该分别指定X和Y方向的标准偏差sigmaX和sigmaY。 如果只指定sigmaX,则sigmaY等于sigmaX。 如果两者均为零,则从
内核大小进行计算。 高斯滤波非常有效地消除图像中的高斯噪声。
中值滤波:
#中值滤波 将n*n个像素排序后取中值作为新的像素值(核必须为奇数)
img = cv.imread("E:/pictures/lenanoise.jpg")
medianblur = cv.medianBlur(img,3) #dst = cv.medianBlur(src,ksize)
cv.imshow("orginal",img) #ksize->核大小,必须为奇数,如3,5,7...代表3*3,5*5....
cv.imshow("GaussianBlur",medianblur)
cv.waitKey()
cv.destroyAllWindows()
opencv学习笔记(四)--图像平滑处理的更多相关文章
- 【opencv学习笔记四】opencv3.4.0图形用户接口highgui函数解析
在笔记二中我们已经知道了,在highgui文件夹下的正是opencv图形用户接口功能结构,我们这篇博客所说的便是D:\Program Files\opencv340\opencv\build\incl ...
- OpenCV学习笔记(8)——图像平滑
使用不同的低筒滤波器对图像进行模糊 使用自定义的率弄起对图像进行卷积(2D卷积) 2D卷积 与信号一样,我们也可以对2D图像实施低通滤波,高通滤波等.LPF帮助我们去除噪声,模糊图像.而HPF帮助我们 ...
- OpenCV学习笔记四:ImgProc模块
一,简介 这个模块包含一系列的常用图像处理算法. 二,分析 此模块包含的文件如下图: 其导出算法包括如下: /*********************** Background statistics ...
- OpenCV学习笔记3
OpenCV学习笔记3 图像平滑(低通滤波) 使用低通滤波器可以达到图像模糊的目的.这对与去除噪音很有帮助.其实就是去除图像中的高频成分(比如:噪音,边界).所以边界也会被模糊一点.(当然,也有一些模 ...
- opencv学习笔记(四)投影
opencv学习笔记(四)投影 任选了一张图片用于测试,图片如下所示: #include <cv.h> #include <highgui.h> using namespace ...
- OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波
http://blog.csdn.net/chenyusiyuan/article/details/8710462 OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波 201 ...
- OpenCV 学习笔记 07 目标检测与识别
目标检测与识别是计算机视觉中最常见的挑战之一.属于高级主题. 本章节将扩展目标检测的概念,首先探讨人脸识别技术,然后将该技术应用到显示生活中的各种目标检测. 1 目标检测与识别技术 为了与OpenCV ...
- OpenCV 学习笔记03 findContours函数
opencv-python 4.0.1 1 函数释义 词义:发现轮廓! 从二进制图像中查找轮廓(Finds contours in a binary image):轮廓是形状分析和物体检测和识别的 ...
- 【opencv学习笔记八】创建TrackBar轨迹条
createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...
随机推荐
- WebRTC相关的基础知识点
这里主要用来记录自己整理的和webRTC相关的一些基本的知识点,后续整理的一些基础和零碎的知识点都会更新在这里.内容大部分来自于webRTC官网.w3c以及一些前辈们的博客中的文章和相关书籍等. 20 ...
- SSH免密登陆配置过程和原理解析
SSH免密登陆配置过程和原理解析 SSH免密登陆配置过很多次,但是对它的认识只限于配置,对它认证的过程和基本的原理并没有什么认识,最近又看了一下,这里对学习的结果进行记录. 提纲: 1.SSH免密登陆 ...
- AngularJS学习(二)——Angular应用的解析
本节描述AngularJS应用程序的三个组成部分,并解释它们如何映射到模型-视图-控制器设计模式 模板(Template) 模板是您用HTML和CSS编写的文件,展现应用的视图.您可给HTML添加新的 ...
- Windchill 设计变更流程卡死查询方法
设计变更流程卡死查询方法 1. 导出设计变更表单查看填写了“需要”和“是”字眼的文本框 2.打开进程管理器显示流程卡死的地方,确定哪里出错导致没法执行下一步 3.打开设计变更流程图,里面可以查看有 ...
- 相关度算法BM25
BM25算法,通常用来作搜索相关性平分.一句话概况其主要思想:对Query进行语素解析,生成语素qi:然后,对于每个搜索结果D,计算每个语素qi与D的相关性得分,最后,将qi相对于D的相关性得分进行加 ...
- (一)maven的安装
Maven下载 下载地址:http://maven.apache.org/download.cgi 下载完成后,得到一个压缩包
- fail-fast 与 fail-save 机制的区别
link:https://blog.csdn.net/bigtree_3721/article/details/67095084
- 一次shell中seq的处理
一次shell中seq的处理 背景:用要shell 提取 文件中内容,文件名是用序列号如下生成,文件差不多有将近400多w个 如下: www.ahlinux.com 原始脚本#! /bin/sh# ...
- 10.IN 操作符
IN 操作符 IN 操作符允许我们在 WHERE 子句中规定多个值. SQL IN 语法 SELECT column_name(s) FROM table_name WHERE column_name ...
- Flask框架 之 wtforms
简介 WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 作用 生成HTML标签 form表单验证 使用 - 用户登录示例- 用户注册示例- 数据库获取数据实时更新 ...