DIP-图像平滑化处理

本文介绍了图像平滑处理中的四种方法:均值滤波、加权均值滤波、中值滤波和KNN平滑滤波。均值滤波和加权均值滤波适用于高斯噪声,但可能导致图像模糊;中值滤波在处理椒盐噪声时效果显著;KNN滤波通过选择最近邻来平滑图像,k值的选择影响平滑程度和噪声去除效果。滤波次数与图像清晰度成反比,k值适中才能平衡噪声去除和平滑度。
摘要由CSDN通过智能技术生成

DIP-图像平滑化处理

第三节:图像平滑化


前言

图像平滑从信号处理的角度看就是去除其中的高频信息,保留低频信息。因此我们可以对图像实施低通滤波。低通滤波可以去除图像中的噪音,模糊图像(噪音是图像中变化比较大的区域,也就是高频信息)。而高通滤波能够提取图像的边缘(边缘也是高频信息集中的区域)。

根据滤波器的不同又可以分为均值滤波,加权均值滤波,中值滤波,KNN平滑滤波。


一、方法介绍

1.均值滤波

原理:在图像上,对待处理的像素给定一个模板,该模板包括了其周围的邻近像素。将模板中的全体像素的均值来替代原来的像素值的方法。
在这里插入图片描述

缺陷:均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。特别是椒盐噪声。

代码如下(示例):

void meanFilter(RGBQUAD** dataOfBmp_src, RGBQUAD** dataOfBmp_dst, DWORD width, DWORD height)
{
    
		int dim = 3;//模板维度 
		double H0[dim][dim];//模板
		for(int i=0;i<dim;i++){
   
			for(int j=0;j<dim;j++){
   
				H0[i][j] = 1.0 / (dim*dim); //dim*dim的括号必加! 
			}
		} 
		double sumR,sumG,sumB;
	   for(DWORD i=0;i<height;i++)
			for(DWORD j=0;j<width;j++)
			{
   
				sumR = 0;sumG = 0;sumB = 0; 
				if(i >= 0 && i+2 <= height-1 && j >= 0 && j+2 <= width-1){
   
					for(int k = 0;k<dim;k++){
   
						for(int l = 0;l<dim;l++){
   
							sumR += dataOfBmp_src[i+k][j+l].rgbRed * H0[k][l];//存放卷积运算的和 
							sumG += dataOfBmp_src[i+k][j+l].rgbGreen * H0[k][l];
							sumB += dataOfBmp_src[i+k][j+l].rgbBlue * H0[k][l];
						}
					}
					dataOfBmp_dst[i+1][j+1].rgbRed = sumR; 
					dataOfBmp_dst[i+1][j+1].rgbGreen = sumG;
					dataOfBmp_dst[i+1][j+1].rgbBlue = sumB;
				}
				else{
   
					dataOfBmp_dst[i][j].rgbRed = dataOfBmp_src[i][j].rgbRed;
					dataOfBmp_dst[i][j].rgbGreen = dataOfBmp_src[i][j].rgbGreen;
					dataOfBmp_dst[i][j].rgbBlue = dataOfBmp_src[i][j].rgbBlue;
				}
			}
}

效果图:
在这里插入图片描述

2.加权均值滤波

均值滤波器中,模板内像素的权重都为一,其只是简单的像素加法平均

而,加权均值滤波器,对模板中的像素点赋予不同的权重,求的是像素的加权平均。
代码如下:
在这里插入图片描述

void weightedMeanFilter(RGBQUAD** dataOfBmp_src, RGBQUAD** dataOfBmp_dst, DWORD width, DWORD height)
{
   
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值