当前位置:文档之家› MATLAB图形图像处理-

MATLAB图形图像处理-


• imfilter是用来实现线性空间滤波的函数,其基本 语法格式为:
hp = imfilter(p, w, filter_mode, boundary_options, size_options)
• 其中hp为经过滤波后输出的图像,p为原图像, 参数w为滤波模板,filter_mode指定滤波过程中 使用相关核(corr)还是卷积核(conv)。 boundary_options控制边界填充方式为边界复制 (replicate)、边界循环(circular)还是边界对 称(symmetric)。size_options可以为same或者 full两者之一。
• 空域增强方法大致可分为对比度拉伸、平滑滤波 和锐化滤波。灰度拉伸主要是利用点运算来修改 图像像素灰度值;而平滑和锐化均是利用模板来 修改(卷积运算)像素灰度值,从实现方法上讲 是基于图像滤波的操作过程。 • 空域滤波是在图像空间中借助模板对图像进行邻 域操作的,输出图像每一个像素的取值都是根据 模板对输入像素相应邻域内的像素值进行计算得 到的,也叫邻域去噪算法。
• fspecial函数用来预定义滤波器,语法格式为: h = fspecial(’type’, para) • 其中h为预定义的滤波器,参数type指定滤波器的 种类,para为与滤波器相关的参数。 • 滤波器的种类type可以为:gaussian(高斯低通滤 波器)、laplacian(拉普拉斯算子)、log(拉普 拉斯高斯算子)、prewitt(Prewitt算子)、sobel (Sobel算子)、average(均值滤波器)及 unsharp(对比度增强滤波器)等。
3.6.3基于MATLAB的空域增强滤波
• 基于MATLAB图像处理的空域滤波,首先要定义 滤波器,然后调用定义好的滤波器进行滤波。 • imnoise是MATLAB提供的图像噪声模拟函数,其 基本语法格式为: pn = imnoise(p, ’type’, para) • 其中pn为添加噪声的输出图像,p为原图像,type 指定噪声的类型,para为每种类型噪声的参数。 • 常用的噪声有:gaussian(高斯噪声)、 salt&pepper(椒盐噪声)、speckle(均值为0均匀 分布的随机噪声)等。
• 【例3.5.2】将图像p向高灰度级变换, gamma取0.6,效果如图3.29中图(c)所示。
• • • • g2 = imadjust(p,[],[],0.6); subplot(2,2,3); imshow(g2); xlabel('(c)');
【例3.5.3】将图像p做灰度倒相变换,即输出源图 的负片,gamma取1,如图3.29中图(d)所示。 • g3 = imadjust(p,[0 1],[1 0]); • subplot(2,2,4); • imshow(g3); • xlabel('(d)');
• medfilt2是一个二维中值滤波函数,其基本 语法格式为: hp = medfilt2(p, [m n], padopt) • 其中hp为经过滤波后输出的图像,p为原图 像,m及n规定了邻域的大小,padopt指定 了边界填充方式,默认方式为zeros
【例3.6.1】对添加了椒盐噪声的图像分别进行均值 滤波和中值滤波,滤波前后效果如图3.32所示。
【例3.5.4】对tire.tif进行直方图均衡,效果如图3.31所示。 • p = imread('tire.tif'); • subplot(2,2,1); • imshow(p); • xlabel('(a) '); • subplot(2,2,2); • imhist(p); • xlabel('(b) '); • g = histeq(p); • subplot(2,2,3); • imshow(g); • xlabel('(c) '); • subplot(2,2,4); • imhist(g); • xlabel('(d) ');
• • • • • • • • • p = imread('coins.png'); p0 = imnoise(p, 'salt & pepper‘,0.02); % 为原图添加椒盐噪声 H1 = fspecial('average',[3 4]); % 设计均值滤波器H1 p1 = imfilter(p0,H1,'replicate'); %用滤波器H1对图像p0进行滤波 p2 = medfilt2(p0,[3,3],'zeros'); % 对图像p0进行中值滤波 subplot(2,2,1),imshow(p); %分别显示原图及处理后的图像 subplot(2,2,2),imshow(p0); subplot(2,2,3);imshow(p1); subplot(2,2,4);imshow(p2);
• 在图像处理中,直接对像素进行的操作称为空间 域(简称空域)处理。
3.5.1图像的灰度变换
• 在MATLAB中,用函数imadjust可完成灰度图像 的灰度变换。其基本语法格式为:
g=imadjust(p,[low_in high_in],[low_out high_out], gamma)
其中,p为读入到MATLAB中的待变换图像矩阵; [low_in high_in]指定p图像中被执行变换操作的灰度 范围,[low_out high_out]是p图像中的像素变换后被映射 到low_out~high_out的灰度级上。 • 默认状态下,[low_out high_out]及[low_in high_in]为空, 此时等价于[0 1],表明输入与输出灰度级为0~255(uint8 )或0~65535(uint16)。
3.6 图像的增强滤波
• 上节介绍过的直方图均衡化是图像增强中 常用的一种方法,此外,图像增强技术还 包括图像平滑滤波、图像锐化等。 • 本节将从线性与非线性、平滑与锐化等角 度介绍一些实用的空域图像增强技术。
3.6.1
空域滤波概述
• 图像增强技术从总体上可分为空域增强和 频域增强两大类。 • 空域增强也称为空间增强,是直接对图像 中的像素进行操作的一种增强过程。 • 空域增强从根本上讲是以图像的灰度映射 变换为基础的像素处理技术。
3.6.2
空域滤波分类
• 根据模板特点不同可以将空域滤波分为线性和非 线性两大类。 • 按照空域滤波器的功能不同,又可将其分为平滑 滤波器和锐化滤波器。 • 平滑滤波器可以用低通滤波实现;锐化滤波器是 用高通滤波实现的,具体可分为以下3类。 • 1.均值滤波 均值滤波也称线性平滑滤波,其输出的像素值是 由邻域像素的平均值决定。
图3.33 拉普拉斯波和高斯-拉普拉斯滤波 (a)原图像; (b)拉普拉斯滤波后图像; (c)高斯-拉普拉斯滤波后图像
3.7 图像的空间变换
• 图像的空间变换也称为图像的几何变换, 是指将用户获得或设计的原始图像,按照 需要产生大小、形状和位置的变化。 • 常用的图像几何变换包括图像的缩放、图 像的剪切及图像的旋转等内容。
第三章 MATLAB图形图像处理
3.5 图像的灰度变换与直方图 3.6 图像的增强滤波 3.7 图像的空间变换 3.8 图像边缘检测与分割
3.5图像的灰度变换与直方图
• 在计算机中一幅二维数字图像表示为一个矩阵, 该矩阵中的元素是位于相应坐标位置的图像灰度 值。对图像处理,包括对彩色图像的处理,往往 都是对像素灰度的操作,所以对图像进行灰度变 换是图像处理过程中最简单、最基础内容。
• 2.中值滤波 • 中值滤波也称为非线性平滑滤波,其基本原理与均值 滤波不同之处在于:中值滤波的输出像素值是由邻域 像素的中间值而不是平均值决定,中值滤波的名字也 因此而得。 • 与均值滤波相比,中值滤波对灰度发生聚变的像素不 如均值滤波那么敏感,因此中值滤波能尽量保存图像 的细节,模糊效应较少,适于消除图像中孤立噪声。 • 3.锐化滤波 • 锐化滤波就是可以使用微分对图像进行处理,以此来 锐化由于邻域平均导致的图像模糊。 • 图像处理中最常用的微分是利用图像沿某方向上的灰 度变化率,即梯度进行的。
• 【例3.5.4】显示图像p的灰度直方图时,先要把 RGB彩色图像p变换为灰度图像I。运行下列程序 ,得到如图3.30所示直方图。
• p = imread('football.jpg'); • I = rgb2gray(p); • imhist(I);
3.5.3直方图均衡化
• 在图像处理中,当一幅图像基调过暗或过亮 时,需要对其进行必要的处理,使得图像的 明暗均匀,视觉效果变得更为理想。 • 通过直方图均衡化做适当的调整,即把一幅 已知灰度概率分布图像中的像素灰度做某种 映射变换,使它变成一幅具有均匀概率分布 的新图像,使图像视觉效果更加清晰。
• 直方图均衡的MATLAB函数为histeq,其 基本语法格式为: g = histeq(p, outlev) • 其中p为读入的图像矩阵, • outlev为输出图像的灰度级数。outlev的默 认值为64,即64个灰度级,这样对图像的 细节有一定改变。通常将其赋值为256,即 全灰度级(uint8)。
3.5.2灰度直方图
• 图像灰度直方图描述了一幅图像的灰度级内容,即 各个灰度级像素数目的统计。 • 直方图统计各个灰度像素的分布概率,是灰度级的 函数,它反映不出该像素在图像中的二维坐标。 • 通过灰度直方图的形状,可以判断该图像的清晰度 和黑白对比度。
• 在MATLAB图像处理中,通过命令imhist来给出 图像的直方图。其基本语法格式为: h = imhist(p,b) • 其中p为读入到MATLAB环境中的图像矩阵, • 参数b指明直方图统计时显示的整个灰度级分段数 目。省略b时,表明灰度级不分段,这也是imhist 的默认调用方式。 • 如:uint8数据格式的图像,当b=2时,灰度分为 0~127及128~256两个区段。
相关主题