您好,欢迎访问三七文档
第七章图像灰度变换1.二值化和阈值处理2.灰度变换3.灰度直方图变换通常经输入系统获取的图像信息中含有各种各样的噪声与畸变。例如室外光照度不够均匀会造成图像灰度过于集中;由CCD(摄像头)获得的图像经过A/D转换、线路传送都会产生噪声污染等;这些因素影响了系统图像的清晰程度,降低了图像质量,因此,在对图像进行分析之前,必须要对图像质量进行改善。7.1二值化和阈值处理一幅图像包括目标物体、背景还有噪声,怎样从多值的数字图像中只取出目标物体,最常用的方法就是设定某一阈值T,用T将图像的数据分成两大部分:大于T的像素群和小于T的像素群。这是研究灰度变换最特殊的方法,称为图像的二值化(binarization)。二值化处理就是把图像f(x,y)分成目标物体和背景两个领域。非零元素取一法0,1()255,1xfxxclear;closeallI=imread('lena.bmp');subplot(131),imshow(I);title('灰度图像');subplot(132),imhist(I);title('图像直方图');J=find(I1);I(J)=0;J=find(I=1);I(J)=255;subplot(133),imshow(I);title('图像二值化(阈值为1)');固定阈值法0,()255,xTfxxTclear;closeallI=imread('lena.bmp');subplot(121),imshow(I)title('灰度图像');J=find(I150);I(J)=0;J=find(I=150);I(J)=255;subplot(122),imshow(I)title('图像二值化(阈值为150)');双固定阈值法0,1()255,120,2xTfxTxTxT(a)0-255-0型灰度变换函数(b)255-0-255型灰度变换函数clear;closeallI=imread('lena.bmp');subplot(121),imshow(I)title('灰度图像');J=find(I150|I220);I(J)=0;J=find(I=150&I=220);I(J)=255;subplot(122),imshow(I)title('图像二值化');为什么要灰度变换?由于图像的亮度范围不足或非线性会使图像的对比度不理想。采用图像灰度值变换方法,即改变图像像素的灰度值,以改变图像灰度的动态范围,增强图像的对比度。7.2灰度变换2灰度变换设原图像(像素灰度值)为f(m,n),处理后图像(像素灰度值)为g(m,n),则对比度增强可表示为:其中,T(.)表示增强图像和原图像的灰度变换函数灰度变换分为线性变换(正比或反比)和非线性变换。非线性变换有对数的(对数和反对数的),幂次的(n次幂和n次方根变换)。下面是一些灰度变换曲线。用于图像增强的某些基本灰度变换线性变换利用线性函数进行变换,线性变换一般关系式为:令图像f(m,n)的灰度范围是【a,b】,线性变换后图像g(m,n)的灰度范围为【c,d】,如下图线性变换关系应用目的:为了突出感兴趣目标所在的灰度区间,相对抑制那些不感兴趣的灰度空间,可采用分段线性变换。原理是进行像素点对点的,灰度级的影射。设新、旧图的灰度级分别为g和f,要求g和f均在[0,255]间变化,但是g的表现效果要优于f。分段线性变换(1)扩展感兴趣的,牺牲其他对于感兴趣的[a,b]区间,采用斜率大于1的线性变换来进行扩展,而把其他区间用a或b来表示。变换函数是(2)扩展感兴趣的,压缩其他在扩展感兴趣的[a,b]区间的同时,为了保留其他区间的灰度层次,也可以采用其它区间压缩的方法,既有扩有压,变换函数为线性变换的应用1什么是对比度线性展宽?对比度线性展宽处理,就是图像灰度值的分布拉伸、展宽。2为什么要进行对比度展宽?之所以要进行对比度展宽,是因为有时获得的图像画面效果不好,画面中期望观察的对象因对比度不足而不够清晰,因此要通过对比度展宽的方法获得对画质的改善。3对比度线性展宽原理实际就是图像灰度值的线性映射。进行像素点对点的,灰度级的影射。对比度线性展宽(拉伸)4对比度线性展宽处理方法按照下面的公式进行点对点的映射:(,)(,)((,))((,))abfijgijfijagfijbg0(,)(,)(,)255fijaafijbbfij(1,2,...,;1,2,...,)imjn255abfg255gagbαγβbbababaafgffggfg255255,,α,β,γ是斜率,其值是:图中看出α1,γ1,是对非重要景物的抑制β1,是对重要景物的对比度展宽1什么是灰窗级切片?是指将所需检测的目标与画面中其他的部分分离开,目标部分置为白(黑),而非目标部分置为黑(白)。这样就把需要的目标突出显示出来了。2灰窗级切片有什么用?在图像处理中,经常要对某个目标物的形状、边界、截面面积以及体积进行测量,从而得到该目标物功能方面的重要信息。如,医学中要对人体器官和组织进行精确测量。灰窗级切片(灰度切割)0(,)(,)(,)255fijaafijbbfij(1,2,...,;1,2,...,)imjn255abfg2553灰窗级切片实现原理?分段线性灰度变换。表达式如下。其他灰度切分(a)加亮[A,B]范围,其他灰度减小为一恒定值(b)加亮[A,B]范围,其他灰度级不变(c)原图像(d)使用(a)变换的结果(a)(b)(c)(d)特点:突出目标的轮廓,消除背景细节特点:突出目标的轮廓,保留背景细节线性动态范围调整动态范围:是指图像中从暗到亮的变化范围。动态范围对人视觉的影响:由于人眼所可以分辨的灰度的变化范围是有限的,所以当动态范围太大时,很高的亮度值把暗区的信号都掩盖了。动态范围调整原理:通过动态范围的压缩可以将所关心部分的灰度级的变化范围扩大。将原来[0,255]范围内的亮暗变化,压缩到[a,b]范围内。再将[a,b]范围内的灰度值伸展到[0,255]。*0(,)255255(,)(,)(,)(,)()255(,)hijaahijhijhijabbabahijb黑白ab01255abfg2551399821373360646820529260黑:02白:9723777223733626467225072620299900292270747900509070y=1.8*x-3.6作用:进行亮暗限幅有四舍五入在MATLAB图像处理工具箱中,用于上述灰度级变换的函数是imadjust,其调用格式如下:J=imadjust(I)将灰度图像I中的亮度值映射到J中的新值,这增加了输出图像J的对比度值。J=imadjust(I,[low_in;high_in],[low_out;high_out])将图像I中的亮度值映射到J中的新值,即将low_in至high_in之间的值映射到low_out至high_out之间的值。low_in以下与high_in以上的值被剪切掉了,也就是说,low_in以下的值映射到low_out,high_in以上的值映射到high_out。J=imadjust(I,[low_in;high_in],[low_out;high_out],gamma)将图像I中的亮度值映射到J中的新值,其中gamma指定描述值I和值J关系的曲线形状。如果gamma小于1,此映射偏重更高数值(明亮)输出,如果gamma大于1,此映射偏重更低数值(灰暗)输出,如果省略此参数,默认为(线性映射)。clearall;I=imread('pout.tif');%读入原始图像J=imadjust(I);%把I的范围拉伸到[01]K=imadjust(I,[0.30.7],[]);%局部拉伸,把[0.30.7]内的灰度拉伸为[01]subplot(1,3,1);imshow(I);xlabel('原始图像');subplot(1,3,2);imshow(J);xlabel('全局拉伸');subplot(1,3,3);imshow(K);xlabel('分段拉伸');[X,map]=imread('forest.tif');I=ind2gray(X,map);%索引图像转化为灰度图像J=imadjust(I,[01],[01],0.5);%gamma校正figure,subplot(121),imshow(I);subplot(122),imshow(J)对数变换2021年1月1日1时37分灰度变换函数为对数函数;其实现的效果是扩展低灰度区,压缩高灰度区:其中a,b,c是按需要可以调整的参数;)1),((log),(yxfbayxgc13998213733606468205292603599943585580868940749480g(i,j)=9*log(f(i,j)+1)作用:将暗的部分扩展,而将亮的部分抑制。I=imread('lena.bmp');subplot(121),imshow(I);I=double(I);I2=42*log(1+I);I2=uint8(I2);subplot(122),imshow(I2);指数变换2021年1月1日1时37分灰度变换函数为指数函数;其实现的效果是扩展高灰度区,压缩低灰度区:其中a,b,c是按需要可以调整的参数;bayxfcyxg)),((),(其中和为常数。值的选择对于变换函数的特性有很大影响。应用范围,比较广泛,可代替对数变换和反对数变换。c作用:和对数变换的效果相反,指数变换使得高灰度范围扩展,压缩低灰度范围,其一般表达式为bnmcfnmg),(,7.3灰度直方图变换什么是灰度直方图?灰度直方图是灰度级的函数,是对图像中灰度级分布的统计,反映的是一幅图像中各灰度级像素出现的频率。横坐标表示灰度级,纵坐标表示图像中对应某灰度级所出现的像素个数,也可以是某一灰度值的像素数占全图像素数的百分比,即灰度级的频率。灰度直方图计算示例1234566432211664663456661466231364661234565456214灰度直方图1灰度直方图只能反映图像的灰度分布,而不能反映图像像素的位置,即丢失了像素的位置信息。2一幅图像对应唯一的灰度直方图,反之不成立。不同的图像可对应相同的直方图。3一幅图像分成多个区域,多个区域的直方图之和即为原图像的直方图。灰度直方图的性质MATLAB图像处理工具箱使用imhist函数显示一幅图像的直方图,常用的调用方法如下:imhist(I,n)其中I为输入图像矩阵,n为指定灰度级,默认为256。I=imread('pout.tif');subplot(121),imshow(I);subplot(122),imhist(I);直方图均衡化1为什么要进行直方图均衡化?通过对直方图的调整,使得图像数据信息量增大,画面更清晰。2直方图均衡化原理是将原图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法。设图像均衡化处理后,图像的直方图是平直的,即各灰度级具有相同的出现频数,那么由于灰度级具有均匀的概率分布,图像看起来就更清晰了。直方图均衡化步骤1求原图的灰度直方图2由原图直方图计算灰度分布概率3计算图像各个灰度级的累计分布概率4进行直方图均衡化计算,得到新图像的灰度值1求灰度直方图设f、g分别为原图像和处理后的图像。求出原图f的灰度直方图,设为h。显然,在[0,255]范围内量化时,h是一个256维的向量。例1399821373360646820529260fh03122434415164718293注:这里为了描述方便起见,设灰度级的分布范围为[0,9]。求出图像f的总体像素个数Nf=m*n(m,n分别为图像的长和宽)计算每个灰度级的像素个数在整个图像中所占的百分比。hs(i)=h(i)/Nf(
本文标题:第7章图像灰度变换
链接地址:https://www.777doc.com/doc-7351391 .html