- 1、本文档共43页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5 直方图匹配 5 直方图匹配 数字图像处理 第四章 点运算 CH4 点运算 一、引言 二、点运算和直方图 三、直方图均衡化 四、直方图规定化 五、直方图匹配 六、光度学校正和显示校正 七、要点总结 习题 图像增强: 改善图像, 已使图像看起来更好. 如何观察到图像更多细节, 如何达到较好的对比度. 图像增强两种方法: 基于图像灰度值统计的方法; 基于图像空间频率的方法. 1 引言 1)点运算(point operation)定义 对于一幅输入图像,将产生一幅输出图像,输出图像的每个像素点的灰度值由输入像素点决定。点运算由灰度变换函数(gray-scale transformation, GST)确定。 Notice: (1)与局部(邻域)运算的差别,输入像素-输出像素一一对应; (2)与几何运算的差别,不改变图像的空间关系; (3)又称为对比度增强,对比度拉伸或灰度变换。 1 引言 2)点运算的种类 (1)线性点运算 1 引言 lenna.bmp 1 引言 (2)非线性点运算 常用对数函数、幂次函数和分段线性函数 1 引言 1 引言 lenna.bmp 1 引言 3)应用 (1)光度学标定(photometric calibration) 希望数字图像的灰度能够真实反映图像的物理特性。如 去掉非线性; 变换灰度的单位。 (2)对比度增强(contrast enhancement)或对比度扩展(contrast stretching) 将感兴趣特征的对比度扩展使之占据可显示灰度级的更大部分。 (3)显示标定(display calibration) 显示设备不能线性地将灰度值转换为光强度。因此点运算和显示非线性组合,以保持显示图像时的线性关系。 (4)轮廓线确定 用点运算的方法进行阈值化。 (5)裁剪 每次点运算的最后一步,都将负值置为0;而将正值约束在灰度级最大值Dm。 1 引言 2 点运算和直方图 1)为什么讨论两者关系? 为使输出灰度产生特定形式的输出直方图,而逆向寻求点运算函数的过程。 2)输出直方图 分两步完成: (1)分子为输入直方图,但自变量从DA替换为DB。 (2)分母为灰度变换函数的导数,如果出现DA也替换为DB。 对变换函数f的要求是单值且单调递增,值空间在[0,255]。 2 点运算和直方图 2 点运算和直方图 Step1 Step2 2 点运算和直方图 3)举例 (1)线性点运算性质: *b0,直方图向右平移,图像变亮; *b0,直方图向左平移,图像变暗; *a1,直方图对比度加大。 例子1:lena 2 点运算和直方图 2 点运算和直方图 213≈1.2*138+50 2 点运算和直方图 例子2:假定原直方图为高斯函数 2 点运算和直方图 (2) 二阶点运算 2 点运算和直方图 例子3:假定原直方图为高斯函数 此处用的灰度变换公式为DB=DA^2 2 点运算和直方图 (3)其它情形 *若灰度变换函数存在0斜率,则输出直方图将产生尖峰; *若灰度变换函数存在斜率无穷大,则输出直方图将部分区域扩展为一定宽度; *若灰度变换函数不存在反函数,可以将输入直方图划为几段,然后输出直方图为几部分之和。 (4)分段线性变换 3 直方图均衡化 1)目的 使一输入图像转换为在每一灰度级上都有相同的像素点数(即输出的直方图是平的)。 进一步的作用在于图像比较和分割。 2)研究思路:通过直方图变换公式 3)步骤 4)离散情况 5)例子 3 直方图均衡化 3 直方图均衡化 %初始化及得到lenna的灰度 lenna=zeros(128,128); lenna_equ=zeros(128,128); histgram=zeros(256); cdf=zeros(256); [lenna,map]=imread(c:\temp\lenna.bmp,bmp); %get histogram for i=1:128 for j=1:128 k=lenna(i,j); histgram(k)=histgram(k)+1; end end 3 直方图均衡化 %get cdf cdf(1)=histgram(1); for i=2:256 cdf(i)=cdf(i-1)+histgram(i); end %run point operation for i=1:128 for j=1:128 k=lenna(i,j); lenna_equ(i,j)=cdf(k)*256/(128*128); end end %生成直方图均衡化后的lenna图 imwrite(lenna_equ,map
文档评论(0)