- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图像的灰度变换.
昆明理工大学(数字图像处理)实验报告
实验名称: 图像的灰度变换
专 业: 电子信息科学与技术 姓 名:
学 号: 成 绩:
[实验目的]
1、理解并掌握灰度变换和方法。
2实现灰度变换。
3不的灰度变换方法对图像效果的影响。的线性变;
2的非线性变换;
3的二值化;
4的; 图像的灰度变换 ( gray scale transformation, GST ) 处理是图像增强处理技术中一种非常基础、直接的空间域图像处理方法,也是图像数字化软件和图像显示软件的一个重要组成部分。灰度变换是指根据某种 目标条件按一定变换关系逐点改变原图像中每一个像素灰度值的方法。目的是为了改善画质,使图像的显示效果更加清晰。灰度变换有时又被称为图像的对比度增强或对比度拉伸。从图像输入装置得到的图像数据, 以浓淡表示, 各个像素与某一灰度值相对应。设原图像像素的灰度值 D=f(x,y),处理后图像像素的灰度值D′= g (x,y),则灰度增强可表示为:
g(x,y)=T[f(x,y)]
或 D ′= T (D)
要求 D 和 D′都在图像的灰度范围之内。函数 T(D) 称为灰度变换函数,它描述了输入灰度 值和输出灰度值之间的转换关系。灰度变换主要针对独立的像素点进行处理,通过改变原始图像数据所占据的灰度范围而使图像在视觉上得到良好的改观,没有利用像素点之间的相互空间关系。因此,灰度变换处理方法也叫做点运算法。点运算可以按照预定的方式改变一幅图像的灰度直方图。除了灰度级的改变是根据某种特定的灰度变换函数进行之外,点运算可以看做是 “从像素到像素”的复制操作。根据g(x,y)=T[f(x,y)] , 可以将灰度变换分为线性变换和非线性变换。
1、 灰度的线性变换
若g(x,y)=T[f(x,y)]是一个线性或分段线性的单值函数,例如
g(x,y)=T[f(x,y)]=af(x,y)+b
则由它确定的灰度变换称为灰度线性变换,简称线性变换。
某图像的灰度范围相当窄,灰度值 D 仅在较小区间内,灰度直方图集中于一部分,所看到的图像模糊,好像没有灰度级似的,造成目标图像灰度值与背景灰度值相接近,人眼无法分辨检出。若利用灰度变换函数进行线性变换,使图像的直方图分布于整个灰度部分,图像的对比度扩展了。
2 、 灰度的非线性变换
某图像的像素集中于中间灰度部分,而其他部分的像素数很少。可以压缩像素数少的部分,扩展像素数集中的部分。如果只想很仔细地解析图像的某一部分,例如图像的高灰度部分时,只要进行增加高灰度部分的灰度级数的变换,压缩其他部分,就能得到增强高灰度部分的图像。这种变化又称为图像的局部增强。
3 、 二值化和反色处理
一幅图像包括 目标物体、背景还有噪声,怎样从多值的数字图像中只取出目标物体,最常用的方法就是设定某一阈值T,用 T 将图像的数据分成两大部分:大于 T的像素群和小于 T 的像素群。这是研究灰度变换最特殊的方法,称为图像的二值化 (binarization ) 。二值化处理就是把图像 f(x,y)分成目标物体和背景两个领域。二值化是数字图像处理中一项最基本的变换方法,通过非零取一、固定阈值、双固定阈值等不同的阈值化变换方法, 使一幅灰度图变成了黑白二值图像。
[实验步骤及主要代码
1、线性变换
一个线性变换对话框用于输入斜率和截距。资源视图窗口,添加DIALOG1的对话框资源,设计如图:
类ialogdl并按下表关联对应变量:
类型变量类型变量名称文本框EDIT1 float m_k 截距文本框 IDC_EDIT2 float m_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_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
文档评论(0)