数字图像处理图像平滑

合集下载

图像的平滑处理与锐化处理

图像的平滑处理与锐化处理

数字图像处理作业题目:图像的平滑处理与锐化处理姓名:***学号:************专业:计算机应用技术1.1理论背景现实中的图像由于种种原因都是带噪声的,噪声恶化了图像质量,使图像模糊,甚至淹没和改变特征,给图像分析和识别带来了困难。

一般数字图像系统中的常见噪声主要有:高斯噪声、椒盐噪声等。

图像去噪算法根据不通的处理域,可以分为空间域和频域两种处理方法。

空间域处理是在图像本身存在的二维空间里对其进行处理。

而频域算法是用一组正交函数系来逼近原始信号函数,获得相应的系数,将对原始信号的分析转动了系数空间域。

在图像的识别中常需要突出边缘和轮廓信息,图像锐化就是增强图像的边缘和轮廓。

1.2介绍算法图像平滑算法:线性滤波(邻域平均法)对一些图像进行线性滤波可以去除图像中某些类型的噪声。

领域平均法就是一种非常适合去除通过扫描得到的图像中的噪声颗粒的线性滤波。

领域平均法是空间域平滑噪声技术。

对于给定的图像()j i f,中的每个像素点()nm,,取其领域S。

设S含有M个像素,取其平均值作为处理后所得图像像素点()nm,处的灰度。

用一像素领域内各像素灰度平均值来代替该像素原来的灰度,即领域平均技术。

领域S的形状和大小根据图像特点确定。

一般取的形状是正方形、矩形及十字形等,S 的形状和大小可以在全图处理过程中保持不变,也可以根据图像的局部统计特性而变化,点(m,n)一般位于S 的中心。

如S 为3×3领域,点(m,n)位于S 中心,则()()∑∑-=-=++=1111,91,i j j n i m f n m f 假设噪声n 是加性噪声,在空间各点互不相关,且期望为0,方差为2σ,图像g 是未受污染的图像,含有噪声图像f 经过加权平均后为 ()()()()∑∑∑+==j i n M j i g M j i f M n m f ,1,1,1, 由上式可知,经过平均后,噪声的均值不变,方差221σσM =,即方差变小,说明噪声强度减弱了,抑制了噪声。

数字图像处理-图像平滑和锐化变换处理

数字图像处理-图像平滑和锐化变换处理

图像平滑和锐化变换处理一、实验容和要求1、灰度变换:灰度拉伸、直方图均衡、伽马校正、log变换等。

2、空域平滑:box、gauss模板卷积。

3、频域平滑:低通滤波器平滑。

4、空域锐化:锐化模板锐化。

5、频域锐化:高通滤波器锐化。

二、实验软硬件环境PC机一台、MATLAB软件三实验编程及调试1、灰度变换:灰度拉伸、直方图均衡、伽马校正、log变换等。

①灰度拉伸程序如下:I=imread('kids.tif');J=imadjust(I,[0.2,0.4],[]);subplot(2,2,1),imshow(I);subplot(2,2,2),imshow(J);subplot(2,2,3),imhist(I);subplot(2,2,4),imhist(J);②直方图均衡程序如下:I=imread('kids.tif');J=histeq(I);Imshow(I);Title('原图像');Subplot(2,2,2);Imshow(J);Title('直方图均衡化后的图像') ;Subplot(2,2,3) ;Imhist(I,64);Title('原图像直方图') ;Subplot(2,2,4);Imhist(J,64) ; Title('均衡变换后的直方图') ;③伽马校正程序如下:A=imread('kids.tif');x=0:255;a=80,b=1.8,c=0.009;B=b.^(c.*(double(A)-a))-1;y=b.^(c.*(x-a))-1;subplot(3,2,1);imshow(A);subplot(3,2,2);imhist(A);imshow(B);subplot(3,2,4);imhist(B);subplot(3,2,6);plot(x,y);④log变换程序如下:Image=imread('kids.tif');subplot(1,2,1);imshow(Image);Image=log(1+double(Image));subplot(1,2,2);imshow(Image,[]);2、空域平滑:box、gauss模板卷积。

envi形态学的闭运算平滑处理

envi形态学的闭运算平滑处理

envi形态学的闭运算平滑处理Envi形态学的闭运算平滑处理概述:在数字图像处理中,图像平滑是一种常见的预处理方法,用于减少图像中的噪声、模糊图像边缘或者去除小的图像细节。

Envi形态学的闭运算是一种常用的图像平滑处理方法,通过结构元素的膨胀和腐蚀操作,可以有效地平滑图像并保留图像的整体形态。

一、形态学基础知识1. 结构元素:结构元素是形态学操作的基本单元,可以看作是一个特定形状的模板。

常见的结构元素包括点、线、方形、圆形等。

2. 膨胀操作:膨胀操作是形态学操作中的一种,它将结构元素与图像进行卷积运算,将结构元素的形状应用到图像上,扩大图像中的亮区域。

膨胀操作可以使图像中的亮部变大,连接相邻的亮部,并膨胀图像边缘。

3. 腐蚀操作:腐蚀操作是形态学操作中的另一种,它将结构元素与图像进行卷积运算,将结构元素的形状应用到图像上,缩小图像中的亮区域。

腐蚀操作可以使图像中的亮部变小,断开相邻的亮部,并腐蚀图像边缘。

二、闭运算的原理闭运算是形态学操作中的一种组合操作,它先进行膨胀操作,再进行腐蚀操作。

闭运算可以平滑图像并保留图像的整体形态。

闭运算的过程如下:1. 对原始图像进行膨胀操作,得到膨胀后的图像。

2. 对膨胀后的图像进行腐蚀操作,得到闭运算后的图像。

闭运算的效果如下图所示:(不显示图片链接)三、闭运算的应用闭运算在图像处理中有广泛的应用,主要用于平滑图像并去除图像中的噪声或细小的细节。

1. 去除图像中的噪声:闭运算可以通过膨胀和腐蚀的组合操作,将噪声区域扩大并与周围的背景区域连接起来,然后再将其腐蚀掉,从而去除图像中的噪声。

2. 平滑图像边缘:闭运算可以将图像中的边缘进行平滑处理,使得图像边缘更加连续,减少图像的锯齿状现象,提高图像的质量。

3. 去除图像中的细小细节:闭运算可以通过膨胀和腐蚀的组合操作,将图像中的细小细节进行腐蚀,从而实现去除细小细节的效果。

四、闭运算的优缺点闭运算作为一种图像平滑处理方法,具有以下优点和缺点:优点:1. 可以有效地平滑图像,去除噪声或细小细节。

数字图像处理高级技巧试卷

数字图像处理高级技巧试卷

数字图像处理高级技巧试卷(答案见尾页)一、选择题1. 数字图像处理中,关于图像平滑的描述,以下哪些是正确的?A. 中值滤波可以用于去除图像的高斯噪声。

B. 高斯滤波可以用于锐化图像。

C. 模糊处理可以减少图像的细节。

D. 自适应滤波可以根据不同的区域调整滤波效果。

2. 在数字图像处理中,以下哪种方法可以用来增强图像的边缘?A. 直方图均衡化B. 梯度锐化C. 低通滤波D. 各向异性扩散3. 数字图像处理中,以下哪个算法可以用于图像的缩放?A. 最近邻插值B. 双线性插值C. 高斯插值D. 三次样条插值4. 在数字图像处理中,关于图像分割的描述,以下哪些是正确的?A. 区域生长是基于像素相似性的分割方法。

B. 边缘检测是基于图像梯度的分割方法。

C. 分水岭算法是一种基于拓扑学的图像分割方法。

D. 图像分割可以分为阈值分割、区域生长和边缘检测等。

5. 数字图像处理中,以下哪种技术可以用于去除图像中的噪声?A. 卷积运算B. 非线性滤波C. 滤波运算D. 代数运算6. 在数字图像处理中,以下哪种方法可以用于图像的锐化?A. 微分运算B. 积分运算C. 模糊运算D. 曲率运算7. 数字图像处理中,以下哪种技术可以用于图像的增强?A. 对比度增强B. 灰度变换C. 直方图均衡化D. 伽马校正8. 在数字图像处理中,以下哪种方法可以用于图像的旋转?A. 基于特征点的旋转B. 基于仿射变换的旋转C. 基于傅里叶变换的旋转D. 基于神经网络的旋转9. 数字图像处理中,以下哪种算法可以用于图像的融合?A. 加法合成B. 减法合成C. 乘法合成D. 混合合成10. 在数字图像处理中,以下哪种技术可以用于图像的压缩?A. JPEG压缩B. MPEG压缩C. DWI压缩D. AI压缩11. 数字图像处理中,以下哪种方法可以用来增强图像边缘?A. 池化B. 高斯模糊C. 边缘检测D. 纹理映射12. 在数字图像处理中,为了减少噪点,应选择哪种处理方法?A. 直方图均衡化B. 中值滤波C. 高斯滤波D. 伽马校正13. 在数字图像处理中,以下哪种技术可以用来分割图像?A. 色彩空间转换B. 图像锐化C. 图像阈值分割D. 图像平滑14. 在数字图像处理中,为了提高图像的对比度,应选择哪种处理方法?A. 自适应直方图均衡化B. 多图像平均C. 局部对比度增强D. 图像标准化15. 在数字图像处理中,以下哪种方法可以用来测量图像的特征?A. 图像分割B. 图像变换C. 图像特征提取D. 图像编码16. 在数字图像处理中,为了保留图像的细节,应选择哪种处理方法?A. 图像缩放B. 图像锐化C. 图像滤波D. 图像变换17. 在数字图像处理中,以下哪种方法可以用来消除图像中的噪声?A. 图像平滑B. 图像锐化C. 图像编码D. 图像解码18. 在数字图像处理中,为了提高图像的质量,应选择哪种处理方法?A. 图像缩放B. 图像旋转C. 图像滤镜D. 图像增强19. 在数字图像处理中,以下哪种技术可以用来追踪图像中的运动?A. 图像分割B. 图像锐化C. 图像融合D. 图像光流法20. 在数字图像处理中,为了提高图像的处理速度,应选择哪种处理方法?A. 图像变换B. 图像滤波C. 图像编码D. 图像并行处理21. 数字图像处理中,关于图像平滑的描述,以下哪些选项是正确的?A. 中值滤波可以用于去除图像的高斯噪声。

数字图像处理-- 图像平滑

数字图像处理-- 图像平滑

实验三图像平滑一.实验目的1.掌握图像平滑的目的和常用方法:低通滤波和中值滤波2.了解噪声产生的主要来源,及常用的噪声。

二.实验内容及步骤1. 模拟噪声生成I=imread('cameraman.tif');I1= imnoise(I,'gaussian');I2= imnoise(I,'salt & pepper',0.02);imshow(I);figure,imshow(I1);figure,imshow(I2);(1)原图像(2)受高斯噪声污染的图像(3)受椒盐噪声污染的图像2.平均值滤波对噪声消除的效果以及对原图像的平滑代码如下:I=imread('cameraman.tif');I1=imnoise(I,'salt & pepper',0.02);I2=imnoise(I,'gaussian');H1=[1/9 1/9 1/9;1/9 1/9 1/9;1/9 1/9 1/9];J=imfilter(I,H1);J1=imfilter(I1,H1);J2=imfilter(I2,H1);imshow(J);figure,imshow(J1);figure,imshow(J2);(a)原图像滤波后(b)受高斯噪声污染图像滤波后(c)受椒盐噪声污染图像滤波3.中值滤波I=imread('cameraman.tif');I1=imnoise(I,'salt & pepper',0.02);I2=imnoise(I,'gaussian');J1=medfilt2(I1,[3,3]); %3×3 中值滤波模板J2=medfilt2(I2,[3,3]); %3×3 中值滤波模板J3=medfilt2(I1,[5,5]); %5×5 中值滤波模板J4=medfilt2(I2,[5,5]); %5×5 中值滤波模板figure,imshow(J1);figure,imshow(J2);figure,imshow(J3);figure,imshow(J4);(e)(f)(g)(i)*4. 频率域低通滤波(1)构建二维滤波器 h:[f1,f2]=freqspace(25, 'meshgrid');Hd=zeros(25,25);d=sqrt(f1.^2+f2.^2)<0.5; %(0.5 为截止半径大小)Hd(d)=1;h=fsamp2(Hd);figure,freqz2(h,[64,64]);图-(4)(2)用所构建的二维滤波器对以上图像进行滤波。

基于MATLAB的数字图像平滑和锐化处理算法分析

基于MATLAB的数字图像平滑和锐化处理算法分析

基于MATLAB的数字图像平滑和锐化处理算法分析卞凤杰2141141摘要:本文主要内容是利用MATLAB 对图像进行频域平滑和锐化处理。

本文先对图像进行空域平滑、锐化处理,然后再进行频域平滑滤波、锐化等操作,可以简单比较空域和频域下对图像进行处理的不同效果,并且通过改变参数确定效果最佳的平滑和锐化处理算法,同时给出了运用MATLAB 进行图像处理的前后对照图像。

关键词:MATLAB;图像处理;图像平滑;图像锐化Abstract:In this paper, the main content is to use MATLAB to do image smoothing and sharpening processing in the frequency-domain.Firstly,this article to do spatial smoothing, sharpening processing of the image, and then to frequency-domain smoothing filtering, sharpening, etc.This can be simply compare the different results of image processing in spatial domain and frequency domain. Secondly, by changing the parameters to determine the best smoothing and sharpening processing algorithm, and gives a comparison before and after using MATLAB image processing image.Keywords:MATLAB;Image Processing;Image smoothing;Image sharpening1、引言数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。

数字图像处理图像增强与平滑

数字图像处理图像增强与平滑
4.菜单灰度化
f (x, y) < T1 T1 ≤ f (x, y) ≤ T2 f (x, y) > T2
第五章:图像增强与平滑 第五章:
灰度变换
直方图
图像平滑
图像锐化
1.定义 1.定义
nk pr ( rk ) = n
1 6 1 3 1 1 2 4 6 4 4 3 3 3 6 5 6 6 4 2 4 6 6 4
s=T(r) 1.0 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1.0 r
pr(s)
0
r 0 0.2 0.4 0.6 0.8 1.0 s
(a)
(b)
(c)
思考:T(r)=?
第五章: 第五章:图像增强与平滑
灰度变换
直方图
图像平滑
图像锐化
4.2 直方图均衡步骤
64×64大小的图像灰度分布表 × 大小的图像灰度分布表
第四章:图像增强与平滑
一.灰度变换 灰度变换: 灰度变换
二.直方图: 直方图: 三. 图像平滑
四. 图像锐化
第五章:图像增强与平滑 第五章:
灰度变换
直方图
图像平滑
图像锐化
1.定义 1.定义
1.将一个灰度区间映射到另一个灰度区间的变换称为灰度变换 1.将一个灰度区间映射到另一个灰度区间的变换称为灰度变换 2.一幅输入图象经过点处理将产生一幅输出图象,后者的 一幅输入图象经过点处理将产生一幅输出图象, 一幅输入图象经过点处理将产生一幅输出图象 每个象素点的灰度值仅由相应输入象素点的值决定
0 ≤ rk ≤ 1 k = 0,1,2, L, l − 1
1 5 2 6 6 2 6 6 5 1 6 6 3 6 4 5 6 2 14 2 3 4 5 6

《数字图像处理及MATLAB实现》图像增强与平滑实验

《数字图像处理及MATLAB实现》图像增强与平滑实验

《数字图像处理及MATLAB实现》图像增强与平滑实验一.实验目的及要求1、熟悉并掌握MA TLAB 图像处理工具箱的使用;2、理解并掌握常用的图像的增强技术。

二、实验设备MATLAB 6.5 以上版本、WIN XP 或WIN2000 计算机三、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。

熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。

(可将每段程序保存为一个.m文件)1.直方图均衡化clear all; close all % Clear the MATLAB workspace of any variables% and close open figure windows.I = imread('pout.tif'); % Reads the sample images ‘pout.tif’, and stores it inimshow(I) % an array named I.display the imagetext(60,20,'李荣桉1909290239','horiz','center','color','r')figure, imhist(I) % Create a histogram of the image and display it in% a new figure window.[I2,T] = histeq(I); % Histogram equalization.figure, imshow(I2) % Display the new equalized image, I2, in a new figure window.text(60,20,'李荣桉1909290239','horiz','center','color','r')figure, imhist(I2) % Create a histogram of the equalized image I2.figure,plot((0:255)/255,T); % plot the transformation curve.imwrite (I2, 'pout2.png'); % Write the newly adjusted image I2 to a disk file named% ‘pout2.png’.imfinfo('pout2.png') % Check the contents of the newly written file2.直接灰度变换clear all; close allI = imread('cameraman.tif'); 注意:imadjust()功能:调整图像灰度值或颜色映像表,也可实现伽马校正。

图像预处理—图像平滑(数字图像处理课件)

图像预处理—图像平滑(数字图像处理课件)
S={(x,y+1),(x,y-l),(x+1,y),(x-1,y)}
4
项目五
下图给出了两种从图像阵列中选取邻域的方法。图(a)的方法是一个点的邻域,定义为 以该点为中心的一个圆的内部或边界上的点的集合。图中选取点的灰度值就是圆周上4个像素灰 度值的平均值。
图(b)是选择圆的边界上的点和在圆内的点为S的集合。
项目五
1.2空域低通滤波
将空间域模板用于图像处理通常称为空间滤波,而空间域模板称为空间滤 波器。空间域滤波按线性的和非线性特点有:线性、非线性平滑滤波器。
线性平滑滤波器包括邻域平均法(均值滤波器)、非线性平滑滤波器有中 值滤波器。
1
项目五
(1)邻域平均法
邻域平均法是简单的空域处理方法。这种方法的基本思想是用几个像素灰度
15
项目五
空间域滤波原理基础
用3×3的模板进行空间滤波的示意图
N
R
ki si k0 s0 k1s1 k8 s8
i0
16
项目五
例:空域中利用模板求卷积和相关计算 例如,假设图像矩阵为A,卷积核为h。如图3.4.4所示。
17
项目五
空域中利用模板求卷积
计算得出输出像素A(2,4)的卷积值为
1
8
15 2 9 4
A(2,4)
7
14
16 7
5
3
13
20
22 6
1
8
=575
18
10
项目五
• 1.1滤波原理与分类
空间域的三种滤波器剖面示意图
11
项目五
• 1.2 空间域滤波
空域滤波是在图像空间借助模板进行邻域操作完成的,空域滤波按线性的和非线性特点有: (1)基于傅里叶变换分析的线性滤波器; (2)直接对邻域进行操作的非线性空间滤波器。 空域滤波器根据功能主要分成平滑滤波和锐化滤波。 平滑滤波可用低通滤波实现。 平滑的目的: (1)消除噪声,(2)去除太小的细节或将目标内的小间断连按起来实现模糊。

遥感——数字图像处理名词解释及简单整理

遥感——数字图像处理名词解释及简单整理

Unit 11、图像是对客观存在的物体的一种相似性的、生动的写真或描述。

2、图像处理的内容它是研究图像的获取、传输、存储、变换、显示、理解与综合利用的一门崭新学科。

根据抽象程度不同可分为三个层次:狭义图像处理、图像分析和图像理解。

Unit 21、图像数字化是将一幅画面转化成计算机能处理的形式——数字图像的过程。

它包括采样和量化两个过程。

像素的位置和灰度就是像素的属性。

2、将空间上连续的图像变换成离散点的操作称为采样。

采样间隔和采样孔径的大小是两个很重要的参数。

3、将像素灰度转换成离散的整数值的过程叫量化。

4、表示像素明暗程度的整数称为像素的灰度级(或灰度值或灰度)。

5、一幅大小为M×N、灰度级数为G的图像所需的存储空间,即图像的数据量,大小为M×N×g (bit)6、数字图像根据灰度级数的差异可分为:黑白图像、灰度图像和彩色图像。

7、对比度是指一幅图象中灰度反差的大小。

对比度=最大亮度/最小亮度8、清晰度由图像边缘灰度变化的速度来描述。

9、灰度直方图反映的是一幅图像中各灰度级像素出现的频率。

以灰度级为横坐标,纵坐标为灰度级的频率,绘制频率同灰度级的关系图就是灰度直方图。

10、简述灰度直方图的应用。

1).数字化参数(判断量化是否恰当)。

2). 边界阈值选取(确定图像二值化的阈值)。

3). 利用直方图统计图像中物体的面积。

4). 计算图像信息量H(熵)。

5). 利用直方图分析图像的特性。

6). 利用直方图进行图像增强。

11、对于任一像素(i,j),该像素周围的像素构成的集合{(i+p,j+q),p、q取合适的整数},叫做该像素的邻域。

12、对输入图像IP(i,j)处理时,某一输出像素JP(i,j)值由输入图像像素(i,j)及其邻域N(IP(i,j))中的像素值确定。

这种处理称为局部处理。

13、在局部处理中,当输出值JP(i,j)仅与IP(i,j)有关,则称为点处理。

14、在局部处理中,输出像素JP(i,j)的值取决于输入图像大范围或全部像素的值,这种处理称为大局处理。

北大医学数字图像处理4.2图像的平滑 (Smoothing Filters)

北大医学数字图像处理4.2图像的平滑 (Smoothing Filters)

4.2 图像的平滑 (Smoothing Filters)[3]目的:消除各种干扰噪声。

噪声可能来自图像采集、量化等过程,也可能产生于图像传送过程,具有离散性和随机性等特点。

4.2.1 图像噪声与去噪思路按噪声服从的分布对其进行分类,可以分为:1)高斯噪声(Gaussian white noise):最普通的噪声。

2)Poisson噪声:在照度非常小时出现,或在高倍电子放大线路中出现。

3)颗粒噪声:是一个白噪声的过程。

MATLAB TOOLBOXES中的一个噪声生成函数为IMNOISE。

IMNOISE Add noise to image.J = IMNOISE(I,TYPE,...) Add noise of a given TYPE to the intensity imageI. TYPE is a string that can have one of these values:'gaussian' Gaussian white noise with constant mean and variance 'localvar' Zero-mean Gaussian white noise withan intensity-dependent variance'poisson' Poisson noise'salt & pepper' "On and Off" pixels'speckle' Multiplicative noiseDepending on TYPE, you can specify additional parameters to IMNOISE. All numerical parameters are normalized; they correspond to operations with images with intensities ranging from 0 to 1.J = IMNOISE(I, 'gaussian', M, V) adds Gaussian white noise of mean M andvariance V to the image I. When unspecified, M and V default to 0 and0.01 respectively.J = imnoise(I,'localvar',V) adds zero-mean, Gaussian white noise of local variance, V, to the image I. V is an array of the same size as I.J = imnoise(I,'localvar',IMAGE_INTENSITY,V AR) adds zero-mean, Gaussian noise to an image, I, where the local variance of the noise is afunction of the image intensity values in I. IMAGE_INTENSITY and V AR are vectors of the same size, and PLOT(IMAGE_INTENSITY,V AR) plots the functional relationship between noise variance and image intensity.IMAGE_INTENSITY must contain normalized intensity values ranging from 0 to 1.J = IMNOISE(I,'poisson') generates Poisson noise from the data insteadof adding artificial noise to the data. In order to respect Poissonstatistics, the intensities of uint8 and uint16 images must correspond to the number of photons (or any other quanta of information).Double-precision images are used when the number of photons per pixelcan be much larger than 65535 (but less than 10^12); the intensitiesvalues vary between 0 and 1 and correspond to the number of photonsdivided by 10^12.J = IMNOISE(I,'salt & pepper',D) adds "salt and pepper" noise to the image I, where D is the noise density. This affects approximatelyD*PROD(SIZE(I)) pixels. The default for D is 0.05.J = IMNOISE(I,'speckle',V) adds multiplicative noise to the image I,using the equation J = I + n*I, where n is uniformly distributed randomnoise with mean 0 and variance V. The default for V is 0.04.Class Support-------------I can be of class uint8, uint16, or double. The output image J is ofthe same class as I. If I has more than two dimensions it is treated as a multidimensional intensity image and not as an RGB image.Example-------I = imread('eight.tif');J = imnoise(I,'salt & pepper', 0.02);imshow(I), figure, imshow(J)例、几种噪声加载。

图像平滑实验报告

图像平滑实验报告

图像平滑实验报告图像平滑实验报告一、引言图像平滑是数字图像处理中的一项重要任务,其目的是减少图像中的噪声,使图像更加清晰和易于分析。

在本实验中,我们将使用不同的平滑滤波器对一幅图像进行处理,并比较它们的效果。

二、实验方法1. 实验材料我们选择了一张包含噪声的测试图像作为实验材料,该图像包含了不同频率和强度的噪声。

2. 实验步骤(1)加载测试图像:我们使用Python的OpenCV库加载测试图像,并将其转换为灰度图像,以便于后续处理。

(2)添加噪声:为了模拟真实场景中的图像噪声,我们使用随机函数在图像中添加高斯噪声和椒盐噪声。

(3)平滑滤波器处理:我们选择了三种常用的平滑滤波器,包括均值滤波器、中值滤波器和高斯滤波器。

分别对添加噪声的图像进行处理,并记录处理后的图像。

(4)性能评估:使用图像质量评估指标,如均方误差(MSE)和峰值信噪比(PSNR),来评估不同滤波器的性能。

三、实验结果我们将实验结果分为以下几个部分进行讨论。

1. 均值滤波器均值滤波器是一种简单的平滑滤波器,它通过计算邻域像素的平均值来实现图像平滑。

在我们的实验中,我们选择了不同大小的邻域窗口进行均值滤波。

结果显示,随着邻域窗口大小的增加,噪声的减少效果也越明显。

然而,较大的窗口大小也会导致图像细节的模糊。

因此,在选择均值滤波器时,需要根据具体应用场景平衡噪声减少和图像细节保留之间的关系。

2. 中值滤波器中值滤波器是一种非线性平滑滤波器,它通过计算邻域像素的中值来实现图像平滑。

在我们的实验中,我们选择了不同大小的邻域窗口进行中值滤波。

结果显示,中值滤波器在去除椒盐噪声方面表现出色。

它能够有效地去除孤立的噪点,但对于较大的噪点区域效果不明显。

因此,中值滤波器在处理椒盐噪声图像时是一种有效的选择。

3. 高斯滤波器高斯滤波器是一种线性平滑滤波器,它通过对邻域像素进行加权平均来实现图像平滑。

在我们的实验中,我们选择了不同的滤波器尺寸和标准差。

【数字图像处理】图像平滑

【数字图像处理】图像平滑

【数字图像处理】图像平滑图像平滑从信号处理的⾓度看就是去除其中的⾼频信息,保留低频信息。

因此我们可以对图像实施低通滤波。

低通滤波可以去除图像中的噪⾳,模糊图像(噪⾳是图像中变化⽐较⼤的区域,也就是⾼频信息)。

⽽⾼通滤波能够提取图像的边缘(边缘也是⾼频信息集中的区域)。

根据滤波器的不同⼜可以分为均值滤波,⾼斯加权滤波,中值滤波,双边滤波。

均值滤波平均滤波是将⼀个m*n(m, n为奇数)⼤⼩的kernel放在图像上,中间像素的值⽤kernel覆盖区域的像素平均值替代。

平均滤波对⾼斯噪声的表现⽐较好,对椒盐噪声的表现⽐较差。

g(x,y) = \frac{1}{mn}\sum_{(x,y) \in S_{xy}} f(s,t)其中$S_{xy} 表⽰中⼼点在(x, y) ⼤⼩为m X n 滤波器窗⼝。

当滤波器模板的所有系数都相等时,也称为盒状滤波器。

BoxFilter , BoxFilter可以⽤来计算图像像素邻域的和。

cv2.boxFilter() normalize=False,此时不使⽤归⼀化卷积窗,当前计算像素值为邻域像素和。

加权均值滤波器不同于上⾯均值滤波器的所有像素系数都是相同的,加权的均值滤波器使⽤的模板系数,会根据像素和窗⼝中⼼的像素距离取不同的系数。

⽐如距离中⼼像素的距离越近,系数越⼤。

$$\frac{1}{16}\left [\begin{array}{ccc}1 &2 & 1 \\ 2 & 4 & 2 \\ 1 & 2 & 1\end{array}\right ]$$⼀般的作⽤于M*N⼤⼩的图像,窗⼝⼤⼩为m*n的加权平均滤波器计算公式为:g(x, y) = \frac{\sum_{s = -a}^a \sum_{t = -b}^b w(s, t) f(x+s, y+t)}{\sum_{s = -a}^a \sum_{t = -b}^b w(s, t)}⾼斯加权滤波器⾼斯函数是⼀种正态分布函数,⼀个⼆维⾼斯函数如下:hh(x, y) = \frac{1}{2\pi \sigma^2}e^{-\frac{x^2+y^2}{2\sigma^2}}\sigma为标准差,如果要得到⼀个⾼斯滤波器模板可以对⾼斯函数进⾏离散化,得到离散值作为模板系数。

【数字图像处理】图像的平滑处理

【数字图像处理】图像的平滑处理

【数字图像处理】图像的平滑处理图像平滑的⽬的模糊:在提取较⼤⽬标前,去除太⼩细节,或将⽬标内的⼩间断连接起来。

消除噪声:改善图像质量,降低⼲扰。

平滑处滤波对图像的低频分量增强,同时削弱⾼频分量,⽤于消除图像中的随机噪声,起到平滑作⽤。

图像平滑处理的基本⽅法领域平均法领域加权平均法选择式掩模法中值滤波领域平均法模板在图像上移动,模板的中⼼对应⽬标像素点,在模板范围内对⽬标像素点进⾏卷积运算(对应系数乘对应像素点),然后相加除上模板⼤⼩得到均值,这个均值就是⽬标像素点处理后的值。

如图,对5⾏四列的图像进⾏3*3模板的邻域平均法处理:邻域平均法存在的问题抑制了⾼频成分,使⽤图像变得模糊,平滑效果不好,减少噪⾳的同时,损失了⾼频信息。

注意:模板不宜过⼤,因为模板越⼤对速度有直接影响,且模板⼤⼩越⼤变换后图像越模糊,特别是在边缘和细节处优点:算法简答,计算速度快。

缺点:造成图像⼀定程度上的模糊。

3*3模板邻域平均法⽰例:Use_ROWS:⾏Use_Line:列图像边界不处理:只处理1-----n-1。

int count = 0;for(int i = 1; i < Use_ROWS-1; i++){for(int j = 1; j < Use_Line-1; j++){//邻域平均法count=0;count = Image_Use[i][j]+Image_Use[i][j-1]+Image_Use[i][j+1]+Image_Use[i-1][j]+Image_Use[i-1][j-1]+Image_Use[i-1][j+1]+Image_Use[i+1][j]+Image_Use[i+1][j-1]+Image_Use[i+1][j+1]; Image_Use[i][j] = (int)(count/9);}}邻域加权平均法加权:系数不再全部为1。

选择式掩模法中值滤波中值滤波器,使⽤滤波器窗⼝包含区域的像素值的中值来得到窗⼝中⼼的像素值,本质上是⼀种⾮线性平滑滤波器。

图像平滑模板

图像平滑模板

图像平滑模板图像平滑是数字图像处理中的一项重要技术,它可以有效地去除图像中的噪声,使图像更加清晰和平滑。

在图像处理中,我们经常需要对图像进行平滑处理,以便更好地进行后续的图像分析和识别。

本文将介绍图像平滑的一些常用模板和方法,帮助大家更好地理解和应用图像平滑技术。

一、均值滤波。

均值滤波是图像平滑中最简单和常用的方法之一。

它的基本思想是用一个模板覆盖图像中的每个像素点,然后计算模板覆盖区域内像素的平均灰度值,再用这个平均值来代替原来的像素值。

均值滤波的模板通常是一个矩形或正方形的窗口,可以是3×3、5×5甚至更大的尺寸。

均值滤波能够有效地去除图像中的高频噪声,但是会使图像失真,特别是对边缘信息的保留不够理想。

二、高斯滤波。

高斯滤波是一种线性平滑滤波器,它利用高斯函数的特性对图像进行平滑处理。

与均值滤波相比,高斯滤波对图像的平滑效果更好,能够有效地去除噪声的同时保持图像的细节信息。

高斯滤波的模板是一个二维的高斯函数,通过调整高斯函数的标准差来控制滤波的程度。

在实际应用中,高斯滤波常常被用来对图像进行预处理,以便更好地进行边缘检测和图像分割等操作。

三、中值滤波。

中值滤波是一种非线性平滑滤波器,它的基本思想是用一个模板覆盖图像中的每个像素点,然后将模板覆盖区域内的像素按照灰度值大小进行排序,取中间值来代替原来的像素值。

中值滤波对椒盐噪声和脉冲噪声有很好的去除效果,能够有效地保持图像的细节信息。

由于中值滤波是基于像素值的排序,因此计算量较大,适用于小尺寸的模板。

四、双边滤波。

双边滤波是一种非线性滤波器,它结合了空间域和灰度域的信息,能够在保持图像边缘信息的同时对图像进行平滑处理。

双边滤波考虑了像素之间的空间距离和灰度值之间的差异,通过调整滤波器的参数可以灵活地控制平滑的程度和边缘的保留。

双边滤波在图像去噪和增强方面有着很好的效果,广泛应用于图像处理和计算机视觉领域。

五、小波变换。

小波变换是一种多尺度分析的方法,它可以将信号分解成不同尺度和频率的小波系数,从而实现对信号的时频局部分析。

数字图像的平滑技术

数字图像的平滑技术

ARTIFICIAL INTELLIGENCE AND IDENTIFICATION TECHNIQUES人工智能及识别技术1引言一幅图像在获取和传输等过程中,会受到各种各样的噪声干扰。

图像噪声来自多方面,有系统外部的干扰,如电磁波或经电源串进系统内部而引起的外部噪声,也有来自系统内部的干扰,如摄像机的热噪声,电器的机械运动而产生的抖动噪声等。

这些噪声干扰使图像退化,质量下降。

表现为图像模糊,特征淹没,对图像分析不利。

图像的平滑是一种实用的数字图像处理技术,主要目的是为了减少噪声。

一个较好的平滑处理方法应该既能消除图像噪声,又不使图像边缘轮廓和线条变模糊,这就是研究数字图像平滑处理要追求的目标。

一般情况下,减少噪声的方法可以在空间域进行处理。

可以用中值滤波、非等值加权平均法、高斯平滑等方法来减少噪声。

因此可以采用各种形式的滤波器减少噪声。

本文将对上述方法作一些探讨。

2各种平滑算法原理和实验结果2.1中值滤波中值滤波是指设定一个n乘n的奇数窗口,当窗口在空间域中按逐个像素滑动平移过程中,将窗口内的像素灰度值按大小顺序排列,以中间的一个值(中值)替代窗口中心的像素灰度值。

是一种常用的非线性的空间域图像处理方法。

主要应用去除滤除椒盐噪声、滤除细线条、滤除各种脉冲噪声(即各种大的短暂的正负干扰)。

中值滤波的突出特点是可显著抑制尖脉冲噪声,又不使图像的边缘和细节发生显著退化。

与邻域平均滤波比较,保持边缘的效果更好。

很明显这个点是一个噪声点。

按照中值滤波的方法先排序为:90,52,50,39,38,37,30,25,24,取中值则。

这样点的噪声就去除了。

中值滤波常用的模板形状有矩形、+形、X形形。

矩形常对盐碱噪声处理,+形常对斜线处理,X形常对横线处理。

下面以+形为例说明+形和X形的应用范围。

+形主要对斜线处理,因为在斜线处理中再模板中,噪声的数据最少,在排序时处在首或尾,不会再次污染源数据就是一条斜线噪声,用处理时中值为21,则4的点就去掉了噪声。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1实验目的、要求实验目的:(1)掌握图像滤波的原理与相关方法。

(2)能使用VC++实现若干种图像滤波技术。

实验要求:A部分:(1)使用VC++设计程序:对一幅256级灰度图像,使用邻域平均平滑算法进行滤波。

(2)使用VC++设计程序:对一幅256级灰度图像,使用中值滤波算法进行滤波。

(3)使用VC++设计程序:对一幅256级灰度图像,使用K近邻均值滤波器(KNNF)进行滤波。

B部分:(1)包括A部分全部要求。

(2)使用VC++设计程序:对一幅256级灰度图像,分别使用K近邻中值滤波器(KNNMF)、最小均方差滤波器进行滤波。

(3)使用VC++设计程序:对一幅24位彩色图像,使用矢量中值滤波算法进行滤波。

2实验原理图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。

由于成像系统、传输介质和记录设备等的不完善,数字图像在其形成、传输记录过程中往往会受到多种噪声的污染。

另外,在图像处理的某些环节当输入的像对象并不如预想时也会在结果图像中引入噪声。

这些噪声在图像上常表现为一引起较强视觉效果的孤立象素点或象素块。

一般,噪声信号与要研究的对象不相关它以无用的信息形式出现,扰乱图像的可观测信息。

对于数字图像信号,噪声表为或大或小的极值,这些极值通过加减作用于图像象素的真实灰度值上,在图像造成亮、暗点干扰,极大降低了图像质量,影响图像复原、分割、特征提取、图识别等后继工作的进行。

要构造一种有效抑制噪声的滤波机必须考虑两个基本问题:能有效地去除目标和背景中的噪声,同时能很好地保护图像目标的形状、大小及特定的几何和拓扑结构特征。

彩色图像矢量中值滤波算法:矢量中值滤波器(Vector Median Filter,VMF)是一种基本矢量滤波器。

它的滤波方法是对图像上的每个像素点建立一个以其为中心的滤波窗口(窗口大小为3×3、5×5等),从该滤波窗口中找到一个到其它像素的聚合距离最小的像素,然后将该像素选取为滤波器的输出。

VMF选取的聚合距离是指像素到其他像素的欧几里德距离(Euclidean Distance)之和。

3主要设备、器材硬件环境:AMD A8-4500M 1.90G/4G RAM软件环境:操作系统:WIN7开发工具:Micrsoft Visual C++ 6.04实验步骤及原始数据记录关键代码说明:添加随机噪声:void CDib::AddRandomNoise(){// 是否图像为空if( IsEmpty() ){return;}RGBQUAD rgbQuad1;int i,j;DWORD temp;for(i=0; i<m_lpBMIH->biWidth; i++){for(j=0; j<m_lpBMIH->biHeight; j++){rgbQuad1 = GetPixel(i,j);temp = rand()%30;rgbQuad1.rgbRed = rgbQuad1.rgbRed*226/256 + temp;rgbQuad1.rgbGreen = rgbQuad1.rgbGreen*226/256 + temp;rgbQuad1.rgbBlue = rgbQuad1.rgbBlue*226/256 + temp;SetPixel(i, j, &rgbQuad1);}}}添加椒盐噪声:void CDib::AddSaltNoise(){// 是否图像为空if( IsEmpty() ){return;}RGBQUAD rgbQuad1;int i,j;DWORD temp;for(i=0; i<m_lpBMIH->biWidth; i++){for(j=0; j<m_lpBMIH->biHeight; j++){rgbQuad1 = GetPixel(i,j);temp = rand()%100;if( temp==0 ){rgbQuad1.rgbRed = 0;rgbQuad1.rgbGreen = 0;rgbQuad1.rgbBlue = 0;SetPixel(i, j, &rgbQuad1);}else if( temp==1 ){rgbQuad1.rgbRed = 255;rgbQuad1.rgbGreen = 255;rgbQuad1.rgbBlue = 255;SetPixel(i, j, &rgbQuad1);}}}}邻域平均滤波:void CImageProcessingView::OnEnhanceDenoiseAverage() {// 实验图像平滑256级灰度图像邻域平均滤波// 获得当前文档对象CImageProcessingDoc* pDoc = GetDocument();if( pDoc->m_pDibInit->IsEmpty() ){MessageBox("图像未加载");return;}// 获得图像的基本信息int width = pDoc->m_pDibInit->GetImageWidth();int height = pDoc->m_pDibInit->GetImageHeight();int bitCount = pDoc->m_pDibInit->GetImageBitCount();// 程序只支持处理灰度图像if( bitCount!=8 ){MessageBox("目前只支持256级灰度图像");return;}// 将图像信息复制至m_pDibTestpDoc->m_pDibTest->CloneDib(pDoc->m_pDibInit);// 设置去噪模板,这里使用一个3×3的去噪模板double templateDenoise[100] ={1, 1, 1,1, 2, 1,1, 1, 1};int templateWidth = 3;int templateHeight = 3;int templateElementCnt = templateWidth*templateHeight;double sum1 = 0;// 归一化模板元素的值int i;for(i=0; i<templateElementCnt; i++)sum1 += templateDenoise[i];for(i=0; i<templateElementCnt; i++)templateDenoise[i] = templateDenoise[i]/sum1;// 定义临时变量int j,m,n;BYTE gray;double value1;// 对图像里面的每一个像素进行邻域// 为了方便,这里没有处理边界点for(i=templateWidth/2; i<pDoc->m_pDibInit->m_lpBMIH->biWidth-templateWidth/2; i++){for(j=templateHeight/2;j<pDoc->m_pDibInit->m_lpBMIH->biWidth-templateHeight/2; j++){// 当前的像素点是(i, j) 。

// 计算以(i, j) 为中心,templateWidth为宽度,templateHeight为高度的矩形区域内,个个像素点颜色值的加权和。

// 因为现在处理的是256色灰度图像,所以在RGBQUAD结构中,Red、Green、Blue三个分量的值都肯定是相等的,// 所以只要处理Red分量,算出的结果也适用于Green分量和Blue分量value1 = 0;for(m=0; m<templateWidth; m++){for(n=0; n<templateHeight; n++){gray = pDoc->m_pDibInit->GetGray(i-templateWidth/2+m, j-templateHeight/2+n);value1 += gray * templateDenoise[n*templateWidth+m];}}pDoc->m_pDibTest->SetGray(i, j, value1);}}// 交换指针CDib* pTmpDib = pDoc->m_pDibTest;pDoc->m_pDibTest = pDoc->m_pDibInit;pDoc->m_pDibInit = pTmpDib;// 设置脏标记pDoc->SetModifiedFlag(TRUE);// 更新视图pDoc->UpdateAllViews(NULL);}中值滤波:void CImageProcessingView::OnEnhanceDenoiseMedian(){// 实验图像平滑256级灰度图像中值滤波// 参考CImageProcessingView::OnEnhanceDenoiseAverage()MessageBox("请在这里设计256级灰度图像中值滤波算法");// 获得当前文档对象CImageProcessingDoc* pDoc = GetDocument();if( pDoc->m_pDibInit->IsEmpty() ){MessageBox("图像未加载");return;}// 获得图像的基本信息int width = pDoc->m_pDibInit->GetImageWidth();int height = pDoc->m_pDibInit->GetImageHeight();int bitCount = pDoc->m_pDibInit->GetImageBitCount();// 程序只支持处理灰度图像if( bitCount!=8 ){MessageBox("目前只支持256级灰度图像");return;}// 将图像信息复制至m_pDibTestpDoc->m_pDibTest->CloneDib(pDoc->m_pDibInit);int i,j,m,n;BYTE grays[100];int graysSize = 100;int templateWidth = 3;int templateHeight = 3;int templateElementCnt = templateWidth*templateHeight;BYTE tempByte1;for(i=templateWidth/2; i<pDoc->m_pDibInit->m_lpBMIH->biWidth-templateWidth/2; i++){for(j=templateHeight/2;j<pDoc->m_pDibInit->m_lpBMIH->biWidth-templateHeight/2; j++){memset(grays, 0, graysSize*sizeof(BYTE));for(n=0; n<templateHeight; n++){for(m=0; m<templateWidth; m++){grays[n*templateWidth+m] = pDoc->m_pDibInit->GetGray(i-templateWidth/2+m, j-templateHeight/2+n);}}for(m=0; m<templateElementCnt-1; m++){for(n=m+1; n<templateElementCnt; n++){if( grays[m]>grays[n] ){tempByte1 = grays[m];grays[m] = grays[n];grays[n] = tempByte1;}}}pDoc->m_pDibTest->SetGray(i, j, grays[templateElementCnt/2]);}}// 交换指针CDib* pTmpDib = pDoc->m_pDibTest;pDoc->m_pDibTest = pDoc->m_pDibInit;pDoc->m_pDibInit = pTmpDib;// 设置脏标记pDoc->SetModifiedFlag(TRUE);// 更新视图pDoc->UpdateAllViews(NULL);}K近邻均值滤波:void CImageProcessingView::OnEnhanceDenoiseKNNF(){// 实验图像平滑256级灰度图像KNNF滤波// 参考CImageProcessingView::OnEnhanceDenoiseAverage()MessageBox("请在这里设计256级灰度图像KNNF滤波算法");// 获得当前文档对象CImageProcessingDoc* pDoc = GetDocument();if( pDoc->m_pDibInit->IsEmpty() ){MessageBox("图像未加载");return;}// 获得图像的基本信息int width = pDoc->m_pDibInit->GetImageWidth();int height = pDoc->m_pDibInit->GetImageHeight();int bitCount = pDoc->m_pDibInit->GetImageBitCount();// 程序只支持处理灰度图像if( bitCount!=8 ){MessageBox("目前只支持256级灰度图像");return;}// 将图像信息复制至m_pDibTestpDoc->m_pDibTest->CloneDib(pDoc->m_pDibInit);int i,j,m,n;BYTE grays[100];int graysSize = 100;int templateWidth = 3;int templateHeight = 3;int templateElementCnt = templateWidth*templateHeight;BYTE tempByte1;int kNN = 3;for(i=templateWidth/2; i<pDoc->m_pDibInit->m_lpBMIH->biWidth-templateWidth/2; i++){for(j=templateHeight/2;j<pDoc->m_pDibInit->m_lpBMIH->biWidth-templateHeight/2; j++){memset(grays, 0, graysSize*sizeof(BYTE));for(n=0; n<templateHeight; n++){for(m=0; m<templateWidth; m++){grays[n*templateWidth+m] = pDoc->m_pDibInit->GetGray(i-templateWidth/2+m, j-templateHeight/2+n);}}BYTE centerGray = pDoc->m_pDibInit->GetGray(i, j);for(m=0; m<templateElementCnt-1; m++){for(n=m+1; n<templateElementCnt; n++){if( abs(grays[m]-centerGray) > abs(grays[n]-centerGray) ){tempByte1 = grays[m];grays[m] = grays[n];grays[n] = tempByte1;}}}double avgGray = 0;for(m=0; m<kNN; m++){avgGray += grays[m];}avgGray /= kNN;pDoc->m_pDibTest->SetGray(i, j, avgGray);}}// 交换指针CDib* pTmpDib = pDoc->m_pDibTest;pDoc->m_pDibTest = pDoc->m_pDibInit;pDoc->m_pDibInit = pTmpDib;// 设置脏标记pDoc->SetModifiedFlag(TRUE);// 更新视图pDoc->UpdateAllViews(NULL);}K近邻均值滤波:void CImageProcessingView::OnEnhanceDenoiseKNNF(){// 实验图像平滑256级灰度图像KNNF滤波// 参考CImageProcessingView::OnEnhanceDenoiseAverage()MessageBox("请在这里设计256级灰度图像KNNF滤波算法");// 获得当前文档对象CImageProcessingDoc* pDoc = GetDocument();if( pDoc->m_pDibInit->IsEmpty() ){MessageBox("图像未加载");return;}// 获得图像的基本信息int width = pDoc->m_pDibInit->GetImageWidth();int height = pDoc->m_pDibInit->GetImageHeight();int bitCount = pDoc->m_pDibInit->GetImageBitCount();// 程序只支持处理灰度图像if( bitCount!=8 ){MessageBox("目前只支持256级灰度图像");return;}// 将图像信息复制至m_pDibTestpDoc->m_pDibTest->CloneDib(pDoc->m_pDibInit);int i,j,m,n;BYTE grays[100];int graysSize = 100;int templateWidth = 3;int templateHeight = 3;int templateElementCnt = templateWidth*templateHeight;BYTE tempByte1;int kNN = 3;for(i=templateWidth/2; i<pDoc->m_pDibInit->m_lpBMIH->biWidth-templateWidth/2; i++){for(j=templateHeight/2;j<pDoc->m_pDibInit->m_lpBMIH->biWidth-templateHeight/2; j++){memset(grays, 0, graysSize*sizeof(BYTE));for(n=0; n<templateHeight; n++){for(m=0; m<templateWidth; m++){grays[n*templateWidth+m] = pDoc->m_pDibInit->GetGray(i-templateWidth/2+m, j-templateHeight/2+n);}}BYTE centerGray = pDoc->m_pDibInit->GetGray(i, j);for(m=0; m<templateElementCnt-1; m++){for(n=m+1; n<templateElementCnt; n++){if( abs(grays[m]-centerGray) > abs(grays[n]-centerGray) ){tempByte1 = grays[m];grays[m] = grays[n];grays[n] = tempByte1;}}}double avgGray = 0;for(m=0; m<kNN; m++){avgGray += grays[m];}avgGray /= kNN;pDoc->m_pDibTest->SetGray(i, j, avgGray);}}// 交换指针CDib* pTmpDib = pDoc->m_pDibTest;pDoc->m_pDibTest = pDoc->m_pDibInit;pDoc->m_pDibInit = pTmpDib;// 设置脏标记pDoc->SetModifiedFlag(TRUE);// 更新视图pDoc->UpdateAllViews(NULL);}实验数据记录:实验图像:实验图像说明:左上:添加椒盐噪声图像中上:对椒盐噪声进行邻域平均滤波后右上:对椒盐噪声进行K近邻均值滤波左下:添加随机噪声图像中下:对随机噪声进行中值滤波后。

相关文档
最新文档