数字图像处理第4讲邻域平均法及中值滤波

合集下载

数字图像处理第4章课件

数字图像处理第4章课件
数字图像处理第4章
图像增强—图像去噪(平滑)
无噪声原图
有高斯噪声
数字图像处理第4章
图像增强—图像去噪(平滑)
经33平均算子后结果
经55平均算子后结果
经55高斯滤波后结果
数字图像处理第4章
图像增强—图像去噪(平滑)
(二)多图像平均 (三)中值滤波(非线性滤波)
——用一个含有奇数点的滑动窗口,将中心像素的灰度用窗口内 所有像素的中值代替。
h 高斯滤波器(典型低通方法)
e h(m,n)
2
1
2 x
2 y
2m 2x 22n 22 y
数字图像处理第4章
图像增强—图像去噪(平滑)
•二维高斯函数具有旋转对称性,保证滤波时各方向平滑程度相同。 •离中心点越远权值越小,减少边缘细节模糊程度。 设计离散高斯滤波器的方法——设定 x2 , y2 和掩模大小(截断点)
经3 3窗口做中 值滤波的结果
数字图像处理第4章
图像增强—图像去噪(平滑)
有椒盐噪声的图像
经3 3的窗口做中值滤波
数字图像处理第4章
图像增强—图像去噪(平滑)
(四)边界保持类平滑滤波 去噪的同时,会使图像中不同区域的边界模糊 进行平滑处理时,首先判别当前像素是否为边界上的点, 如果是,则不进行平滑处理;如果不是,则进行平滑处理。
21)D (u,v)/D 02n
——没有明显的振铃效果(在低频和高频之间的平滑过渡)。处理 效果比理想低通好。
数字图像处理第4章
图像增强—图像去噪(平滑)
ab cd ef
(a)原图(500500);采用2阶 Butterworth低通;(b) -(f)分 别是D0=5, 15, 30, 80, 230时 的滤波结果。

数字图像处理之快速中值滤波算法

数字图像处理之快速中值滤波算法

数字图像处理之快速中值滤波算法快速中值滤波算法 : 在图像处理中,在进⾏如边缘检测这样的进⼀步处理之前,通常需要⾸先进⾏⼀定程度的降噪。

中值滤波是⼀种⾮线性数字滤波器技术,经常⽤于去除图像或者其它信号中的噪声。

这个设计思想就是检查输⼊信号中的采样并判断它是否代表了信号,使⽤奇数个采样组成的观察窗实现这项功能。

观察窗⼝中的数值进⾏排序,位于观察窗中间的中值作为输出。

然后,丢弃最早的值,取得新的采样,重复上⾯的计算过程。

中值滤波是图像处理中的⼀个常⽤步骤,它对于斑点噪声和椒盐噪声来说尤其有⽤。

保存边缘的特性使它在不希望出现边缘模糊的场合也很有⽤。

为了演⽰中值滤波器的⼯作过程,我们给下⾯的数组加上观察窗 3 ,重复边界的数值: x = [2 80 6 3] y[1] = Median[2 2 80] = 2 y[2] = Median[2 80 6] = Median[2 6 80] = 6 y[3] = Median[80 6 3] = Median[3 6 80] = 6 y[4] = Median[6 3 3] = Median[3 3 6] = 3 于是 y = [2 6 6 3] 其中 y 是 x 的中值滤波输出。

普通中值滤波算法伪代码: Input: image X of size m*n, kernel radius r. output: image Y as X. for i = r to m - r do for j = r to n - r do initialize list A[] for a = i-r to i+r for b = j-r to j+r add X(a, b) to A[] end end sort A[] then Y(i ,j) = A[A.size/2] end end 处理前: 处理后: 但是,上述算法在像素处理处的复杂度为O(r2). OpenCV实现代码:#include "cv.h"#include "highgui.h"#include <iostream>using namespace std;using namespace cv;int main(int argc, char* argv[]){Mat src = imread("beauty.jpg");Mat dst;//参数是按顺序写的//⾼斯滤波//src:输⼊图像//dst:输出图像//Size(5,5)模板⼤⼩,为奇数//x⽅向⽅差//Y⽅向⽅差GaussianBlur(src,dst,Size(5,5),0,0);imwrite("gauss.jpg",dst);//中值滤波//src:输⼊图像//dst::输出图像//模板宽度,为奇数medianBlur(src,dst,3);imwrite("med.jpg",dst);//均值滤波//src:输⼊图像//dst:输出图像//模板⼤⼩//Point(-1,-1):被平滑点位置,为负值取核中⼼blur(src,dst,Size(3,3),Point(-1,-1));imwrite("mean.jpg",dst);//双边滤波//src:输⼊图像//dst:输⼊图像//滤波模板半径//颜⾊空间标准差//坐标空间标准差bilateralFilter(src,dst,5,10.0,2.0);//这⾥滤波没什么效果,不明⽩imwrite("bil.jpg",dst);waitKey();return0;}View Code 快速中值滤波算法: O(r)复杂度的Huang算法:<> 这个代码的核⼼在于维护⼀个kernel直⽅图,可以实现快速的读取和删除扫描区域的像素值。

数字图像处理第4讲邻域平均法及中值滤波

数字图像处理第4讲邻域平均法及中值滤波

3.2 空域增强
中值滤波:将模板区域内的象素排序,求出中值。
第3章 图像增强
3.2 空域增强
中值滤波对小于窗宽(N=5)1/2的脉冲将进行抑制,如:
阶跃
斜坡
三角
第3章 图像增强
3.2 空域增强
单脉冲
双脉冲
三脉冲
第3章 图像增强
3.2 空域增强
二维中值滤波器比一维滤波器有更好的性能。二维中值滤 波器的窗口是二维的,其形状有很多种,如直线形、方形 、圆形、十字形、圆环形、菱形等
第3章 图像增强
3.2 空域增强
g(x, y) w1s1 w2s2 w9s9
y
w1
w2
w3
O
Y
s1
s2
s3
w4
w5
w6
x
s4
s5
s6
w7
w8
w9
s7
s8
s9
X
第3章 图像增强
3.2 空域增强
0 1 0
邻域平均:
H
1 4
1
0
1
0 1 0
0 1 0
邻域加权平均:
H
1 5
1
1
1
0 1 0
0 1 0
第3章 图像增强
第4讲 邻域平均法及中值滤波
演示文稿说明: 本讲内容以板书为主,ppt 演示为辅; 本讲部分图片来自冈萨雷斯的数字图像处理(英文版)教材。
第3章 图像增强
3.2 空域增强
邻域平均法:是一种直接在空间域上进行平滑处理的技术 。假设图像是由许多灰度恒定的小块组成,相邻像素间存 在很高的空间相关性,而噪声则是统计独立的。因此,可 用邻域内各像素的灰度平均值代替该像素原来的灰度值, 实现图像的平滑。

数字图像处理------中值滤波

数字图像处理------中值滤波

数字图像处理------中值滤波⼀中值滤波概念中值滤波算法以某像素的领域图像区域中的像素值的排序为基础,将像素领域内灰度的中值代替该像素的值[1];如:以3*3的领域为例求中值滤波中像素5的值图11)int pixel[9]中存储像素1,像素2...像素9的值;2)对数组pixel[9]进⾏排序操作;3)像素5的值即为数组pixel[9]的中值pixel[4]。

中值滤波对处理椒盐噪声⾮常有效。

⼆中值滤波代码实现//中值滤波:本算法采⽤3*3的领域范围void MyImage::MedianFilterOper(){//0. 准备:获取图⽚的宽,⾼和像素信息,int const num = 3 * 3;unsigned char pixel[num] = { 0 }; //保存领域的像素值int width = m_bmpInfo.biWidth;int height = m_bmpInfo.biHeight;int widthbyte = (width * m_bmpInfo.biBitCount / 8 + 3) / 4 * 4; //保证为4的倍数//相对于中⼼点,3*3领域中的点需要偏移的位置int delta[3 * 3][2] = {{ -1, -1 }, { -1, 0 }, { -1, 1 }, { 0, -1 }, { 0, 0 }, { 0, 1 }, { 1, -1 }, { 1, 0 }, {1, 1}};//1. 中值滤波,没有考虑边缘for (int i = 1; i < height-1; ++i){for (int j = 1; j < widthbyte-1; ++j){//1.1 提取领域值for (int k = 0; k < num; ++k){pixel[k] = m_imagedata[(i + delta[k][0])*widthbyte + j + delta[k][1]];}//1.2 排序qsort(pixel, num, sizeof(unsigned char), compa);//1.3 获取该中⼼点的值m_imagedata[i*widthbyte + j] = pixel[num / 2];}}}3 中值滤波概述 滤波是基于排序统计理论的⼀种能有效抑制噪声的⾮线性信号平滑处理技术,它将每⼀点的设置为该点某邻域窗⼝内的所有像素点灰度值的。

数字图像处理实验报告(邻域平均法和中值滤波法)

数字图像处理实验报告(邻域平均法和中值滤波法)

数字图像处理实验报告(邻域平均法和中值滤波法)数字图像处理实验报告班级:姓名:学号:日期:邻域平均法和中值滤波处理一、实验目的图像变换是数字图像处理中的一种综合变换,如直方图变换、几何变换等。

通过本实验,使得学生掌握两种变换的程序实现方法。

二、实验任务请设计程序,分别用邻域平均法,其模板为:和中值滤波法对testnoise 图像进行去噪处理(中值滤波的模板的大小也设为3X 3)。

三、实验环境本实验在Windows 平台上进行,对内存及cpu 主频无特别要求,使用VC或者MINGW (gcc)编译器均可。

四、设计思路介绍代码的框架结构、所用的数据结构、各个类的介绍(类的功能、类中方法的功能、类的成员变量的作用)、各方法间的关系写。

在此不进行赘述。

五、具体实现实现设计思路中定义的所有的数据类型,对每个操作给出实际算法。

对主程序和其他模块也都需要写出实际算法。

代码:<邻域平均法>(3*3)#include#include#include#include "hdr.h" /* ------ 定义结构指针--- */struct bmphdr *hdr;// 定义用于直方图变量unsigned char *bitmap,*count,*new_color; /* ---- main() 函数编--- */ int main(){ //定义整数i,j 用于函数循环时的,nr_pixels 为图像中像素的个数int i, j ,nr_pixels,nr_w,nr_h; // 定义两个文件指针分别用于提取原图的数据和生成直方图均衡化后的图像FILE *fp, *fpnew; // 定义主函数的参数包括:输入的位图文件名和输出的位图文件名,此处内容可以不要,在DOS下执行命令的时候再临时输入也可,为了方便演示,我这里直接把函数的参数确定了。

//argc=3; //argv[1]="test.bmp"; //argv[2]="testzf.bmp"; // 参数输入出错显示/* if (argc != 3) {printf("please input the name of input and out bitmap files\n");exit(1);}*/// 获取位图文件相关信息// hdr = get_header(argv[1]); hdr = get_header("testnoise.bmp");if (!hdr) exit(1); // 以二进制可读方式打开输入位图文件fp = fopen("testnoise.bmp", "rb");if (!fp) {printf("File open error!\n");exit(1);} // 文件指针指向数据区域fseek(fp, hdr->offset, SEEK_SET)计算位图像素的个数nr_pixels = hdr->width * hdr->height;nr_w = hdr->width;nr_h = hdr->height;bitmap = malloc(nr_pixels);new_color = malloc(nr_pixels);count = malloc((nr_w+2)*(+nr_h+2));//读取位图数据到bitmap 中fread(bitmap, nr_pixels, 1, fp);fclose(fp);// 因为图像边缘无法使用邻域平均,所以根据邻近颜色填补图像的周围一圈,存入count[] 数组中// 中心图像存入count[] for(i=nr_w+3;i<(nr_w+2)*(+nr_h+2)-nr_w-3;i++) { j=i/(nr_w+2);if(i%(nr_w+2)!=0&&(i+1)%(nr_w+2)!=0) count[i]=bitmap[i-nr_w-1-2*j]; } // 填补第一排for(i=1;i} // 填补最后一排for(i=1;i} // 填补左边一排for(i=0;i} // 填补右边一排for(i=0;i<nr_h+3;i++)< p="">{ count[(i+1)*(nr_w+2)-1]=count[(i+1)*(nr_w+2)-2];}// 邻域平均3*3for(j=nr_w+3,i=0;j<(nr_w+2)*(+nr_h+2)-nr_w-3;j++) {if(j%(nr_w+2)!=0&&(j+1)%(nr_w+2)!=0)new_color[i]=(count[j]+count[j-1]+count[j+1]+count[j-nr_w-2]+count[j-1-nr_w-2]+count[j+1-nr_w-2]+count[j+nr_w+2]+count[j-1+nr_w+2]+count[j+1+nr_w+2])/9,i++; } //结果存入bitmap[] 中for (i = 0; i < nr_pixels; i++;bitmap[i]=new_color[i]; // 打开一个以输出文件名命名的文件,设为可写的二进制形式fpnew = fopen("test_lynoise.bmp", "wb+");// 由于位图文件的头部信息并没有因直方图均衡化而改变,因此输出图像的头部信息从原位图文件中拷贝即可:fwrite(hdr->signature, 2, 1, fpnew); fwrite(&hdr->size, 4, 1, fpnew);fwrite(hdr->reserved, 4, 1, fpnew); fwrite(&hdr->offset, 4, 1, fpnew); fwrite(&hdr->hdr_size, 4, 1, fpnew); fwrite(&hdr->width, 4, 1, fpnew); fwrite(&hdr->height, 4, 1, fpnew); fwrite(&hdr->nr_planes, 2, 1, fpnew); fwrite(&hdr->bits_per_pixel, 2, 1, fpnew); fwrite(&hdr->compress_type, 4, 1, fpnew); fwrite(&hdr->data_size, 4, 1, fpnew); fwrite(&hdr->resol_hori, 4, 1, fpnew); fwrite(&hdr->resol_vert, 4, 1, fpnew);fwrite(&hdr->nr_colors, 4, 1, fpnew); fwrite(&hdr->important_color, 4, 1, fpnew); if (hdr->offset > 54) fwrite(hdr->info, (hdr->offset - 54), 1, fpnew); // 直方图均衡化的数据(bitmap) 赋值fwrite(bitmap, nr_pixels, 1, fpnew);// 关闭fclose(fpnew);// 释放内存(优化程序必需) free(hdr);free(bitmap);</nr_h+3;i++)<>。

中值滤波和均值滤波

中值滤波和均值滤波

中值滤波和均值滤波中值滤波和均值滤波是数字图像处理中常用的两种滤波方法,它们在图像去噪和平滑处理中起着重要的作用。

本文将从原理、应用以及优缺点等方面介绍这两种滤波方法。

一、中值滤波中值滤波是一种非线性滤波方法,其基本原理是用像素点周围邻域内的中值来代替该像素点的灰度值。

中值滤波可以有效地去除图像中的椒盐噪声和脉冲噪声,同时能够保持图像的边缘信息。

其处理过程如下:1.选取一个模板,模板的大小根据噪声的程度来确定;2.将模板中的像素点按照灰度值大小进行排序,取其中位数作为中心像素点的灰度值;3.将中心像素点的灰度值替换为中值;4.重复以上步骤,对整个图像进行滤波。

中值滤波的优点是能够有效地去除椒盐噪声和脉冲噪声,同时保持图像的边缘信息。

然而,中值滤波也存在一些缺点,例如不能处理高斯噪声和均匀噪声,对图像细节信息的保护效果较差。

二、均值滤波均值滤波是一种线性平滑滤波方法,其基本原理是用像素点周围邻域内的平均值来代替该像素点的灰度值。

均值滤波可以有效地去除高斯噪声和均匀噪声,同时能够保持图像的整体平滑。

其处理过程如下:1.选取一个模板,模板的大小根据滤波效果来确定;2.计算模板内所有像素点的灰度值的平均值;3.将中心像素点的灰度值替换为平均值;4.重复以上步骤,对整个图像进行滤波。

均值滤波的优点是能够有效地去除高斯噪声和均匀噪声,同时能够保持图像的整体平滑。

然而,均值滤波也存在一些缺点,例如不能处理椒盐噪声和脉冲噪声,对图像细节信息的保护效果较差。

中值滤波和均值滤波在图像处理中各有优劣。

中值滤波适用于去除椒盐噪声和脉冲噪声,能够保持图像的边缘信息,但在处理高斯噪声和均匀噪声时效果较差。

而均值滤波适用于去除高斯噪声和均匀噪声,能够保持图像的整体平滑,但对于细节信息的保护效果较差。

在实际应用中,根据图像的特点和噪声的类型选择合适的滤波方法是很重要的。

如果图像受到椒盐噪声和脉冲噪声的影响,可以选择中值滤波进行去噪处理;如果图像受到高斯噪声和均匀噪声的影响,可以选择均值滤波进行平滑处理。

数字图像处理图像滤波ppt课件

数字图像处理图像滤波ppt课件
素位置重合; 读取模板下各对应像素的灰度值; 将这些灰度值从小到大排成一列; 找出这些值的中间值; 将这个值赋给对应模板中心位置的像素。
47
噪声图像
中值滤波3x3
48
平均滤波与中值滤波比较
噪声图像
均值滤波
中值滤波
均值滤波和中值滤波都采用的是2x2 的模板
49
均值,中值和最频值
均值是模板内像素点灰度的平均值,中值是数值排列 后处于中间的值,最频值是出现次数最多的灰度值;
8
常用像素距离公式
欧几里德距离
DE
(
p,
q)


x

s 2


y

t
2

范数距离
D( p, q) x s y t
棋盘距离
D( p, q) max x s , y t
9
像素间的基本运算
算术运算:
加法: p + q
减法: p - q
乘法: p * q
这三者都与直方图有着密切的关系; 直方图的一个峰对应一个区域,如果这个峰是对称的,
那么均值等于中值,等于最频值。
50
中值滤波的代码实现 Matlab中函数medfilt1和medfilt2,第一个是一维
的中值滤波,第二个是二维的中值滤波。 使用help查看函数功能
51
示例
52
代码讲解
0.25
0.10 0.05
0.125 01 2
34
56
7
P r 关系目标曲线 r
原始图像中的P-r点位置 对应变换后的P-r点位置
24
算法描述 设像素共分为L级(r = 0,1,2,…L1),变换后对应的

均值和中值滤波

均值和中值滤波

1、均值滤波器邻域平均法是一种局部空间域处理的算法。

设一幅图像f(x,y)为N ×N 的阵列,处理后 的图像为g(x,y),它的每个像素的灰度级由包含(x,y)领域的几个像素的灰度级的平均值所 决定,即用下式得到处理后的图像:∑∈=S j i j i f M y x g ),(),(1),(式中x,y=0,l,2,…,N-1;S 是以(x,y)为中心的邻域的集合,M 是S 内坐标点的总数。

图像邻域平均法的处理效果与所用的邻域半径有关。

半径愈大,则图像的模糊程度也度大。

外,图像邻域平均算法简单,计算速度快,但它的主要缺点是在降低噪声的同时使图像产生模糊,特别在边沿和细节处,邻域越大,模糊越厉害。

一个均值滤波的例子:I=imread('cameraman.tif');%读入图像J=imnoise(I,'salt & pepper',0.02);%给图像添加椒盐噪声K=imnoise(I,'gaussian',0,0.005);%给图像添加均值为0,方差为0.005的高斯噪声subplot(231),imshow(I)title('原图像')subplot(232),imshow(J)title('添加椒盐噪声图像')subplot(233),imshow(K)title('添加高斯噪声图像')subplot(234),imshow(I)title('原图像')K1=filter2(fspecial('average',3),J)/255;%使用3×3模板均值滤波subplot(235),imshow(K1)title('3*3椒盐噪声均值滤波')K2=filter2(fspecial('average',3),K)/255;%使用3×3模板均值滤波subplot(236),imshow(K2)title('3*3高斯噪声均值滤波')2、中值滤波器它是一种基于排序统计理论的可有效抑制噪声的非线性平滑滤波器,其基本原理是把数字图像或数字序列中一点的值用该点的一个领域中各点值的中值代换。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章 图像增强
第4讲 邻域平均法及中值滤波
演示文稿说明: 本讲内容以板书为主,ppt 演示为辅; 本讲部分图片来自冈萨雷斯的数字图像处理(英文版)教材。
第3章 图像增强
3.2 空域增强
邻域平均法:是一种直接在空间域上进行平滑处理的技术 。假设图像是由许多灰度恒定的小块组成,相邻像素间存 在很高的空间相关性,而噪声则是统计独立的。因此,可 用邻域内各像素的灰度平均值代替该像素原来的灰度值, 实现图像的平滑。
H
1 6
1
2
1
0 1 0
1 1 1
H
1 10
1
2
1
1 1 1
1 1 1
H
1 8
1
0
1
1 1 1
1 1 1
H
1 9
1
1
1
1 1 1
1 2 1
H
1 16
2
4
2
1 2 1
第3章 图像增强
3.2 空域增强
模板尺寸对图像平滑的效果 • 不同的模板尺寸:
3x3,5x5,7x7,… 如右图。
• 有何影响?
第3章 图像增强
(a) 水平直线形 (b) 垂直直线形 (c) 十字形
(d) 方形
(e) 菱形
第3章 图像增强
3.2 空域增强
(a)原图
(b)1×3水平线形 (c) 1×5水平线形 (d) 5×5菱形
(e)3×1垂直线性 (f)5×1垂直线形 (g)3×3十字形 (h)5×5十字形 (i) 3×3方形 (j) 5×5方形
3.2 空域增强
中值滤波:将模板区域内的象素排序,求出中值。
第3章 图像增强
3.2 空域增强
中值滤波对小于窗宽(N=5)1/2的脉冲将进行抑制,如:
阶跃
斜坡
三角
第3章 图像增强
3.2 空域增强
单脉冲
双脉冲
三脉冲
第3章 图像增强
3.2 空域增强
二维中值滤波器比一维滤波器有更好的性能。二维中值滤 波器的窗口是二维的,其形状有很多种,如直线形、方形 、圆形、十字形、圆环形、菱形等
3.2 空域增强
平均模版与中值滤波效果:
第3章 图像增强
3.2 空域增强
百分比滤波器:是一类更广泛的非线性滤波器,在工作的时 候与中值滤波器相似。首先对窗口内的像素按灰度值的大小 进行排序,然后根据某个确定的百分比选取序列中对应的像 素值赋给窗口中心位置的像素。 如果百分比取最大就是最大值滤波器,它可以用来检测图像 中的最亮点; 如果百分比取最小,就是最小值滤波器,它可以用来检测图 像中的最暗; 如果百分比取50%,就是中值滤波器。
第3章 图像增强
3.2 空域增强
g(x, y) w1s1 w2s2 w9s9
y
Байду номын сангаас
w1
w2
w3
O
Y
s1
s2
s3
w4
w5
w6
x
s4
s5
s6
w7
w8
w9
s7
s8
s9
X
第3章 图像增强
3.2 空域增强
0 1 0
邻域平均:
H
1 4
1
0
1
0 1 0
0 1 0
邻域加权平均:
H
1 5
1
1
1
0 1 0
0 1 0
相关文档
最新文档