数字图像处理学3

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

•图像增强的概念图像增强是数字图像处理的基本内容之一。图像增强是指按特定的需要突出一副图像中的某些信息,同时,削弱或去除某些不需要的信息的处理方法。其主要目的是使处理后的图像对某种特定的应用来说,比原始图像更适用。应该明确的是增强处理并不能增强原始图像的信息,其结果是增强对某种信息的辨别能力。第3章亮度变换与空间滤波3.1背景知识图像增强技术基本上可分为两大类:一类是空域处理法;一类是频域处理法。空域法是直接对图像的像素进行处理,基本上是以灰度映射变换为基础的。所用的映射变换取决于增强的目的,例如增加图像的对比度,改善图像的灰度层次等处理均属空域法处理。•空域法处理的表达式:g(x,y)=T[f(x,y)]其中f(x,y)为输入图像,g(x,y)为输出图像,T是对图像f进行增强处理的操作符。若T是定义在每个点(x,y)上的,则T是点操作;若T是定义在点(x,y)的指定邻域内,则T是模板操作。由于亮度函数仅取决于亮度的值,而与(x,y)无关,所以亮度变换函数通常可以写做s=T(r)其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。3.2亮度变换函数•函数imadjust函数语法:g=imadjust(f,[low_inhigh_in],[low_outhigh_out],gamma)该函数将图像f中的亮度值映射到g中的新值,即low_in至high_in之间的值映射到low_out和high_out之间的值。low_in以下的值映射到low_out,high_in以上的值映射到high_out。除图像f之外,函数imadjust所有的输入输出均指定在0和1之间,而不论f的类。若f是uint8类图像,则函数imadjust将乘以255来确定应用中的实际值。gamma为矫正量,它指定亮度变换函数曲线的形状,若gamma1,图像变亮;若gamma1,图像变暗。若省略则默认为1。•负片图像:g1=imadjust(f,[0,1],[1,0]);或g1=imcomplement(f);•灰度增强图像:g2=imadjust(f,[0.5,0.75],[0,1]);•gamma变换图像:g3=imadjust(f,[],[],2);•对数和对比度拉伸变换对数变换的应用主要压缩图像动态范围,输出高对比度的图像。对数变换的表达式为:g=c*log(1+double(f));当执行一个对数变换时,期望将导致的压缩值还原为显示的全范围,可以执行:gs=im2uint8(mat2gray(g));对比度拉伸变换函数可将输入值低于m的灰度级压缩为输出图像中较暗灰度级的较窄范围内;可将输入值高于m的灰度级压缩为输出图像中较亮灰度级的较窄范围内,从而输出一副高对比度的图像。对比度拉伸变换函数的表达式:s=T(r)=1/1+(m/r)^EE控制函数的斜率。•编写亮度变换的一些实用函数如何处理可变数量的输入和输出?检测输入到M函数的参量数目,可用:n=nargin检测M函数的输出参量数目,可用:n=nargout函数nargchk用于函数体中,用于检测传递的参量数目是否正确。msg=nargchk(low,high,number)通常写出具有可变数目的输入变量和输出变量的函数是十分有用的。例如,变量varargin和变量varargout。function[m,n]=testhv3(varargin);function[varargout]=testhv4(m,n,p);当varargin用作一个函数的输入变量时,MATLAB会将其置入一个单元数组中。该数组接收由用户输入的变量数。[m,n]=testhv3(f,[00.51.5],A,’label’);•亮度变换的自定义函数—intrans函数functiong=intrans(f,varargin)%intransperformsintensity(grey-level)transformations.%…………………………error(nargchk(2,4,nargin))classin=class(f);ifstrcmp(class(f),’double’)&max(f(:))1&…~strcmp(varargin{1},’log’)f=mat2gray(f);elsef=im2double(f);end•method=varargin{1};switchmethodcase‘neg’g=imcomplement(f);case‘log’iflength(varargin)==1c=1;elseiflength(varargin)==2c=varargin{2};elseiflength(varargin)==3c=varargin{2};classin=varargin{3};elseerror(‘Incorrectnumberofinputsforthelogoption.’)endg=c*(log(1+double(f));case‘gamma’iflength(varargin)2error(‘Notenoughinputsforthegammaoption.’)endgam=varargin{2};g=imadjust(f,[],[],gam);case‘stretch’iflength(varargin)==1m=mean(f);E=4.0;elseiflength(varargin)==3m=varargin{2};E=varargin{3};elseerror(‘Incorrectnumberofinputsforthestretchoption.’)endg=1./(1+(m./(f+eps)).^E);otherwiseerror(‘Unknownenhancementmethod.’)endg=changeclass(classin,g);以下调用intrans函数g=intrans(f,’stretch,mean2(im2double(f)),0.9);figure,imshow(g)•亮度标度的M函数—gscaleg=gscale(f,method,low,high)%将图像输出映射到一个特定的范围。method:full8,full16,minmax•图像亮度(灰度)直方图直方图是反映一副图像中的灰度级与出现这种灰度的概率之间的关系的图形。假如一副图像在[0,G]内有L个灰度级,其直方图定义为:是离散形式下的第K级灰度,是灰度级的概率密度函数,图像中出现K级灰度的像素数,n为图像中的像素总数。3.3直方图处理与函数绘图nnrpkk)(krkr)(krpkn•直方图处理核心函数imhist格式:h=imhist(f,b)f为输入图像,h为其直方图,b为灰度级个数,默认值为256。若b=2,则亮度标度范围被分为两个部分:0至127和128至255。所得的直方图将只有两个值。p=imhist(f,b)/numel(f)为归一化的直方图。•计算并绘制直方图1.使用工具箱函数:imhist(f)2.条形图绘制直方图bar(horz,v,width)v是一个行向量,它包含将被绘制的点;horz是一个与v有着相同维数的向量,它包含水平标度值的增量;width是一个值在0和1之间的数,决定条形图的宽度,默认值为0.8。h=imhist(f);h1=h(1:10:256);horz=1:10:256;bar(horz,h1)axis([0255015000])%设置水平轴和垂直轴的最大值和最小值set(gca,'xtick',0:50:255)set(gca,'ytick',0:2000:15000)%设置水平轴和垂直轴的刻度3.杆状图绘制直方图stem(horz,v,‘color_linestyle_marker’,‘fill’)color_linestyle_marker的意义见表3.1。h=imhist(g);h1=h(1:10:256);horz=1:10:256stem(horz,h1,'fill')set(gca,'xtick',[0:50:255])set(gca,'ytick',[0:2000:15000])4.连续型直方图h=imhist(f);plot(f)axis([0255015000])set(gca,'xtick',[0:50:255])set(gca,'ytick',[0:2000:15000])•直方图均衡化假如一副给定的图像的灰度级r分布在[0,1]区间内,可以对任一个r值进行如下变换:s=T(r)变换函数T(r)应满足下列条件:1.T(r)单调增加;2.T(r)位于[0,1]区间内分析可知,通过变换函数T(r)可以控制图像灰度级的概率密度函数,从而改变图像的灰度层次。直方图均衡化处理是以累积分布函数为变换函数的。目的是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。dprTsrr)()(0直方图均衡化函数histeqg=histeq(f,nlev)f为输入图像,nlev为输出图像指定的灰度级数。若nlev等于L,则histeq直接执行变换函数T(r)。若nlev小于L,则histeq划分灰度级,以便能够得到较为平坦的直方图,nlev默认值为64。直方图均衡化举例imshow(f);figure,imhist(f)ylim('auto')%自动设定坐标轴的取值范围和刻度线g=histeq(f,256);figure,imshow(g)figure,imhist(g)ylim('auto')•求变换函数hnorm=imhist(f)./numel(f);cdf=cumsum(hnorm);x=linspace(0,1,256);plot(x,cdf)axis([0101])set(gca,’xtick’,0:.2:1)set(gca,’ytick’,0:.2:1)xlabel(‘inputintensityvalues’,‘fontsize’,9)ylabel(‘outputintensityvalues’,‘fontsize’,9)test(0.18,0.5,’Transformationfunction’,‘fontsize’,9)•直方图规定化直方图均衡化通过扩展图像的灰度级到较宽亮度尺寸的范围来实现图像增强,但它只能产生近似均匀的直方图结果;在不同的情况下,并不是总需要具有均匀直方图的图像,有时需要具有特定的直方图的图像,以便能够对图像中的某些灰度级加以增强,这就是直方图规定化。•算法讨论dprTsrr)()(0dpzHszz)()(0)]([)(11rTHsHz直方图规定化函数g=histeq(f,hspec)f是输入图像,hspec为指定的直方图(一个由指定值构成的行向量),g为输出图像。其直方图近似等于指定的直方图hspec.•空间邻域处理:(1)定义中心点(x,y);(2)仅对预先定义的以(x,y)为中心点的邻域内的像素进行运算;(3)令运算结果为该点处处理的响应。(4)对图像中的每一点重复此步骤。3.4线性空间滤波•线性空间滤波移动中心点会产生新的邻域,而每个邻域对应于输入图像上的一个像素。若对邻域中像素的计算为线性运算时,则此运算称为线性空间滤波;否则称此运算为非线性空间滤波。•线性滤波器线性运算包括将领域中每个像素与相应的系数相乘,然后将结果累加,从而得到点(x,y)的响应。若邻域的大小为m×n,则总共需要个mn系数,把这些系数排列为一个矩阵,称其为滤波器、掩膜、滤波掩膜。滤波器的大小遵循奇数的原则,即m和n都应为奇数。•相关和卷积操作相关操作是滤波器在图像上顺序移动,执行每一个邻域的乘加运算。而卷积操作是指在图像中移动滤波器前,将滤波器旋转18

1 / 58
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功