数字图像处理文档-直方图均衡灰度线性变换灰度拉伸.docx

数字图像处理文档-直方图均衡灰度线性变换灰度拉伸.docx

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字图像处理文档-直方图均衡灰度线性变换灰度拉伸

技术报告 摘要: 本文档为数字图像处理程序的技术报告。程序主要功能为读入8位或24位位图,并可选择性对其进行直方图均衡、灰度线性变换、灰度拉伸等操作。该文档从算法原理和算法实现两方面,通过对算法的文字表述、函数的功能介绍以及主要代码分析注释,阐述了该程序进行图像处理时的方法,并通过实验测试和分析实验结果,验证了程序的正确性和可靠性。 关键词:直方图均衡 灰度线性变换 灰度拉伸 任务说明 打开一幅图像,进行直方图均衡。将灰度线性变化,将灰度拉伸。 用C语言或JAVA编程序读出图像文件,并利用算法进行灰度拉伸。 算法原理(背景意义,基本算法,扩展算法) 直方图均衡 直方图均衡化是将原图像通过某种变换,得到一幅灰度直方图为均匀分布的新图像的方法。设图像均衡化处理后,图像的直方图是平直的,即各灰度级具有相同的出现频数,那么由于灰度级具有均匀的概率分布,图像看起来就更清晰了。 在离散情况下,共有L个灰度级,其中第k个灰度级rk出现的像素个数为nk,图像的总像素个数为N,则第k个灰度级出现的概率为: Prrk=nkN 0≤rk≤1,k=0,1,…,L-1 进行均匀化处理的变换函数为: sk=Trk=j=0kPrrj=j=0knjN rk=T-1[sk] 灰度线性变换 灰度的线性变换就是将图像中所有的点按照线性灰度变换函数进行变换。该线性灰度变换函数f(x)是一个一维线性函数: f(x)=fA*x+fB 灰度变换方程为: D2=f(D1)=k*D+d 式中参数k为线性函数的斜率,d为线性函数的在y轴上的截距,D1为输入图像的灰度,D2为输出的图像灰度。 当k1时,输出的图像的对比度增大,图像的像素值在变换后全部增大,整体显示效果增强;当0k1时,输出图像的对比度和整体效果都将削弱;当k0时,原图像较量的区域变暗,较暗的区域则变亮,当k=-1,d=255时,输出图像的灰度正好反转;当k=1且d!=0时,操作仅仅使所有像素的灰度值上移或下移,其效果是使整个图像更亮或更暗;当k=1,d=0时,输出图像和输入图像相同。 灰度拉伸 灰度拉伸又叫对比度拉伸,它是最基本的一种灰度变换,使用的是最简单的分段线性变换函数,它的主要思想是提高图像处理时灰度级的动态范围。 可以有选择的拉伸某段灰度区间以改善输出图像。如图,所示的变换函数的运算结果是将原图在a到b之间的灰度拉伸到c到d之间。如果一幅图像的灰度集中在较暗的区域而导致图像偏暗,可以用灰度拉伸功能来拉伸(斜率1)物体灰度区间以改善图像;同样如果图像灰度集中在较亮的区域而导致图像偏亮,也可以用灰度拉伸功能来压缩(斜率1)物体灰度区间以改善图像质量。 图2.1 灰度拉伸 算法实现 使用语言 C++ 编译环境 VC++6.0 数据结构 文件头 typedef struct tagBITMAPFILEHEADER { WORD??? bfType; DWORD?? bfSize; WORD??? bfReserved1; WORD??? bfReserved2; DWORD?? bfOffBits; } BITMAPFILEHEADER, *PBITMAPFILEHEADER; bfType代表的是文件格式,所以,从BMP文件的前两个字节我们就可以判断我们要打开的图片是不是位图。 bfSize代表的是该位图文件的大小(包含文件头、信息头、调色板(如果有)、像素数据)。它是一个DWORD类型,占4个字节。 bfReserved1和bfReserved2都是保留量,因此它们应该都为0。它们合起来占4个字节 bfOffBits代表的是像素数据距的偏移地址。如果我们想直接读像素数据的话,可以把文件指针偏移bfOffBits个字节,然后读取就可以了。 在保存BMP文件的时候,保存的顺序也是按照bfType、bfSize、bfReserved1、bfReserved2、bfOffBits的顺序的。 信息头 typedef struct tagBITMAPINFOHEADER{ DWORD biSize; LONG?? biWidth; LONG?? biHeight; WORD?? biPlanes; WORD?? biBitCount; DWORD biCompression; DWORD biSizeImage; LONG?? biXPelsPerMeter; LONG?? biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; } BITMAPINFOHEADER, *PBITMAPINFOHEADER; biSize代表的是该结构体的大小,即40字节。 biWidth代表的是位图的宽度,以像素为单位。 biHeight代表的是位图的

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档