四点平滑、八点平滑、中值滤波、直方图均匀化、线性变换

合集下载

图像处理-中值滤波

图像处理-中值滤波

图像处理-中值滤波1、滤波滤波(Wave filtering)是将信号中特定波段频率滤除的操作,是抑制和防⽌⼲扰的⼀项重要措施。

在图像处理中,滤波是图像预处理的⼀种。

图像处理中滤波将信号中特定的波段频率滤除,从⽽保留所需要的波段频率信号。

2、滤波的作⽤(1)消除图像中混⼊的噪声对应的是低通滤波,噪声在图像中⼀般是⾼频信号。

(2)为图像识别抽取出图像特征这⾥的特征⼀般为边缘纹理的特征,对应的是⾼通滤波,图像中边缘和纹理细节是⾼频信号。

3、滤波的分类图像中滤波算法的分类有很多,可以分为线性滤波和⾮线性滤波,可以分为相关滤波和卷积滤波,还可以分为⾼通滤波和低通滤波,空间滤波和频域滤波。

3.1线性滤波⽤于时变输⼊信号的线性运算,在图像处理中可以这么理解,对于输⼊的信号(即要处理的图像),进⾏的是线性的运算,得出的结果作为输出图像。

线性滤波的包含⽅框滤波、均值滤波、⾼斯滤波、拉普拉斯滤波、sobel算⼦等。

3.2⾮线性滤波输出的信号响应是由输⼊经过⾮线性的运算得到的。

⽐如典型的中值滤波,就是取像素点邻域的中值作为像素的的响应输出。

⾮线性滤波包含中值滤波和双边滤波4、中值滤波中值滤波是基于排序统计理论的⼀种能有效抑制噪声的⾮线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中⼀点的值⽤该点的⼀个邻域中各点值的中值代替,让周围的像素值接近的真实值,从⽽消除孤⽴的噪声点。

⽅法是⽤某种结构的⼆维滑动模板,将板内像素按照像素值的⼤⼩进⾏排序,⽣成单调上升(或下降)的为⼆维数据序列。

⼆维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l∈W)} ,其中,f(x,y),g(x,y)分别为原始图像和处理后图像。

W为⼆维模板,通常为3x3,5x5区域,也可以是不同的的形状,如线状,圆形,⼗字形,圆环形等。

原理图解释:456827569g(x,y)=med{f(x-k,y-l),(k,l∈W)}g =med[4,5,6;8,2,7;5,6,9] = 62、4、5、5、6、6、7、8、9中间的值为66MATLAB程序clcclearclear allclose all%%%对图像做中值滤波处理img = imread('1.png');figure(1)subplot(2,2,1),imshow(img),title('原始图像')%%%将彩⾊图像转灰度图像img_gray = rgb2gray(img);subplot(2,2,2),imshow(img_gray),title('RGB-GRAY灰度图像')%%%加⼊椒盐噪声img_salt=imnoise(img_gray,'salt & pepper',0.3);subplot(2,2,3),imshow(img_salt),title('加⼊椒盐噪声后')%%%系统⾃带的中值滤波系统⾃带的中值滤波输⼊参数为2维图像img_mid=medfilt2(img_salt,[33]);subplot(2,2,4),imshow(img_mid),title('对噪声图像中值滤波后');%%%对彩⾊图像滤波figure(2)subplot(2,2,1),imshow(img),title('原始图像')img_salt=imnoise(img,'salt & pepper',0.3);subplot(2,2,2),imshow(img_salt),title('加⼊椒盐噪声后')img_rgb = img;img_rgb(:,:,1) = medfilt2(img(:,:,1),[33]);img_rgb(:,:,2) = medfilt2(img(:,:,2),[33]);img_rgb(:,:,3) = medfilt2(img(:,:,3),[33]);subplot(2,2,3),imshow(img_rgb),title('加⼊中值滤波后')⾃定义的函数function [ img ] = median_filter( image, m )%----------------------------------------------%中值滤波%输⼊:%image:原图%m:模板的⼤⼩3*3的模板,m=3%输出:%img:中值滤波处理后的图像%----------------------------------------------n = m;[ height, width ] = size(image);x1 = double(image);x2 = x1;for i = 1: height-n+1for j = 1:width-n+1mb = x1( i:(i+n-1), j:(j+n-1) );%获取图像中n*n的矩阵mb = mb(:);%将mb变成向量化,变成⼀个列向量mm = median(mb);%取中间值x2( i+(n-1)/2, j+(n-1)/2 ) = mm;endendimg = uint8(x2);endimg_mid_salt = median_filter( img, 3 );subplot(2,2,4),imshow(img_mid_salt),title('⾃定义中值滤波后')还有⼀种计算中值的⽅法,适合在硬件上实现当我们使⽤3x3窗⼝后获取领域中的9个像素,就需要对9个像素值进⾏排序,为了提⾼排序效率,排序算法思想如图所⽰。

医学图像处理实验报告

医学图像处理实验报告
c、利用预定义函数fspecial命令产生平均(average)滤波器
d、分别对其进行10*10、5*5、2*2的均值滤波;
e、显示原图像和选用不同大小模版处理后的图像。
(3)高斯滤波
a、读入图像;
b、对数字图像进行直方图均衡化处理;
c、选择高斯滤波参数(标准差)sigma为1.6;
d、选择滤波器尺寸为5*5;
i、显示原图像和处理后的图像。
(2)四八领域均值滤波
a、读入图像;
b、转换图像矩阵为双精度型;
c、创建4邻域平均滤波模版[0 1 0; 1 0 1; 0 1 0];
创建8邻域平均滤波模版[1 1 1; 1 0 1; 1 1 1];
d、进行滤波;
e、显示原图像和处理后图像。
(3)巴特沃斯高通滤波
a、读取图像;
e、创建高斯滤波器进行滤波;
f、显示原图像和处理后的图像。
3
(1)同态滤波
a、读入图像;
b、对数字图像进行直方图均衡化处理;
c、转换图像矩阵为双精度型;
d、取对数;
e、对其做傅里叶变换;
f、选择参数,截止频率为10,锐化系数为2, =1.5, =2.0;
g、进行高斯同态滤波;
h、滤波之后进行傅里叶逆变换;
c、显示原图像和经过均衡化处理过的图像;
d、记录和整理实验报告。
(2)中值滤波加直方图均衡化
a、将模板在图中漫游,并将模板中心与图中某个像素位置重合;
b、读取模板下各对应像素的灰度值;
c、将这些灰度值从小到大排成1列;
d、找出这些值中排在中间的1个;
e、将这个中间值赋给对应模板中心位置的像素;
f、中值滤波之后的像素值进行直方图均衡化处理;

数字图像处理期末复习试题3

数字图像处理期末复习试题3

1、数字图像:指由被称作像素的小块区域组成的二维矩阵。

将物理图像行列划分后,每个小块区域称为像素(pixel)。

数字图像处理:指用数字计算机及其它有关数字技术,对图像施加某种运算和处理,从而达到某种预想目的的技术.2、8-连通的定义:对于具有值V的像素p和q ,如果q在集合N8(p)中,则称这两个像素是8-连通的。

3、灰度直方图:指反映一幅图像各灰度级像元出现的频率。

4、中值滤波:指将当前像元的窗口(或领域)中所有像元灰度由小到大进行排序,中间值作为当前像元的输出值。

像素的邻域邻域是指一个像元(x,y)的邻近(周围)形成的像元集合。

即{(x=p,y=q)}p、q为任意整数。

像素的四邻域像素p(x,y)的4-邻域是:(x+1,y),(x-1,y) ,(x,y+1), (x,y-1)三、简答题( 每小题10分,本题共30 分 ):1. 举例说明直方图均衡化的基本步骤。

直方图均衡化是通过灰度变换将一幅图象转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。

直方图均衡化变换:设灰度变换s=f(r)为斜率有限的非减连续可微函数,它将输入图象Ii(x,y)转换为输出图象Io(x,y),输入图象的直方图为Hi(r),输出图象的直方图为Ho(s),则根据直方图的含义,经过灰度变换后对应的小面积元相等:Ho(s)ds=Hi(r)dr直方图修正的例子假设有一幅图像,共有6 4(6 4个象素,8个灰度级,进行直方图均衡化处理。

根据公式可得:s2=0.19+0.25+0.2l=0.65,s3=0.19+0.25+0.2l+0.16=0.8l,s4=0.89,s5=0.95,s6=0.98,s7=1.00由于这里只取8个等间距的灰度级,变换后的s值也只能选择最靠近的一个灰度级的值。

因此,根据上述计算值可近似地选取:S0≈1/7,s 1≈3/7,s2≈5/7,s3≈6/7,s4≈6/7,s5≈1,s6≈l,s7≈1。

图像平滑处理

图像平滑处理

图像平滑处理图像平滑处理是一种常见的图像处理技术,旨在减少图像中的噪声和细节,使图像更加平滑和清晰。

在本文中,我将详细介绍图像平滑处理的原理、方法和应用。

一、原理图像平滑处理的原理是基于图像中像素值的平均化或滤波操作。

通过对图像中的像素进行平均化处理,可以减少噪声的影响,使图像更加平滑。

常见的图像平滑处理方法包括均值滤波、中值滤波和高斯滤波。

1. 均值滤波均值滤波是一种简单而有效的图像平滑处理方法。

它通过计算像素周围邻域的平均值来替代该像素的值。

均值滤波器的大小决定了邻域的大小,较大的滤波器可以平滑更大范围的图像。

2. 中值滤波中值滤波是一种非线性滤波方法,它将像素周围邻域的像素值进行排序,并取中间值作为该像素的值。

中值滤波器对于去除椒盐噪声等离群点非常有效,但对于平滑边缘和细节的效果不如均值滤波。

3. 高斯滤波高斯滤波是一种基于高斯函数的线性平滑方法。

它通过对像素周围邻域进行加权平均来替代该像素的值。

高斯滤波器的权重由高斯函数确定,距离中心像素越远的像素权重越小。

高斯滤波器可以有效平滑图像并保持边缘的清晰度。

二、方法图像平滑处理可以使用各种图像处理软件和编程语言来实现。

以下是一种常见的基于Python的图像平滑处理方法的示例:```pythonimport cv2import numpy as npdef image_smoothing(image, method='gaussian', kernel_size=3):if method == 'mean':smoothed_image = cv2.blur(image, (kernel_size, kernel_size))elif method == 'median':smoothed_image = cv2.medianBlur(image, kernel_size)elif method == 'gaussian':smoothed_image = cv2.GaussianBlur(image, (kernel_size, kernel_size), 0) else:raise ValueError('Invalid smoothing method.')return smoothed_image# 读取图像image = cv2.imread('image.jpg')# 图像平滑处理smoothed_image = image_smoothing(image, method='gaussian', kernel_size=5) # 显示结果cv2.imshow('Original Image', image)cv2.imshow('Smoothed Image', smoothed_image)cv2.waitKey(0)cv2.destroyAllWindows()```以上代码使用OpenCV库实现了图像平滑处理。

均值滤波,高斯滤波,中值滤波

均值滤波,高斯滤波,中值滤波

均值滤波,高斯滤波,中值滤波均值滤波,高斯滤波和中值滤波是数字图像处理中常用的三种平滑滤波技术,用于降低图像噪声和去除图像中的不相关细节。

本文将对这三种滤波方法进行介绍、比较和分析。

一、均值滤波均值滤波是一种简单的平滑滤波方法,它的原理是用滤波窗口内像素的平均值来代替中心像素的值。

具体来说,对于滤波窗口内的每个像素,计算其邻域内所有像素的平均值,然后将结果作为中心像素的值。

这样可以有效地平滑图像并去除高频噪声。

然而,均值滤波的缺点是它不能很好地保留图像的边缘信息,使得图像看起来模糊且失去细节。

二、高斯滤波高斯滤波是一种基于高斯分布的平滑滤波方法,它认为像素点的邻域内的像素值与中心像素点的距离越近,其权重越大。

它的滤波过程是在滤波窗口内,对每个像素点进行加权平均。

加权的权重由高斯函数决定,距离中心像素点越近的像素点的权重越大,距离越远的像素点的权重越小。

通过这种加权平均的方式,可以更好地保留图像的细节和边缘信息,同时有效地去除噪声。

高斯滤波的唯一缺点是计算复杂度较高,特别是对于大型滤波窗口和高分辨率图像来说。

三、中值滤波中值滤波是一种统计滤波方法,它的原理是用滤波窗口内像素的中值来代替中心像素的值。

具体来说,对于滤波窗口内的每个像素,将其邻域内的像素按照大小进行排序,然后将排序后像素的中值作为中心像素的值。

中值滤波对于椒盐噪声和脉冲噪声有很好的去噪效果,能够保持图像的边缘信息,避免了均值滤波和高斯滤波的模糊问题。

然而,中值滤波的缺点是不能去除高斯噪声和高频噪声,因为当滤波窗口内的像素含有这些噪声时,中值滤波会产生失真效果。

比较和分析:三种滤波方法各有优劣,应根据实际需求选择合适的滤波方法。

均值滤波是最简单、计算复杂度最低的方法,在去除高斯噪声和低频噪声方面效果较差,但对边缘信息的保留效果较差。

高斯滤波通过加权平均的方式更好地保留了图像的细节和边缘信息,适用于处理高斯噪声并且具有一定的平滑效果。

中值滤波对于椒盐噪声和脉冲噪声有很好的去噪效果,并保持了图像的边缘信息,但对于高斯噪声和高频噪声则效果较差。

几种平滑处理方法

几种平滑处理方法

⼏种平滑处理⽅法平滑,也可叫滤波,或者合在⼀起叫平滑滤波,平滑滤波是低频增强的空间域滤波技术。

它的⽬的有两类:⼀类是模糊;另⼀类是消除噪⾳。

空间域的平滑滤波⼀般采⽤简单平均法进⾏,就是求邻近像元点的平均亮度值。

邻域的⼤⼩与平滑的效果直接相关,邻域越⼤平滑的效果越好,但邻域过⼤,平滑会使边缘信息损失的越⼤,从⽽使输出的图像变得模糊,因此需合理选择邻域的⼤⼩。

“平滑处理”也称“模糊处理”(blurring),是⼀项简单且使⽤频率很⾼的图像处理⽅法。

平滑处理的⽤途很多,但最常见的是⽤来减少图像上的噪声或者失真。

降低图像分辨率时,平滑处理是很重要的。

#1,均值滤波【Simple Blurring】均值滤波是典型的线性滤波算法,它是指在图像上对⽬标像素给⼀个模板,该模板包括了其周围的临近像素(以⽬标象素为中⼼的周围8个像素,构成⼀个滤波模板,即去掉⽬标像素本⾝),再⽤模板中的全体像素的平均值来代替原来像素值。

对噪声图像特别是有⼤的孤⽴点的图像⾮常敏感,即使有极少数量点存在较⼤差异也会导致平均值的明显波动。

#2,中值滤波【Median Blurring】中值滤波法是⼀种⾮线性平滑技术,它将每⼀像素点的灰度值设置为该点某邻域窗⼝内的所有像素点灰度值的中值,也就是将中⼼像素的值⽤所有像素值的中间值(不是平均值)替换。

中值滤波通过选择中间值避免图像孤⽴噪声点的影响,对脉冲噪声有良好的滤除作⽤,特别是在滤除噪声的同时,能够保护信号的边缘,使之不被模糊。

这些优良特性是线性滤波⽅法所不具有的。

此外,中值滤波的算法⽐较简单,也易于⽤硬件实现。

所以,中值滤波⽅法⼀经提出后,便在数字信号处理领得到重要的应⽤。

#3,⾼斯滤波【Gaussian Blurring】⾼斯滤波是⼀种线性平滑滤波,适⽤于消除⾼斯噪声,⼴泛应⽤于图像处理的减噪过程。

通俗的讲,⾼斯滤波就是对整幅图像进⾏加权平均的过程,每⼀个像素点的值,都由其本⾝和邻域内的其他像素值经过加权平均后得到。

线性变换、非线性变换、直方图均衡、直方图匹配

线性变换、非线性变换、直方图均衡、直方图匹配

线性变换、非线性变换、直方图均衡、直方图匹配2 图像滤波图像卷积运算平滑:均值平滑、中值滤波平滑锐化:梯度检测、边缘检测、定向检测3 彩色增强单波段彩色变换和多波段彩色合成4图像运算差值运算:两幅同样行、列数的图像,对应像元的亮度值相减就是差值运算。

比值运算:两幅相同行列数的图像, 对应像元的亮度值相除就是比值运算。

5多光谱变换其变换的本质:对遥感图像实行线性变换,使光谱空间的坐标按一定规律进行旋转。

K-L变换K-T变换1.教学时数2学时2.教学方式(手段)讲授法、演示法3.师生活动设计教师提问,学生回答。

4.讲课提纲、板书设计采用多媒体教学5.教学内容第五节遥感数据的融合图像融合是指把多源遥感数据按照一定的规则或算法进行处理, 生成一幅具有新的空间、光谱和时间特征的合成图像。

图像融合并不是数据间的简单复合, 其目的是: 突出有用信息, 消除或抑制无关信息; 增加解泽的可靠性, 减少识别目标的模糊性和不确定性, 为快捷、准确地识别和提取目标信息奠定基础。

1 多源遥感数据的融合多源遥感数据融合的基本过程包括图像选择、图像配准和图像融合三个关键环节。

图像融合时,需根据融合图像的类型、特点以及融合的目的,选择恰当的融合方法。

常用的融合方法主要有:基于加减乘除运算的融合,基于相关分析、主成分变换、小波分析以及基于IHS变换的融合等。

2 遥感数据与地学信息的融合地学信息与遥感数据的结合和相互印证, 则有助于对遥感图像特征的综合分析, 提高图像解译的科学性。

(1) 地学信息的预处理地学信息主要指各种专题地图和专题数据, 前者包括土地利用图、植被图、土壤图、等值线图等, 后者包括各种采样分析数据、野外测量数据、调查统计数据、 DEM数据等。

地学信息的预处理包括专题地图的数字化和专题数据的图像化。

地学信息的预处理实现了地学信息到数字图像的转换, 接下来就可以进行空间配准和融合处理了。

空间配准包括地学数据之间及地学与遥感数据之间的空间配准, 即运用图像处理技术, 将不同地学数据集配准到统一的地理坐标系统上, 形成以图像为基础的综合数据库。

数字图像处理知识点总结

数字图像处理知识点总结

数字图像处理知识点总结第一章导论1.图像:对客观对象的一种相似性的生动性的描述或写真。

2.图像分类:按可见性(可见图像、不可见图像),按波段数(单波段、多波段、超波段),按空间坐标和亮度的连续性(模拟和数字)。

3.图像处理:对图像进行一系列操作,以到达预期目的的技术。

4.图像处理三个层次:狭义图像处理、图像分析和图像理解.5.图像处理五个模块:采集、显示、存储、通信、处理和分析.第二章数字图像处理的基本概念6.模拟图像的表示:f(x,y)=i(x,y)×r(x,y),照度分量0< i(x,y)〈∞ ,反射分量0 <r(x,y)<1。

7.图像数字化:将一幅画面转化成计算机能处理的形式-—数字图像的过程。

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

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

8.将空间上连续的图像变换成离散点的操作称为采样.采样间隔和采样孔径的大小是两个很重要的参数。

采样方式:有缝、无缝和重叠.9.将像素灰度转换成离散的整数值的过程叫量化.10.表示像素明暗程度的整数称为像素的灰度级(或灰度值或灰度)。

11.数字图像根据灰度级数的差异可分为:黑白图像、灰度图像和彩色图像.12.采样间隔对图像质量的影响:一般来说,采样间隔越大,所得图像像素数越少,空间分辨率低,质量差,严重时出现像素呈块状的国际棋盘效应;采样间隔越小,所得图像像素数越多,空间分辨率高,图像质量好,但数据量大。

13.量化等级对图像质量的影响:量化等级越多,所得图像层次越丰富,灰度分辨率高,图像质量好,但数据量大;量化等级越少,图像层次欠丰富,灰度分辨率低,会出现假轮廓现象,图像质量变差,但数据量小.但在极少数情况下对固定图像大小时,减少灰度级能改善质量,产生这种情况的最可能原因是减少灰度级一般会增加图像的对比度.例如对细节比较丰富的图像数字化。

14.数字化器组成:1)采样孔:保证单独观测特定的像素而不受其它部分的影响。

2)图像扫描机构:使采样孔按预先确定的方式在图像上移动。

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

数字图像上机报告一、实验内容:四点平滑、八点平滑、中值滤波、直方图均匀化、线性变换二、实验目的:1、四点平滑、八点平滑:去除高斯噪声,使图像平滑,缺点是会使图像模糊,模糊程度与领域半径成正比丢失边沿。

2、中值滤波:去除图像中的椒盐噪声,平滑图像,同样会使图像模糊,丢失边缘。

三、编程思想:1、四点平滑:f(i, j) ——表示(i, j)点的实际灰度值g(i, j) ——变换后输出图象(i, j)点的实际灰度值以(i, j)点为中心取其上下左右四个像素点的灰度值和点(i, j)取平均,将均值赋给g(i, j)作为输出灰度值。

2、八点平滑:f(i, j) ——表示(i, j)点的实际灰度值g(i, j) ——变换后输出图象(i, j)点的实际灰度值以(i, j)点为中心取一个N×N的窗口(N = 3,5,7,…八点滤波时N=3),窗口内象素组成的点集以A来表示,经邻域平均法滤波后,平滑后g(i, j)的值为九个像素点的灰度值值和。

3、中值滤波:取以(i, j)点为中心取一个N×N的窗口(N = 3,5,7,…),对窗口内的所有像素点的像素值进行排序,去中值作为该点的输出灰度值。

取合理的邻近像素值来替代噪声点,所以只适合于椒盐噪声的去除(去椒盐噪声比超限像素平均分更有效),不适合高斯噪声的去除。

在滤除随机噪声时,中值滤波要比均值滤波效果弱。

四、代码及实现效果1、四点平滑:代码:clearclose allh=imread('che.jpg'); %读入彩色图片c=rgb2gray(h); %把彩色图片转化成灰度图片,256级figure,imshow(c),title('原始图象'); %显示原始图象g=imnoise(c,'gaussian',0.01,0.002); %加入高斯噪声figure,imshow(g),title('加入高斯噪声之后的图象');p=size(g); %输入图像是p×q的,且p>n,q>nx1=double(g);x2=x1;for i=2:p(1)-2for j=2:p(2)-2%c=x1(i:i+(n-1),j:j+(n-1)).*a; %取出x1中从(i,j)开始的n行n列元素与模板相乘s=x1(i,j)+x1(i-1,j)+x1(i+1,j)+x1(i,j+1)+x1(i,j-1); %求c矩阵(即模板)中各元素之和x2(i,j)=s/5; %将模板各元素的均值赋给模板中心位置的元素endend%未被赋值的元素取原值d=uint8(x2);figure,imshow(d),title('滤波后');2、八点平滑:代码:clearclose allh=imread('che.jpg'); %读入彩色图片c=rgb2gray(h); %把彩色图片转化成灰度图片,256级figure,imshow(c),title('原始图象'); %显示原始图象g=imnoise(c,'gaussian',0.01,0.002); %加入高斯噪声figure,imshow(g),title('加入高斯噪声之后的图象');n=input('请输入均值滤波器模板大小\n');a(1:n,1:n)=1; %a即n×n模板,元素全是1p=size(g); %输入图像是p×q的,且p>n,q>nx1=double(g);x2=x1;for i=1:p(1)-n+1for j=1:p(2)-n+1c=x1(i:i+(n-1),j:j+(n-1)).*a; %取出x1中从(i,j)开始的n行n列元素与模板相乘s=sum(sum(c)); %求c矩阵(即模板)中各元素之和x2(i+(n-1)/2,j+(n-1)/2)=s/(n*n);%将模板各元素的均值赋给模板中心位置的元素endendd=uint8(x2);figure,imshow(d),title('滤波后');3、中值滤波代码:clearclose allh=imread('che.jpg'); %读入彩色图片c=rgb2gray(h); %把彩色图片转化成灰度图片,256级figure,imshow(c),title('原始图象'); %显示原始图象g=imnoise(c,'salt & pepper',0.04);%加椒盐噪声figure,imshow(g),title('加入高斯噪声之后的图象');n=input('请输入均值滤波器模板大小\n');a(1:n,1:n)=1; %a即n×n模板,元素全是1p=size(g); %输入图像是p×q的,且p>n,q>nx1=double(g);x2=x1;for i=1:p(1)-n+1for j=1:p(2)-n+1c=x1(i:i+(n-1),j:j+(n-1));%取出x1中从(i,j)开始的n行n列元素,即模板(n ×n的)e=c(1,:); %是c矩阵的第一行for u=2:ne=[e,c(u,:)]; %将c矩阵变为一个行矩阵endmm=median(e); %mm是中值x2(i+(n-1)/2,j+(n-1)/2)=mm; %将模板各元素的中值赋给模板中心位置的元素endendd=uint8(x2);figure,imshow(d),title('滤波后');4、直方图均匀化代码:c lear all;a=imread('D:/lina.jpg');[m,n]=size(a);b=zeros(1,256);for i=1:mfor j=1:nk=a(i,j)+1; %k可能为0,矩阵从一开始,故此处加一,0~255变1~256 b(k)=b(k)+1; %循环计算每级灰度出现次数endendb=b/(m*n); %概率figure,bar(0:255,b,'y') % 直方图title('原图像直方图')xlabel('灰度值')ylabel('出现概率')c=zeros(1,256);for i=1:256for j=1:ic(i)=b(j)+c(i);endendd=round((c*256)+0.5); % 归到相近级的灰度for i=1:256e(i)=sum(b(find(d==i))); % 计算现有每个灰度级出现的概率end,find函数返回d中所有为i的横坐标索引值figure,bar(0:255,e,'b')title('均衡化后的直方图')xlabel('灰度值')ylabel('出现概率')将图像界面放大竟出现了颜色黄色和蓝色。

为了增加我组竞争力,提高分数,本人又做了迭代法clear allI=imread('D:/lina.jpg');s=size(I);a=I(1,1);for i=1:s(1)for j=1:s(2)if(a<=I(i,j))a=I(i,j);elsea=a;endendendtmin=a;tmax=max(I(:));%老师算这个最大值和最小值很类似,故直接调用算法,不再赘述for 的循环语句th=(tmin+tmax)/2;ok=true;while okg1=I>=th;%将图像分为两部分g2=I<th;u1=mean(I(g1));%这个for循环与算I的最小值很类似,故也仅调用函数 u2=mean(I(g2));thnew=(u1+u2)/2;ok=abs(th-thnew)>=1;th=thnew;endth=floor(th);J=im2bw(I,th/255);subplot(1,2,1);imshow(I);title('原始图像');str=['迭代算法 TH=',num2str(th)];subplot(1,2,2);imshow(J);title(str);自认为这个还是挺成功的。

5、线性变换代码:clear all;a=imread('D:/lina.jpg');[m,n]=size(a);b=zeros(1,256);for i=1:mfor j=1:nk=a(i,j)+1; %k可能为0,矩阵从一开始,故此处加一,0~255变1~256 b(k)=b(k)+1; %循环计算每级灰度出现次数endendx=b;for i=1:100x(i)=20;endfor i=101:208x(i)=20+10/107*(x(i)-20);endfor i=208:256x(i)=250;endfigure,bar(0:255,x,'y'); % 直方图f=a;for i=1:256for j=1:256if f(i,j)<50f(i,j)=20;end;if f(i,j)>50 &f(i,j)<190f(i,j)=20+10/107*(f(i,j)-20);endif f(i,j)>190f(i,j)=250;endendendfigure,imshow(f);有些问题,灰度图像变换出了颜色。

相关文档
最新文档