OpenCV常用基本处理函数(5)图像模糊

2D卷积操作

cv.filter2D() 可以让我们对一幅图像进行卷积操作,

图像模糊(图像平滑)
使用低通滤波器可以达到图像模糊的目的。这对与去除噪音很有帮助。其实就是去除图像中的高频成分(比如:噪音,边界)。所以边界也会被模糊一点。(当然,也有一些模糊技术不会模糊掉边界)。OpenCV 提供了四种模糊技术。

1.平均

只是用卷积框覆盖区域所有像素的平均值来代替中心元素

cv2.blur() 和 cv2.boxFilter() 来完这个任务

2.高斯模糊

把卷积核换成高斯核,方框不变,原来每个方框的值是相等的,现在里面的值是符合高斯分布

高斯滤波可以有效的从图像中去除高斯噪音。

#0 是指根据窗口大小( 5,5 )来计算高斯函数标准差
blur = cv2.GaussianBlur(img,(5,5),0)

3.中值模糊

用与卷积框对应像素的中值来替代中心像素的值。这个滤波器经常用来去除椒盐噪声;

前面的滤波器都是用计算得到的一个新值来取代中心像素的值,而中值滤波是用中心像素周围(也可以使他本身)的值来取代他

median = cv2.medianBlur(img,5)

4.双边滤波

函数 cv2.bilateralFilter() 能在保持边界清晰的情况下有效的去除噪音。

高斯滤波器是求中心点邻近区域像素的高斯加权平均值。这种高斯滤波器只考虑像素之间的空间关系,而不会考虑像素值之间的关系(像素的相似度)。

所以这种方法不会考虑一个像素是否位于边界。因此边界也会别模糊掉。双边滤波在同时使用空间高斯权重和灰度值相似性高斯权重。

原文地址:https://www.cnblogs.com/ywheunji/p/10987781.html

时间: 2024-08-29 11:24:16

OpenCV常用基本处理函数(5)图像模糊的相关文章

OpenCV常用基本处理函数(2)图像基本操作

可以根据像素的行和列的坐标获取他的像素值.对 BGR 图像而言,返回值为 B,G,R 例如获取蓝色的像素值: img=cv2.imread('messi5.jpg')px=img[100,100]blue=img[100,100,0]  获取图像属性 图像的属性包括:行,列,通道,图像数据类型,像素数目等img.shape 可以获取图像的形状.他的返回值是一个包含行数,列数,通道数的元组. 1 import cv2 2 import numpy as np 3 img=cv2.imread('m

OpenCV常用基本处理函数(3)

颜色空间转换 对图像进行颜色空间转换,比如从 BGR 到灰度图,或者从BGR 到 HSV 等 我们要用到的函数是:cv2.cvtColor(input_image ,flag),其中 flag就是转换类型,常用的就几种转换的类型: 对于 BGR↔Gray 的转换,我们要使用的 flag 就是 cv2.COLOR_BGR2GRAY.同样对于 BGR↔HSV 的转换,我们用的 flag 就是 cv2.COLOR_BGR2HSV. 物体跟踪 通过某个颜色来跟踪一个物体, • 从视频中获取每一帧图像 •

OpenCV常用基本处理函数(6)图像梯度

形态学转换 腐蚀 img = cv2.imread('j.png',0) kernel = np.ones((5,5),np.uint8) erosion = cv2.erode(img,kernel,iterations = 1) 膨胀 dilation = cv2.dilate(img,kernel,iterations = 1) 先进性腐蚀再进行膨胀就叫做开运算.就像我们上面介绍的那样,它被用来去除噪声.这里我们用到的函数是 cv2.morphologyEx(). opening = cv

OpenCV常用基本处理函数(7)图像金字塔和直方图

高斯金字塔 高斯金字塔的顶部是通过将底部图像中的连续的行和列去除得到的.顶部图像中的每个像素值等于下一层图像中 5 个像素的高斯加权平均值. 这样操作一次一个 MxN 的图像就变成了一个 M/2xN/2 的图像.所以这幅图像的面积就变为原来图像面积的四分之一. 可以得到一个分辨率不断下降的图像金字塔.我们可以使用函数cv2.pyrDown() 和 cv2.pyrUp() 构建图像金字塔. 图像的轮廓: 轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同.的颜色或者灰度: 在一个二值

[opencv]常用阵列操作函数总结

/*=========================================================================*/ // 阵列操作 /*=========================================================================*/ 基本矩阵和图像运算符 ———————————————————————————————————————————————————————————————————————————

opencv 常用数据结构和函数

点的表示 Point point; point.x = 10; point.y = 8; 或者 Point point = point(10, 8); 颜色的表示 Scalar(a, b, c) 红色分量为c,绿色分量为b,蓝色分量为a 尺寸的表示 Size(5, 5) 矩形的表示 Rect(x, y, width, height); 左上角的坐标和矩形的宽和高 颜色空间转换 CV_EXPORTS_W void cvtColor( InputArray src, OutputArray dst,

opencv 常用函数介绍

××××××××××××××××××××××××××××××××××××××× CvScalar imgmean,imgstd; double imgmax,imgmin; cvAvgSdv(img,&imgmean,&imgstd); cvMinMaxLoc(img,&imgmin,&imgmax,NULL,NULL); printf("mean:%f std:%f max:%f,min:%f\n",imgmean.val[0],imgstd.val[

OpenCV常用图像操作和鼠标操作(双11版本)

更新日志: 1.添加了自适应窗口大小的功能: 2.添加了在图像上画矩形的功能: 3.添加了在大图上画矩形的功能: 4.部分函数名称更改: 5其他修改. 首先是头文件: /* ******* ccv.h ********** ********* opencv常用操作函数声明 ********** */ /* author: autumoon */ #ifndef _CCV_H_ #define _CCV_H_ #include <afxdlgs.h> //打开文件 #include "

OpenCV常用图像操作和鼠标操作

最近的工作经常需要对图像进行操作,也需要用鼠标对图像进行各种操作,于是自己整理和编写了这个类,总结了常用的基于OpenCV对图像进行的操作. 这个类我也将继续完善和丰富下去,需要的朋友可以直接使用. 如果有什么疏漏的地方还请多多指教. 首先是头文件: /* ******* ccv.h ********** ********* opencv常用操作函数声明 ********** */ /* author: autumoon */ #ifndef _CCV_H_ #define _CCV_H_ #i