网站建设实施规范青岛市网页设计公司
news/
2025/10/1 14:34:20/
文章来源:
网站建设实施规范,青岛市网页设计公司,无法打开网页如何解决,做国外进口衣服的网站好#x1f506; 文章首发于我的个人博客#xff1a;欢迎大佬们来逛逛 #x1f506; OpenCV项目地址及源代码#xff1a;点击这里 文章目录 图像模糊操作均值滤波高斯滤波中值滤波双边滤波 图像模糊操作
关于图片的噪声#xff1a;指的是图片中存在的不必要或者多余的干扰数… 文章首发于我的个人博客欢迎大佬们来逛逛 OpenCV项目地址及源代码点击这里 文章目录 图像模糊操作均值滤波高斯滤波中值滤波双边滤波 图像模糊操作
关于图片的噪声指的是图片中存在的不必要或者多余的干扰数据。
Smooth与Blur是图像处理中最简单和常用的操作之一。
经过这两种操作我们便可以实现消除噪声的作用。 Smooth与Blur操作原理是数学的卷积运算根据不同卷积运算公式划分了多种图像滤波方式图像滤波指的是在尽量保留图像特征的条件下对目标图像得噪声进行抑制。 均值滤波 均值滤波指的是取周围像素计算出来的平均值然后赋给目标像素。然后依次对每一个像素值进行如上的操作。 均值滤波可以帮助消除图像尖锐噪声实现图像平滑模糊等功能。 blur可以实现均值滤波。
void blur( InputArray src, OutputArray dst,Size ksize, Point anchor Point(-1,-1),int borderType BORDER_DEFAULT );
/*******************************************************************
* src 输入图像
* dst 输出图像
* ksize 内核大小 如上我们的大小是33
* anchor: 锚点
* 默认Point(-1,-1):锚点在核中心
* borderType: 外部像素边界模式(一般不管)
*********************************************************************///均值模糊void testBlur() {cv::blur(mt, saves[blur], cv::Size(KERNEL, KERNEL));}高斯滤波
高斯滤波是一种线性平滑滤波适用于消除高斯噪声广泛应用于图像处理的减噪过程。 高斯滤波就是对整幅图像进行加权平均的过程每一个像素点的值都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是用一个模板或称卷积、掩模扫描图像中的每一个像素用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。 一阶与二阶高斯分布其中二阶高斯分布是一个是一个三维的正态分布的图像 可以观察到正态分布是一种钟形曲线越接近中心取值越大越远离中心取值越小。
使用二阶高斯分布来消除噪声模拟计算操作其中 x x x 与 y y y 指的是图像的坐标由于 σ \sigma σ 未知并且其他都是已知的我们便可以计算出每一个点对应的二阶高斯值。
取一个 σ \sigma σ 值对于每一个位置计算出对应的二阶高斯值。计算出权重总和 s u m sum sum由于权重之和必须等于1因此每个点再除以 s u m sum sum 就可以得到最终的权值矩阵右三对于每一个位置的像素值右二乘以对应的权值就可以得到高斯模糊后的值右一。 高斯模糊函数GaussianBlur
void GaussianBlur( InputArray src, OutputArray dst, Size ksize,double sigmaX, double sigmaY 0,int borderType BORDER_DEFAULT );
/*******************************************************************
* src 输入图像
* dst 输出图像
* ksize 内核大小
* x,y必须是整数并且为奇数
* sigmaX: X方向滤波系数
* sigmaY: Y方向滤波系数
* borderType: 外部像素边界模式(一般不管)
*********************************************************************/案例代码
//高斯模糊void testGaussianBlur() {cv::GaussianBlur(mt, saves[GaussianBlur], cv::Size(KERNEL, KERNEL), 3, 3);}可以观察到高斯模糊的效果比均值模糊的效果好。 中值滤波
中值滤波法是一种非线性平滑技术它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。 g median [ ( x − 1 , y − 1 ) f ( x , y − 1 ) f ( x 1 , y − 1 ) f ( x − 1 , y ) f ( x , y ) f ( x 1 , y ) f ( x − 1 , y 1 ) f ( x , y 1 ) f ( x 1 , y 1 ) ] g\operatorname{median}[(x-1, y-1)f(x, y-1)f(x1, y-1)f(x-1, y)f(x, y)f(x1, y)f(x-1, y1)f(x, y1)f(x1, y1)] gmedian[(x−1,y−1)f(x,y−1)f(x1,y−1)f(x−1,y)f(x,y)f(x1,y)f(x−1,y1)f(x,y1)f(x1,y1)]
对对椒盐噪声有很好的抑制作用. 它是一种随机出现的白点或者黑点可能是亮的区域有黑色像素或是在暗的区域有白色像素或是两者皆有 APImedianBlur
void medianBlur( InputArray src, OutputArray dst, int ksize );
/*******************************************************************
* src 输入图像
* dst 输出图像
* ksize 内核大小
* 大小必须是大于1而且必须是奇数
*********************************************************************///中值模糊
void testMedianBlur() {cv::medianBlur(mt, saves[median], KERNEL);
}双边滤波
上面三种降噪方法容易模糊图片的边缘细节对于高频细节的保护效果并不明显。
双边滤波可以很好的边缘保护即可以在去噪的同时保护图像的边缘特性。 w ( i , j , k , l ) exp ( − ( i − k ) 2 ( j − l ) 2 2 σ d 2 − ∥ f ( i , j ) − f ( k , l ) ∥ 2 2 σ r 2 ) w(i, j, k, l)\exp \left(-\frac{(i-k)^{2}(j-l)^{2}}{2 \sigma_{d}^{2}}-\frac{\|f(i, j)-f(k, l)\|^{2}}{2 \sigma_{r}^{2}}\right) w(i,j,k,l)exp(−2σd2(i−k)2(j−l)2−2σr2∥f(i,j)−f(k,l)∥2)
函数APIbilateralFilter
void bilateralFilter( InputArray src, OutputArray dst, int d,double sigmaColor, double sigmaSpace,int borderType BORDER_DEFAULT );
/*******************************************************************
* src 输入图像
* dst 输出图像
* d 滤波过程中每个像素邻域的直径
* sigmaColor: 颜色空间滤波器的标准差值
* 参数越大表明该像素领域内有越多的颜色被混合到一起
* sigmaSpace: 空间间坐标中滤波器的标准差值
* borderType: 外部像素边界模式(一般不管)
*********************************************************************/void testBilateralFilter() {cv::bilateralFilter(mt, saves[bilateral], KERNEL, KERNEL, KERNEL);}参考
bilateral filter双边滤波器的通俗理解_AI吃大瓜的博客-CSDN博客 均值滤波
高斯滤波_百度百科
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923936.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!