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这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...
随机推荐
- GridView导出成Excel字符"0"丢失/数字丢失的处理方式 收藏
GridView导出成Excel字符"0"丢失/数字丢失的处理方式 收藏 GridView 导出成Excel文件,这个代码在网上比较多.但是发现存在一个问题,导出的数据中如果有&q ...
- ubuntu14.10下Qt5.4无法输入中文
最近学习Qt,于是在ubuntu下安装了开发环境.我是从官网上下载安装的Qt5.4版本.安装后发现在开发过程中无法输入中文.于是在网上搜了搜.解决办法如下: 1.安装fcitx-frontend-qt ...
- Spring MVC的配置
一.添加依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>sprin ...
- Java虚拟机(四):常用JVM配置参数
一.VM选项 - : 标准VM选项,VM规范的选项 -X: 非标准VM选项,不保证所有VM支持 -XX: 高级选项,高级特性,但属于不稳定的选项 参见Java HotSpot VM Options 二 ...
- js,javascript生成 UUID的四种方法
全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) . GUID是一种由算法生成的二进制长度 ...
- c语言实践:RS信号报告
题目: 无线电台的RS制信号报告是由三两个部分组成的: R(Readability) 信号可辨度即清晰度. S(Strength) 信号强度即大小. 其中R位于报告第一位,共分5级,用1—5数字 ...
- pandas 中的 多条件分割, list 排序
main_comment_num_3m and avg_group_order_cnt_12m = 0.863230main_comment_score_1m and avg_group_order_ ...
- c# 获取非托管指针长度
public List<string> GetPDFValues() { List<string> strs = new List<string>(); unsaf ...
- 第一章Python简介
1.Python shell(Python命令解释器) 如下所示 2.Python的交互模式 如下 3.代码编辑器窗口 在上面的那些指令称为源代码. 4.在python中,缩进是有语法意义的. 在某行 ...
- 验证码测试-demo
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Inse ...
