python+opencv图像处理(二十)

领域平均
滤波的方法是经常用来进行图像增强的方法。
空域滤波指的是利用像素及像素邻域组成的空间进行滤波的方法。
空域滤波主要是借助模板运算来进行的。
模板运算中用得最多的是模板卷积,其主要步骤如下:
1) 将模板中图像中漫游,并将模板中心与图中某个像素位置重合。
2) 将模板上的各个系数与模板下各对应像素的灰度值相乘。
3) 将所有乘积相加。
4) 将上述给图中对应模板中心位置的像素。
本篇主要介绍的是邻域平均法
1、邻均平均
邻域平均法,也叫均值滤波,这是最简单的平滑滤波的方法。
它是典型的线性滤波的方法。
其原理是用一个像素邻域平均值作为滤波结果,即此时滤波器模板的所有系数取值全为1.例,对于3*3的模板来说,其系数为:
1 1 1
1 1 1
1 1 1
用公式表示如下:
其中g(x,y)是结果图像的像素值,f(x, y)就是原图像像素值,h(x, y)就是邻域算子,对于均值滤波来说,h(k,l)即是k行l列全为1的矩阵。
对于上述3*3的模板来说,对于某一像素点(x,y)的邻均平均的结果为:
g(x,y)=(f(x-1,y-1)+f(x-1,y)+f(x-1,y+1)+f(x,y-1)+f(x,y)+f(x,y+1)+f(x+1,y-1)+f(x+1,y)+f(x+1,y+1))/9
2、代码实现
均值滤波主要用于消除噪声。
如下图所示,左图为原图,要看出图中有不少白噪声,经过均值滤波后可适当消除噪声影响。
其完整代码如下:
上述代码用的是opencv自带的函数blur()实现均值滤波,其中第一个参数是要进行均值滤波的图像,后一个参数是模板大小。
(0)

相关推荐

  • (7条消息) 自适应阈值(adaptiveThreshold)分割原理及实现

    背景介绍及原理 前面介绍了OTSU算法和最大熵算法,但这两种算法都属于全局阈值法,所以对于某些光照不均的图像,这种全局阈值分割的方法会显得苍白无力,如下图: 显然,这样的阈值处理结果不是我们想要的,那 ...

  • 【从零学习OpenCV 4】双边滤波

    重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<OpenCV 4开发详解>.为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通 ...

  • 【OpenCV 4开发详解】图像连通域分析

    小白学视觉",选择"星标"公众号 重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<OpenCV 4开发详解>.为 ...

  • 利用OpenCV实现图像修复(含源码链接)

    图像修复技术应用在什么地方呢? 想想一下,我们有一张非常棒的相片,但是由于时间比较久远,没有电子版留底,而纸质版的又十分不便于保存.因此长采用扫描的方式获得电子版.但是非常不幸,扫描过程中落入了一根头 ...

  • 【从零学习OpenCV 4】均值滤波

    重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<从零学习OpenCV 4>.为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通 ...

  • python+opencv图像处理(十二)

    图像仿射变换和透视变换 天晴了...... 1.仿射变换 图像的仿射变换就是图像的旋转加上拉升,说直白点,就是把矩形变成平行四边形. 要把矩形变成平行四边行,只需要拉伸其四个角点就行了,事实上,只需要 ...

  • python+opencv图像处理(十九)

    视频的读入和显示 在图像处理中,视频处理是其中的重要一环,本篇介绍视频的读入和显示. 1.视频读入 Opencv中有自带的函数可以实现视频的读入和显示,代码如下: 视频其实也就是一帧一帧的图像,所以在 ...

  • python+opencv图像处理(十八)

    自适应直方图均衡 之前介绍的直方图均衡的方法是针对整幅图像来说的,也即是全局的直方图均衡化.全局的直方图均衡化会存在一些问题,比如因过度爆光而使得局部细节模糊等,如下图所示,左图是源图,右图是直方图均 ...

  • python+opencv图像处理(十五)

    直方图均衡 直方图均衡化是通过对图像的直方图进行修正来获得图像增强效果的方法,主要是进行对比度增强,就是让亮的更亮,暗的更亮. 1.灰度图像的直方图均衡 先上图看效果. 如图上标题所示,第一张是原图, ...

  • python+opencv图像处理(十四)

    图像直方图 1.灰度图像的直方图 灰度图像的直方图是灰度级和这种灰度级的概率之间关系的图形. 直接看图,下图中左侧是原图,右图为其直方图. 完整代码如下: import cv2 as cv impor ...

  • python+opencv图像处理(十)

    图像旋转 本篇主要利用opencv的转换函数warpAffine实现图像的平移和旋转. 1.图像旋转 图像旋转即是根据某个中心点进行旋转. 要进行旋转,要找到中心点,要知道旋转角度,opencv提供了 ...

  • python+opencv图像处理(四十二)

    Kirsch算子 1.Kirsch算子 Kirsch算子是R.Kirsch提出来一种边缘检测新算法,它采用8个模板对图像上的每一个像素点进行卷积求导数,这8个模板代表8个方向,对图像上的8个特定边缘方 ...

  • python+opencv图像处理(三十二)

    理想低通滤波 淅淅沥沥的雨天...... 天晴想下雨,下雨想天晴... 理想低通滤波是滤掉高频部分,仅允许低频通过,以去掉噪声,使图像得到平滑. 其实现步骤: 1. 将图像进行傅里叶变换,将低频移至中 ...

  • python+opencv图像处理(二十九)

    高斯滤波 迟到的节日祝福......  粽子节快乐,纪念伟大的屈原先生 (图片来源于网络) 高斯滤波是一种线性平滑滤波,对于消除高斯噪声有很好的效果,对于服从正态分布的噪声非常有效. 高斯滤波就是对整 ...

  • python+opencv图像处理(二十八)

    Prewitt边缘检测算子 Prewitt算子也是一种一阶微分算子,用于边缘检测.与Robert使用2*2的模板不同,Prewitt算子使用的是3*3的模板,利用像素点上下.左右邻点的灰度差来检测边缘 ...