ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:157KB ,
资源ID:10497662      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10497662.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图像的灰度变换.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图像的灰度变换.docx

1、图像的灰度变换昆明理工大学(数字图像处理)实验报告实验名称: 图像的灰度变换 专 业: 电子信息科学与技术 姓 名: 学 号: 成 绩: 实验目的 1、理解并掌握灰度变换的基本原理和方法。 2、编程实现图像灰度变换。 3、分析不同的灰度变换方法对最终图像效果的影响。实验内容 1、灰度的线性变换; 2、灰度的非线性变换; 3、图像的二值化; 4、图像的反色处理;实验原理 图像的灰度变换 ( gray scale transformation, GST ) 处理是图像增强处理技术中一种非常基础、直接的空间域图像处理方法,也是图像数字化软件和图像显示软件的一个重要组成部分。灰度变换是指根据某种 目标

2、条件按一定变换关系逐点改变原图像中每一个像素灰度值的方法。目的是为了改善画质,使图像的显示效果更加清晰。灰度变换有时又被称为图像的对比度增强或对比度拉伸。从图像输入装置得到的图像数据, 以浓淡表示, 各个像素与某一灰度值相对应。设原图像像素的灰度值 D=f(x,y),处理后图像像素的灰度值D= g (x,y),则灰度增强可表示为: g(x,y)=Tf(x,y)或 D = T (D) 要求 D 和 D都在图像的灰度范围之内。函数 T(D) 称为灰度变换函数,它描述了输入灰度 值和输出灰度值之间的转换关系。灰度变换主要针对独立的像素点进行处理,通过改变原始图像数据所占据的灰度范围而使图像在视觉上得

3、到良好的改观,没有利用像素点之间的相互空间关系。因此,灰度变换处理方法也叫做点运算法。点运算可以按照预定的方式改变一幅图像的灰度直方图。除了灰度级的改变是根据某种特定的灰度变换函数进行之外,点运算可以看做是 “从像素到像素”的复制操作。根据g(x,y)=Tf(x,y) , 可以将灰度变换分为线性变换和非线性变换。 1、 灰度的线性变换 若g(x,y)=Tf(x,y)是一个线性或分段线性的单值函数,例如 g(x,y)=Tf(x,y)=af(x,y)+b则由它确定的灰度变换称为灰度线性变换,简称线性变换。 某图像的灰度范围相当窄,灰度值 D 仅在较小区间内,灰度直方图集中于一部分,所看到的图像模糊

4、,好像没有灰度级似的,造成目标图像灰度值与背景灰度值相接近,人眼无法分辨检出。若利用灰度变换函数进行线性变换,使图像的直方图分布于整个灰度部分,图像的对比度扩展了。 2 、 灰度的非线性变换 某图像的像素集中于中间灰度部分,而其他部分的像素数很少。可以压缩像素数少的部分,扩展像素数集中的部分。如果只想很仔细地解析图像的某一部分,例如图像的高灰度部分时,只要进行增加高灰度部分的灰度级数的变换,压缩其他部分,就能得到增强高灰度部分的图像。这种变化又称为图像的局部增强。3 、 二值化和反色处理 一幅图像包括 目标物体、背景还有噪声,怎样从多值的数字图像中只取出目标物体,最常用的方法就是设定某一阈值T

5、,用 T 将图像的数据分成两大部分:大于 T的像素群和小于 T 的像素群。这是研究灰度变换最特殊的方法,称为图像的二值化 (binarization ) 。二值化处理就是把图像 f(x,y)分成目标物体和背景两个领域。二值化是数字图像处理中一项最基本的变换方法,通过非零取一、固定阈值、双固定阈值等不同的阈值化变换方法, 使一幅灰度图变成了黑白二值图像。 实验步骤及主要代码 1、线性变换 打开菜单编辑器,在主菜单中添加一菜单项,选中弹出式选项,修改菜单名称为“点运算”。然后建立一下级菜单,给菜单一个ID号,修改caption为“灰度线性变换”,打开类向导,建立消息响应函数,实现图像灰度线性变换。

6、添加一个线性变换对话框用于输入斜率和截距。调出资源视图窗口,添加ID为IDD_DIALOG1的对话框资源,设计如图:创建对话框类CDialogdl并按下表关联对应变量:资源类型资源ID关联变量类型关联变量名称斜率文本框IDC_EDIT1floatm_k截距文本框IDC_EDIT2floatm_b添加如下代码:void CDLView:OnXianxing() / TODO: Add your command handler code here float k,b; CDialogdl mydlg; if(mydlg.DoModal()=IDOK) k=mydlg.m_k; b=mydlg.m_

7、b; long w,h; long i,j; if(m_DibHead=NULL) MessageBox(please open one image!); return; w=m_DibHead-biWidth; h=m_DibHead-biHeight; unsigned char *f=new unsigned charw*h; memset(f,0,w*h); float temp(0); for(i=0;ih;i+) for(j=0;jw;j+) temp=k*m_Imagei*w+j+b; if(temp255) temp=255; fi*w+j=(unsigned char)(te

8、mp); memcpy(m_Image,f,w*h); Invalidate(); delete f; 2、分段线性变换 同线性变换一样建立相应的菜单并建立类向导。添加一个线性变换对话框用于输入分段点(x1,y1)、(x2,y2)。调出资源视图窗口,添加ID为IDD_DIALOG3的对话框资源,设计如图:创建对话框类CDialogdl并按下表关联对应变量:资源类型资源ID关联变量类型关联变量名称X1文本框IDC_EDIT1floatm_x1Y1文本框IDC_EDIT2floatm_y1X2文本框IDC_EDIT3floatm_x2Y2文本框IDC_EDIT4floatm_y2添加如下代码:vo

9、id CDLView:OnFenduan() int x1, y1,x2, y2; CDialog_fdxx mydlg; if(mydlg.DoModal()=IDOK) x1=mydlg.m_x1; y1=mydlg.m_y1; x2=mydlg.m_x2; y2=mydlg.m_y2; long w,h; long i,j; if(m_DibHead=NULL) MessageBox(please open one image!); return; w=m_DibHead-biWidth; h=m_DibHead-biHeight; unsigned char *f=new unsign

10、ed charw*h; memset(f,0,w*h); float temp(0); for(i=0;ih;i+) for(j=0;jw;j+) if(m_Imagei*w+jx1) temp=y1/x1*m_Imagei*w+j; else if(m_Imagei*w+j=x1) temp=(y2-y1)/(x2-x1)*(m_Imagei*w+j-x1)+y1; else temp=(255-y2)/(255-x2)*(m_Imagei*w+j-x2)+y2; fi*w+j=(unsigned char)(temp); memcpy(m_Image,f,w*h); Invalidate(

11、); delete f; 3、幂次变换同上步骤处理,添加如下代码:void CDLView:OnMici() / TODO: Add your command handler code here long w,h; long i,j; if(m_DibHead=NULL) MessageBox(please open one image!); return; w=m_DibHead-biWidth; h=m_DibHead-biHeight; unsigned char *f=new unsigned charw*h; memset(f,0,w*h); float c=2; int r=3;

12、double temp(0); for(i=0;ih;i+) for(j=0;jw;j+) temp=c*pow(m_Imagei*w+j,r); if(temp255) temp=255; fi*w+j=(unsigned char)(temp); memcpy(m_Image,f,w*h); Invalidate(); delete f; 4、对数变换void CDLView:OnDuishu() long w,h; long i,j; if(m_DibHead=NULL) MessageBox(please open one image!); return; w=m_DibHead-bi

13、Width; h=m_DibHead-biHeight; unsigned char *f=new unsigned charw*h; memset(f,0,w*h); double c=100;double temp(0); for(i=0;ih;i+) for(j=0;jw;j+) temp=c*log10(m_Imagei*w+j+1); if(temp255) temp=255; fi*w+j=(unsigned char)(temp); memcpy(m_Image,f,w*h); Invalidate(); delete f; 5、二值化void CDLView:OnYuzhi()

14、 / TODO: Add your command handler code here int T; CDialog_YUZHI mydlg; if(mydlg.DoModal()=IDOK) T=mydlg.m_T; long w,h; long i,j; if(m_DibHead=NULL) MessageBox(please open one image!); return; w=m_DibHead-biWidth; h=m_DibHead-biHeight; unsigned char *f=new unsigned charw*h; memset(f,0,w*h); float te

15、mp(0); for(i=0;ih;i+) for(j=0;j=T) temp=255; else temp=0; fi*w+j=(unsigned char)(temp); memcpy(m_Image,f,w*h); Invalidate(); delete f; 6、反色void CDLView:OnFanse() / TODO: Add your command handler code here long w,h; long i,j; w=m_DibHead-biWidth; h=m_DibHead-biHeight; for(i=0;ih;i+) for(j=0;jw;j+) m_Imagei*w+j=255-m_Imagei*w+j; Invalidate();实验结果1、灰度的线性变换; 变换前 变换后2、灰度的非线性变换;(对数变换) 变换前 变换后3、图像的二值化;阈值50; 变换前 变换后 4、图像的反色处理; 变换前 变换后 实验总结 图像的灰度变换处理是图像增强处理技术中一种非常基础、直接的空间域图像处理方法,也是图像数字化软件和图像显示软件的一个重要组成部分。灰度变换是指根据某种目标条件按一定变换关系逐点改变原图像中每一个像素灰度值的方法。目的是为了改善画质,使图像的显示效果更加清晰。灰度变换有时又被称为图像的对比度增强或对比度拉伸。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1