数字图像处理实验_阈值分割算法
数字图像处理实验报告——图像分割实验

实验报告课程名称数字图像处理导论专业班级_______________姓名 _______________学号_______________电气与信息学院与谐勤奋求就是创新一.实验目得1.理解图像分割得基本概念;2.理解图像边缘提取得基本概念;3.掌握进行边缘提取得基本方法;4.掌握用阈值法进行图像分割得基本方法.二。
实验内容1.分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。
比较三种算子处理得不同之处;2.设计一个检测图1中边缘得程序,要求结果类似图2,并附原理说明。
3.任选一种阈值法进行图像分割、图1 图2三.实验具体实现1.分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。
比较三种算子处理得不同之处;I=imread(’mri、tif');imshow(I)BW1=edge(I,’roberts’);figure ,imshow(BW1),title(’用Roberts算子’)BW2=edge(I,’sobel’);figure,imshow(BW2),title(’用Sobel算子 ')BW3=edge(I,’log’);figure,imshow(BW3),title(’用拉普拉斯高斯算子’)比较提取边缘得效果可以瞧出,sober算子就是一种微分算子,对边缘得定位较精确,但就是会漏去一些边缘细节.而Laplacian—Gaussian算子就是一种二阶边缘检测方法,它通过寻找图象灰度值中二阶过零点来检测边缘并将边缘提取出来,边缘得细节比较丰富。
通过比较可以瞧出Laplacian-Gaussian算子比sober算子边缘更完整,效果更好。
2.设计一个检测图1中边缘得程序,要求结果类似图2,并附原理说明.i=imread('m83、tif’);subplot(1,2,1);imhist(i);title('原始图像直方图');thread=130/255;subplot(1,2,2);i3=im2bw(i,thread);imshow(i3);title('分割结果’);3.任选一种阈值法进行图像分割、i=imread('trees、tif’);subplot(1,2,1);imhist(i);title('原始图像直方图’);thread=100/255;subplot(1,2,2);i3=im2bw(i,thread);imshow(i3);title('分割结果’)1、分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。
图像分割处理实验报告

一、实验目的:1.学会对图像进行二值化处理和直方图均衡化处理2.进一步了解数字图像处理的知识以及matlab软件的使用3.掌握基本的查资料方法二、实验内容把这幅图像分成同样大小的10幅人脸图片然后分别对第一行5幅人脸图像的第3 第4 第5 第二行5幅人脸图像的第1 第5 进行如下处理:1.进行大津法阈值分割的二值化处理2.进行直方图均衡化处理三、实验具体代码以及结果1.实验代码%clcclearsrc_path='D:\histogram matching.bmp'; %原始图片路径dst_path='D:\picture\'; %分割图片后保存路径mkdir(dst_path);A = imread(src_path); %读入原始图片[m,n,l] = size(A); %获得尺寸for i = 1:2for j = 1:5m_start=1+(i-1)*fix(m/2);m_end=i*fix(m/2);n_start=1+(j-1)*fix(n/5);n_end=j*fix(n/5);AA=A(m_start:m_end,n_start:n_end,:); %将每块读入矩阵imwrite(AA,[dst_path num2str(i) '-' num2str(j) '.jpg'],'jpg'); %保存每块图片endendcd 'D:\pic'x1=imread('1-3.jpg');%%%%%%%%%目标读取图像x2=imread('1-4.jpg');x3=imread('1-5.jpg');x4=imread('2-1.jpg');x5=imread('2-5.jpg');% matlab 自带的自动确定阈值的方法level1=graythresh(x1);level2=graythresh(x2);level3=graythresh(x3);level4=graythresh(x4);level5=graythresh(x5);%用得到的阈值直接对图像进行二值化处理并显示BW1=im2bw(x1,level1);BW2=im2bw(x2,level2);BW3=im2bw(x3,level3);BW4=im2bw(x4,level4);BW5=im2bw(x5,level5);figure(1),imshow(BW1);figure(2),imshow(BW2);figure(3),imshow(BW3);figure(4),imshow(BW4);figure(5),imshow(BW5);%直方图均衡化处理%%%%%%%%%%调用直方图均衡化函数 histeq()%%%%%均衡化处理后的灰度级直方图分布figure(6),imhist(histeq(rgb2gray(x1))); figure(7),imhist(histeq(rgb2gray(x2))); figure(8),imhist(histeq(rgb2gray(x3))); figure(9),imhist(histeq(rgb2gray(x4))); figure(10),imhist(histeq(rgb2gray(x5)));%%%均衡化处理后的图像%%%%%%figure(11),imshow(histeq(rgb2gray(x1))); figure(12),imshow(histeq(rgb2gray(x2))); figure(13),imshow(histeq(rgb2gray(x3))); figure(14),imshow(histeq(rgb2gray(x4))); figure(15),imshow(histeq(rgb2gray(x5)));。
数字图像处理报告(含anaconda配置python)

课程名称现代数字图像处理与分析教师姓名姓名学号专业所在院系计算机学院类别: A.博士B.硕士 C.进修生日期: 2019年5月29 日评语注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。
计算遥感图中长江的流域面积一、前言数字图像处理是一种通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。
数字图像树立技术目前已经在各个领域上都有了比较广泛的应用。
下文主要讲了的是通过图像分割算法将遥感图中长江的流域面积分割出来,再计算其流域面积。
分辨率为30m的遥感图如图1所示:图1 遥感图二、常用的图像分割算法图像分割方法的研究一直受到很多学者的关注,四十多年里,图像分割的研究一直受到人们高度的重视。
迄今为止。
研究者们已经提出了上千种各种类型的分割算法,而且近年来每年都有上百篇相关研究成果发表。
但是,现有的方法多是为特定应用设计的,有很大的针对性和局限性,对图像分割的研究还缺乏一个统一的理论体系。
Fu和Mui从细胞学图像处理的角度将图像分割技术分为三大类:特征阀值或聚类、边缘检测和区域提取。
一个更加细致的分类里,Haraliek and Shapiro将所有算法分为6类:测度空间导向的空间聚类、单一连接区域生长策略、混合连接区域生长策略、中心连接区域生长策略、空间聚类策略和分裂合并策略。
依据算法所使用的技术或针对的图像,Pal and Pal也把图像分割算法分成了6类:阀值分割、像素分割、深度图像分割、彩色图像分割、边缘检测和基于模糊集的方法。
但是,该分类方法中,各个类别的内容是有重叠的。
为了涵盖不断涌现的新方法,有的研究者将图像分割算法分类以下类:并行边界分割技术、串行边界分割技术、并行区域分割技术、串行区域分割技术、结合特定理论工具的分割技术和特殊图像分割技术。
而在较近的一篇综述中,更有学者将图像分割简单的分成基于数据驱动的分割和基于模型驱动的分割两类。
阈值分割学习.pptx

o )
P
P1(Z)
E1(Zt)
P2(Z) E2(Zt)
Zt
Z
从前面可以看出,假如:
① 图像的目标物和背景象素灰度级概率呈正态分布,
② 且偏差相等(σ12 = σ22), ③ 背景和目标物象素总数也相等(θ=1/2),
则这个图像的最佳分割阈值就是目标物和背景象素灰度级
两个均值的平均。
第16页/共25页
Otsu法是一种使类间方差最大的自动确定阈值的方法,该方法具有 简单、处理速度快的特点。
Otsu法阈值分割的基本思想是:
设图像像素为N,灰度范围为[0,L-1],对应灰度级i的像
素为ni,概率为: pi ni / N
选定阈值T把图像中的像素分成两个灰度级C0和C1,C0由灰度值在
[0,T]之间的像素组成,C1由灰度值在[T+1,L-1]之间的像素组成,由
T
第9页/共25页
2.迭代阈值选择
迭代阈值选择方法的基本思想是:
开始时选择一个阈值作为初始估计值,然后按照某种策略不断的改进 这一估计值,直到满足给定的准则为止。 迭代阈值选择方法的步骤:
1. 选择一个初始估计值T(建议初始估计值为图像中最大亮度值和最 小亮度值的中间值)。
2. 使用T分割图像。这会产生两组像素:亮度值≥T的所有像素组成 的G1,亮度值<T的所有像素组成的G2。
灰度分布概率,整个图像的均值为:T
L 1
i pi
i0
C0和C1的均值为:0
T i0
ipi
0
1Байду номын сангаас
L1 ipi
iT 1
1
其中:
T
0 pi i0
L1
图像阈值分割方法的研究

目录摘要 (1)Abstract (2)前言 (3)第一章绪论 (4)1.1 图像阈值分割的背景及研究意义 (4)1.2 图像阈值分割国内外研究现状 (5)1.3论文研究的主要内容及各章结构安排 (5)第二章图像分割方法综述 (6)2.1图像分割技术的基本概念 (6)2.2.图像分割的基本分类 (6)2.2.1 边缘检测分割法 (7)2.2.2 阈值分割法 (8)2.2.3 区域分割法 (8)第三章图像阈值分割技术 (8)3.1 迭代法 (9)3.2 最大类间方差法 (11)3.3最小误差法 (13)3.4 最大熵法 (16)第四章图像分割算法的评价 (19)4.1 Dice系数 (19)4.2 Hausdorff距离 (20)4.3 Jaccard相似系数 (21)4.4 准确率、召回率 (21)4.5 分割效果分析 (21)第五章结论 (25)参考文献 (26)摘要图像分割是一个十分基础却十分重要的问题,它是数字图像处理和数字图像分析之间的关键桥梁,图像分割效果的好坏与后续一系列图像分析问题紧密相关。
所以,图像分割技术在整个数字图像处理中的地位十分重要。
本文首先对图像分割的有关理论做出简洁的介绍,重点探究图像阈值分割技术。
将对几种比较常见的阈值分割算法进行研究,主要是迭代法、最大类间方差法、最大熵法、最小误差法,并且对特定图像在MATLAB环境中进行了仿真测试。
本文采纳了一种图像分割评价标准,综合了Dice系数、Hausdorff距离、Jaccard相似系数、准确率、召回率等指标。
将手动分割的图像作为金标准,与算法分割的图像进行比较,在MATLAB 环境下给出算法图像与金标准图像的相似度,从而可以在评价各图像阈值分割算法上具有更强的说服力。
从最终的试验结果和参数分析可以看出,相比较其他三种算法分割方法,最大类间方差法不仅可以将图像中的背景和目标分割开来,而且对于图像细节的处理也比较好,并且在处理不同图像的图像时也具有良好的稳定性。
《数字图像处理》实验教案

《数字图像处理》实验教案一、实验目的1. 使学生了解和掌握数字图像处理的基本概念和基本算法。
2. 培养学生运用数字图像处理技术解决实际问题的能力。
3. 提高学生使用相关软件工具进行数字图像处理操作的技能。
二、实验内容1. 图像读取与显示:学习如何使用相关软件工具读取和显示数字图像。
2. 图像基本操作:学习图像的旋转、缩放、翻转等基本操作。
3. 图像滤波:学习使用不同类型的滤波器进行图像去噪和增强。
4. 图像分割:学习利用阈值分割、区域增长等方法对图像进行分割。
5. 图像特征提取:学习提取图像的边缘、角点等特征信息。
三、实验环境1. 操作系统:Windows或Linux。
2. 编程语言:Python或MATLAB。
3. 图像处理软件:OpenCV、ImageJ或MATLAB。
四、实验步骤1. 打开相关软件工具,导入图像。
2. 学习并实践图像的基本操作,如旋转、缩放、翻转等。
3. 学习并实践图像滤波算法,如均值滤波、中值滤波等。
4. 学习并实践图像分割算法,如全局阈值分割、局部阈值分割等。
5. 学习并实践图像特征提取算法,如Canny边缘检测算法等。
五、实验要求1. 每位学生需独立完成实验,并在实验报告中详细描述实验过程和结果。
2. 实验报告需包括实验目的、实验内容、实验步骤、实验结果和实验总结。
3. 实验结果要求清晰显示每个步骤的操作和效果。
4. 实验总结部分需对本次实验的学习内容进行归纳和总结,并提出改进意见。
六、实验注意事项1. 实验前请确保掌握相关软件工具的基本使用方法。
3. 在进行图像操作时,请尽量使用向量或数组进行处理,避免使用低效的循环结构。
4. 实验过程中如需保存中间结果,请使用合适的文件格式,如PNG、JPG等。
5. 请合理安排实验时间,确保实验报告的质量和按时提交。
七、实验评价1. 实验报告的评价:评价学生的实验报告内容是否完整、实验结果是否清晰、实验总结是否到位。
2. 实验操作的评价:评价学生在实验过程中对图像处理算法的理解和运用能力。
阈值分割原理

阈值分割原理阈值分割是一种数字图像处理中常用的像素分割方法,其原理主要是基于图像灰度值的统计特性。
其思路是分别统计图像中不同灰度级别的像素个数,通过确定一个灰度值作为阈值,将图像中的像素分成两类,进而实现对图像的分割。
阈值分割的基本原理是通过将图像灰度值分为两个区间,从而将灰度低于或高于阈值的像素分为两类,从而实现图像的二值化处理。
本文将对阈值分割的基本原理、常用的实现方法以及应用进行全面的介绍。
阈值分割的基本原理阈值分割的基本原理是将图像中的像素分为两个部分,一部分为灰度值大于等于阈值的像素,另一部分为灰度值小于阈值的像素。
此时,我们可以将分割出来的灰度值较低的像素赋值为0,灰度值较高的像素赋值为1,从而将其转化为二进制图像。
这种方法通常用于物体检测、图像分割、OCR等领域,其中图像分割是其中应用最为广泛的领域之一。
在将图像进行阈值分割时,需要找到一个合适的阈值。
阈值可以是任何一个位于图像灰度值范围之内的值。
阈值分割方法需要根据具体的场景进行灰度值的筛选,通常可以选择采用迭代法、聚类法、最大间隔法和形态学方法等实现。
1. 迭代法迭代法通常是一种较为常见的方法。
这种方法的基本思路是:先在图像的灰度值范围内随机选取一个阈值,然后对目标二值化图像进行处理,将灰度大于或等于该阈值的像素设为前景像素(白色),将小于该阈值的像素设为背景像素(黑色)。
接着,可以计算出前景和背景的平均灰度值,将其作为新的阈值。
将新阈值作为该算法的输入,重复执行该算法,直到图像中的前景像素和背景像素稳定不变为止。
2. 聚类法聚类法是一种常用的阈值寻找方法。
该方法基于聚类分析的思想,将图像中的像素分为多个簇。
这些簇是按照图像灰度值进行排序的,每个簇的中心都对应一种不同的灰度值。
在这种情况下,我们可以寻找显著区分不同灰度值区间的簇,以确定阈值。
3. 最大间隔法最大间隔法是一种基于统计学原理的方法,它可以有效地找到分离前景像素和背景像素的最佳阈值。
实验报告8-1

实验报告实验名称图像分割课程名称数字图像处理及MATLAB实现专业:通信工程班级:09秋2班学生姓名:杨滨嘉薛靖阳婷学号:090322170903221509032214同组人:指导教师: 刘伟实验日期: 成绩:实验1:直方图阈值法实验实验内容利用直方图阈值法对图像进行分割实验原理利用灰度阈值T对物体面积进行计算的公式是:⎰∞=TdDDHA)(如果阈值对应于直方图的谷,阈值从T增加到T+ΔT只会引起面积略微减少,因此,把阈值设在直方图的谷,可以把阈值选择中的错误对面积测量的影响降低到最低。
实验方法及程序1.完成基本实验内容2.改变阈值的大小,选择最合适的阈值进行图像分割I=imread('cameraman.tif');figure;subplot(2,2,1);imshow(I);title('灰度图像')axis([25,260,25,260]);grid on;axis on;[m,n]=size(I);GP=zeros(1,256);for k=0:255GP(k+1)=length(find(I==k))/(m*n); endsubplot(2,2,2),bar(0:255,GP,'g')title('灰度直方图')xlabel('灰度值')ylabel('出现概率')I1=im2bw(I,100/255);subplot(2,2,3),imshow(I1);title('阈值100的分割图像')axis([25,260,25,260]);grid on;axis on;I2=im2bw(I,160/255);subplot(2,2,4),imshow(I2);title('阈值160的分割图像')axis([25,260,25,260]);grid on;axis on;实验结果 (附图)灰度图像5010015020025050100150200250-100010*******00.010.020.03灰度直方图灰度值出现概率阈值100的分割图像5010015020025050100150200250阈值160的分割图像5010015020025050100150200250结果分析1.分析阈值不同对图像分割的影响当使用阈值规则进行图像分割时,所有灰度值大于或等于某阈值的像素都被判属于物体,所有灰度值小于该阈值的像素被排除在物体之外。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数字图像处理》实验9.编写程序,实现阈值分割算法.%9.编写程序,实现阈值分割算法.%这段代码的想法是通过相邻两个像素的平均值的比较来确定阈值的选取。
%通过f(i-1,j-1),f(i,j),f(x,+1,j+1)这三个两两相邻的像素的平均值来比较。
%若两个平均值的差值小于某一个指定的值,这取这个平均值作为新的阈值。
%这样可以把图像中像素比较平缓的部分和像素差别比较大的部分分割开来。
clear;f = imread('text.jpg');f=rgb2gray(f);f = im2double(f);g=f;[m,n] = size(f);x=0.1;%x作为判断的值,两个平均值的差不小于x;d = false;while~dfori=2:m-1%为确保f(i,j)的取值在原图的范围内需要保证的范围。
forj=2:n-1t = (f(i-1,j-1)+f(i,j))/2;%求三个两两相邻的像素点的像素的平均值t1 =(f(i,j)+f(i+1,j+1))/2;d = abs(t1-t)<x;%比较这两个平均值的大小,若两个平均值的差值小于xt1 =(t+t1)/2;%则取这两个值的平均值作为新的阈值;endendendb=im2bw(f,t1);%为方便观察将灰度图像转换成黑白二值图像imshow(b);figure,imshow(g);2.编写程序,实现图像的实数倍放大%放大基于像素放大%图像放大,比如600*600的图像放大到800*800,那么就比原来多了200*200行,%那么这200*200行如果没有进行插值填充,那么就会出现黑白点,以下的代码操作结果就是%这样的。
%以下代码的大概想法是:新建一个矩阵,大小与原图像相同,然后对原图像的每个像素进行放%大%放大的倍数为X。
为了确保图像像素为整数,故使用round函数取整a=imread('text.jpg');imshow(a);b=size(a);%生成一个大小与a相同的矩阵原图大小为199*243;x=2;%放大倍数但这个倍数的大小不能<2,因为大于二之后round %(i/x)的值就会为0.fori=1:1:round(x*199);%round取整,取最近的整数;i的取值从1开始,以x*199%为终点,以1为步长增长。
forj=1:1:round(x*243);%则i的取值范围为1到199*x中的整数值,j的取值%为1到243*x的整数值b(i,j)=a(round(i/x),round(j/x));%将a中i n/x行,j/x的整数列的值%赋给b的i 行j列。
endendfigure,imshow(b);3.编写程序,对图象进行中值滤波,并与实现相同功能的Matlab函数进行运算速度比较.%%自编的中值滤波函数。
%以下代码的主要思想及步骤是:设置一个滤波模版大小为[7,7]。
然后从f的(i,j)开始取出一个大小为[7,7]模版;%计算模版中值并将模版各元素的中值赋给模版中心位置的元素。
%实验中我用了3*3、5*5、7*7三个大小的模版去做测试,我发现3*3的模版中值滤波后的效%果没有5*5、7*7的模版的滤波效果那么好。
%但7*7的模版效果有点过了。
在边界的地方会出现斑点。
%而且这个程序运行的时间明显感觉到比直接用中值滤波函数medifilt2的时间要长。
f=imread('Blue hills.jpg');f = f(:,:,1);g = imnoise(f,'salt & pepper',0.08);%%这部分是自编的中值滤波函数。
首先取出一个模板,将该模板转换成一个行矩阵,利用median函数取矩阵的中值。
%然后将该中值赋值到模板的中心位置。
其他未被赋值的元素则用原来的值填充。
%如果这个步骤的话,最后结果出来会是一个有黑白点的图片。
n=7;%n的值即为模版的大小;[x,y]=size(g);%取原图像的行数列数g1=double(g);g2=g1;fori=1:x-n+1%滤波范围forj=1:y-n+1c=g1(i:i+(n-1),j:j+(n-1));%取出x1中从(i,j)开始的n行n列元素,即模板d=c(1,:);%是c矩阵的第一行for u=2:n %第二到第三行d =[d,c(u,:)];%将c矩阵变为一个行矩阵endmm=median(d);%mm是中值median 函数用来求行矩阵e的中值;g2(i+(n-1)/2,j+(n-1)/2)=mm;%将模板各元素的中值赋给模板中心位置的元素endendY = uint8(g2);%其他未被赋值的元素则用原来的值填充.imshow(Y);%显示自己编程运行的中值滤波figure,imshow(g);6.编写程序,对图像进行局部直方图均衡化,并与全局直方图均衡化结果进行比较.%前面部分的全局直方图均衡化是直接利用书本的函数来实现的%后半部分对图像进行分割,并对分割后的一个图像做直方图均衡化。
%我对于局部图像的理解是在原图像中取出一部分像素,%因此就要对取出部分像素之外的像素赋值为0。
%从而得到局部图像,再对该图像做均衡化处理。
%局部图像均衡化处理与全局图像均衡化处理的差别取决于x的值%如果x的值取得比较大,大于原图像的像素点,那么局部图象则与原图像差别不大clear;A=imread('4.png');%---------全局直方图均衡化--------------------f=A(:,:,1);%显示A的色度分量g=histeq(f);%对f做直方图均衡化处理imshow(g);title('对原始图像均衡化');%--------局部直方图均衡化---------------------------%对一个图像进行分割%分割后的图像进行直方图均衡化处理x = 390;%x为任意合适的值。
用于对图像分割[m,n]=size(f);%取f矩阵的行数和列数f=double(f);C=zeros(m,n);%生成一个m行n列的矩阵for i=1:m %i的取值从1到m,for j=1:n %j的取值从j到nif f(i,j)>x %对图像进行分割C(i,j)=0;%像素大于x的将像素值改为0,else%其余的像素点则用原来的像素值C(i,j)=f(i,j);endendendfigure,imshow(mat2gray(C));%mat2gray对C做归一化处理。
h1=histeq(mat2gray(C));%对归一化后的图像做均衡化处理figure,imshow(h1)title('对分割后图像做均衡化');7.编写程序,实现彩色图像的中值滤波增强.%7.编写程序,实现彩色图像的中值滤波增强.%对彩色图像进行中值滤波,思路是分别对R、G、B三幅图像进行中值滤波,%分别滤波完成之后再用cat函数将三幅图像连接起来,则可以得到彩色图像的中值滤波函数。
%我是每幅彩色分量图像做一次中值滤波,因为不知道怎么去做这三幅图像的一个循环,所以就相当于三幅图像复制了一份中值滤波的代码。
%其中中值滤布实现部分的代码是自己编程的一段中值滤波代码。
clear;f=imread('Blue hills.jpg');f = uint8(f);R=f(:,:,1);%提取R分量G=f(:,:,2);%提取G分量B=f(:,:,3);%提取G分量subplot(2,3,1),imshow(R);subplot(2,3,2),imshow(G);subplot(2,3,3),imshow(B);%-----------对R分量图像进行中值滤波处理------------------n=7;%n的值即为模版的大小;[x,y]=size(R);%取原图像的行数列数R1=double(R);R2=R1;fori=1:x-n+1%滤波范围forj=1:y-n+1c=R1(i:i+(n-1),j:j+(n-1));%取出x1中从(i,j)开始的n行n列元素,即模板d=c(1,:);%是c矩阵的第一行for u=2:n %第二到第三行d =[d,c(u,:)];%将c矩阵变为一个行矩阵endmm=median(d);%mm是中值median 函数用来求行矩阵e的中值;R2(i+(n-1)/2,j+(n-1)/2)=mm;%将模板各元素的中值赋给模板中心位置的元素endendY1 = uint8(R2);%其他未被赋值的元素则用原来的值填充.%-------------对G分量图像进行中值滤波----------------------------------n=7;%n的值即为模版的大小;[x,y]=size(G);%取原图像的行数列数B1=double(G);B2=B1;fori=1:x-n+1%滤波范围forj=1:y-n+1c=B1(i:i+(n-1),j:j+(n-1));%取出x1中从(i,j)开始的n行n列元素,即模板d=c(1,:);%是c矩阵的第一行for u=2:n %第二到第三行d =[d,c(u,:)];%将c矩阵变为一个行矩阵endmm=median(d);%mm是中值median 函数用来求行矩阵e的中值;B2(i+(n-1)/2,j+(n-1)/2)=mm;%将模板各元素的中值赋给模板中心位置的元素endendY2 = uint8(B2);%其他未被赋值的元素则用原来的值填充.。