《数字图像灰度变换技术总结》是一篇好的范文,好的范文应该跟大家分享,看完如果觉得有帮助请记得(CTRL+D)收藏本页。 稿子汇,范文学习文库
篇一:图像的灰度变换稿子汇 www.gaozihui.com
昆明理工大学(数字图像处理)实验报告 实验名称: 图像的灰度变换 专 业: 电子信息科学与技术 姓 名: 学 号:成 绩: 稿子汇 www.gaozihui.com
[实验目的] 公文汇 www.gongwenhui.com
1、理解并掌握灰度变换的基本原理和方法。
公文汇 www.gongwenhui.com
2、编程实现图像灰度变换。
3、分析不同的灰度变换方法对最终图像效果的影响。
[实验内容]
1、灰度的线性变换;
2、灰度的非线性变换;
3、图像的二值化;
4、图像的反色处理;
[实验原理]
图像的灰度变换 ( gray scale transformation,GST ) 处理是图像增强处理技术中一种非常基础、直接的空间域图像处理方法,也是图像数字化软件和图像显示软件的一个重要组成部分。灰度变换是指根据某种 目标条件按一定变换关系逐点改变原图像中每一个像素灰度值的方法。目的是为了改善画质,使图像的显示效果更加清晰。灰度变换有时又被称为图像的对比度增强或对比度拉伸。从图像输入装置得到的图像数据,以浓淡表示,(来自:WwW.fwwang.cn 网络:数字图像灰度变换技术总结)各个像素与某一灰度值相对应。设原图像像素的灰度值 D=f(x,y),处理后图像像素的灰度值D′= g (x,y),则灰度增强可表示为:
g(x,y)=T[f(x,y)]
或 D ′= T (D)
范文TOP100要求 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、线性变换
打开菜单编辑器,在主菜单中添加一菜单项,选中弹出式选项,修改菜单名称为“点运算”。然后建立一下级菜单,给菜单一个ID号,最全面的范文参考写作网站修改caption为“灰度线性变换”,打开类向导,建立消息响应函数,实现图像灰度线性变换。添加一个线性变换对话框用于输入斜率和截距。调出资源视图窗口,添加ID为IDD_DIALOG1的对话框资源,设计如图:
创建对话框类CDialogdl并按下表关联对应变量:
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 unsigned char[w*h];
memset(f,0,w*h);
float temp(0);
for(i=0;i for(j=0;j { temp=k*m_Image[i*w+j]+b; if(temp<0) temp=0; if(temp>255) temp=255; f[i*w+j]=(unsigned char)(temp); } memcpy(m_Image,f,w*h); Invalidate(); delete []f; } 2、分段线性变换 同线性变换一样建立相应的菜单并建立类向导。添加一个线性变换对话框用于输入分段点(x1,y1)、(x2,y2)。调出资源视图窗口,添加ID为IDD_DIALOG3的对话框资源,设计如图: 创建对话框类CDialogdl并按下表关联对应变量: void 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 unsigned char[w*h]; memset(f,0,w*h); float temp(0); for(i=0;i for(j=0;j { if(m_Image[i*w+j] { temp=y1/x1*m_Image[i*w+j]; } else if(m_Image[i*w+j]<=x2&&m_Image[i*w+j]>=x1) { temp=(y2-y1)/(x2-x1)*(m_Image[i*w+j]-x1)+y1;} else { temp=(255-y2)/(255-x2)*(m_Image[i*w+j]-x2)+y2;} f[i*w+j]=(unsigned char)(temp); } memcpy(m_Image,f,w*h); Invalidate(); 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 char[w*h]; memset(f,0,w*h); float c=2; 篇二:数字图像处理实验一 图像的灰度变换 数字图像处理实验报告 (一) 班级:测控1002 姓名:刘宇 学号:06102043 实验一 图像的灰度变换 1.实验任务 熟悉MATLAB软件开发环境,掌握读、写图像的基本方法。 理解图像灰度变换在图像增强的作用,网络掌握图像的灰度线性变换和非线性变换方法。 掌握绘制灰度直方图的方法,掌握灰度直方图的灰度变换及均衡化的方法。2.实验环境及开发工具 Windws2000/XP MATLAB 7.x 3.实验原理 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。在实际应用中,为了突出图像中感兴趣的研究对象,常常要求局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 图1.1 不同的分段线性变换 其对应的数学表达式为: 直方图均衡化 灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的频度,它是图像最基本的统计特征。依据定义,在离散形式下,用rk代表离散灰度级,用pr(rk)代表pr(r),并且有下式成立: Pr(rk)? nk n0?rk?1k?0,1,2,?,l?1 式中:nk为图像中出现rk级灰度的像素数,n是图像像素总数,而nk/n即为频数。 直方图均衡化处理是以累积分布函数变换法为基础的直方图修正法。假定变换函数为 s?T(r)??pr(?)d? r (a) Lena图像(b) Lena图像的直方图 图1.2 Lena图像及直方图 当灰度级是离散值时,可用频数近似代替概率值,即 pr(rk)? nk n 0?rk?1k?0,1,? ,l?1 式中:l是灰度级的总数目,pr(rk)是取第k级灰度值的概率,nk是图像中出现第k级灰度的次数,n是图像中像素总数。 所以积分可以表示为下列累计分布函数(cumulative distribution function,CDF) sk?T(rk)?? j?0k njn ??pr(rj) j?0 k 0?rj?1 k?0,1,?,l?1 4.范文写作实验内容 1、熟悉使用MATLAB语言中对图像数据读取、显示等基本函数:imread()函数、imwrite()函数、imshow()函数、Figure()函数。 2、读入不同情况的图像,请自己编程和调用Matlab中常用灰度变换函数对输入图像进行分段线性变换和非线性变换,比较相应的处理效果。3、读入不同情况的图像,请自己编程和调用Matlab中函数完成对图像进行直方图均衡化处理,试比较与源图的异同。4、课后撰写实验报告。5.实验分析 增加亮度后的图像及灰度直方图 篇三:数字图像处理灰度变换 实验一 1.对一幅图像进行二值化处理 load trees; BW=im2bw(X,map,0.4); imshow(X,map); figure,imshow(BW); 2.将一幅索引色图转化成灰度图像 close all; clear all; load trees; I=ind2gray(X,map); imshow(X,map); figure,imshow(I) 3.将一幅灰度图转化成索引色图像 close all; clear all; I=imread('moon.tif'); X=grayslice(I,16); imshow(I) figure,imshow(X,hot(16)) 4.显示一彩色图像的三基色图像 football=imread('football.jpg'); figure('Name','Football'); imshow(football); figure('Name','Football color planes'); subplot(2,2,1);imshow(football); redfootball=football; redfootball(:,:,2:3)=0; subplot(2,2,2);imshow(redfootball); greenfootball=football; greenfootball(:,:,1)=0; greenfootball(:,:,3)=0; subplot(2,2,3);imshow(greenfootball); bluefootball=football; bluefootball(:,:,1:2)=0; subplot(2,2,4);imshow(bluefootball); 实验五 编写lowpassfilter.m和highpassfilrer.m,保存在work文件夹中 以上是《数字图像灰度变换技术总结》的范文参考详细内容,讲的是关于图像、灰度、变换、函数、线性、方法、处理、实验等方面的内容,看完如果觉得有用请记得(CTRL+D)收藏。
热门技术工作总结范文推荐:
★【教师申报职称工作总结】图形图像处理Illustrator职