实验-灰度图像的线性变换

合集下载

图像灰度变换实验报告

图像灰度变换实验报告

图像灰度变换报告一.实验目的1.学会使用Matlab ;2.学会用Matlab 软件对图像进行灰度变换,观察采用各种不同灰度变换发法对最终图像效果的影响;二.实验内容1.熟悉Matlab 中的一些常用处理函数读取图像:img=imread('filename');//支持TIF,JPEG,GIF,BMP,PNG 等文件格式。

显示图像:imshow(img,G);//G 表示显示该图像的灰度级数,如省略则默认为256。

保存图片:imwrite(img,'filename');//不支持GIF 格式,其他与imread 相同。

亮度变换:imadjust(img,[low_in,high_in],[low_out,high_out]);//将low_in 至high_in 之间的值映射到low_out 至high_out 之间,low_in 以下及high_in 以上归零。

绘制直方图:imhist(img);直方图均衡化:histeq(img,newlevel);//newlevel 表示输出图像指定的灰度级数。

2.获取实验用图像:rice.jpg. 使用imread 函数将图像读入Matlab 。

3 .产生灰度变换函数T1,使得:0.3rr < 0.35 s =0.105 + 2.6333(r – 0.35) 0.35 ≤ r ≤ 0.651 + 0.3(r – 1) r > 0.65 用T1对原图像rice.jpg 进行处理,使用imwrite 函数保存处理后的新图像。

4.产生灰度变换函数T2,使得:s = 5.用T2imwrite 保存处理后的新图像。

6.分别用 s = r 0.6; s = r 0.4; s = r 0.3 对kids.tiff 图像进行处理。

为简便起见,使用Matlab 中的imadjust 函数,最后用imwrite 保存处理后的新图像。

数字图像处理实验一 图像的灰度变换

数字图像处理实验一  图像的灰度变换

数字图像处理实验报告(一)班级:测控1002姓名:刘宇学号:06102043实验一图像的灰度变换1. 实验任务熟悉MATLAB软件开发环境,掌握读、写图像的基本方法。

理解图像灰度变换在图像增强的作用,掌握图像的灰度线性变换和非线性变换方法。

掌握绘制灰度直方图的方法,掌握灰度直方图的灰度变换及均衡化的方法。

2. 实验环境及开发工具Windws2000/XPMATLAB 7.x3. 实验原理灰度变换灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。

在实际应用中,为了突出图像中感兴趣的研究对象,常常要求局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸:图1.1 不同的分段线性变换其对应的数学表达式为:直方图均衡化灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的频度,它是图像最基本的统计特征。

依据定义,在离散形式下,用rk 代表离散灰度级,用pr(rk)代表pr(r),并且有下式成立:n n r P kk r =)( 1,,2,1,010-=≤≤l k r k式中:nk 为图像中出现rk 级灰度的像素数,n 是图像像素总数,而nk/n 即为频数。

直方图均衡化处理是以累积分布函数变换法为基础的直方图修正法。

假定变换函数为ωωd p r T s r r)()(0⎰==(a) Lena 图像 (b) Lena 图像的直方图 图1.2 Lena 图像及直方图当灰度级是离散值时,可用频数近似代替概率值,即1,,1,010)(-=≤≤=l k r nn r p k kk r式中:l 是灰度级的总数目,pr(rk)是取第k 级灰度值的概率,nk 是图像中出现第k 级灰度的次数,n 是图像中像素总数。

所以积分可以表示为下列累计分布函数(cumulative distribution function, CDF)1,,1,010)()(00-=≤≤===∑∑==l k r r p nn r T s j kj j r kj j k k4. 实验内容1、熟悉使用MATLAB 语言中对图像数据读取、显示等基本函数:imread()函数、imwrite()函数、imshow()函数、Figure ()函数。

实验报告---实验三图像灰度变换处理模板

实验报告---实验三图像灰度变换处理模板

计算机科学与工程学院天津理工大学计算机科学与工程学院实验报告2016 至2017 学年第二学期实验三图像灰度变换处理课程名称数字图像处理学号学生姓名卢洪利年级2014专业计算机科学与技术教学班号2实验地点主7-215实验时间2016年4月4日第1节至第2 节主讲教师杨淑莹实验成绩软件运行特色算法分析流程设计报告成绩总成绩实验(三)实验名称图像灰度变换处理软件环境OpenSUSE Leap 42.2Qt 5.6.1硬件环境PC实验目的掌握图像的灰度变换原理,编程实现图像的灰度变换功能。

实验内容(应包括实验题目、实验要求、实验任务等)1.实现灰度直方图。

要求:了解灰度直方图基本原理,实现灰度直方图。

说明:灰度直方图基本原理1 灰度直方图简介2 基本原理任务:(1)在左视图中打开一幅位图。

(2)制作一个【灰度直方图】菜单,将消息映射到右视图中,在右视图中实现灰度直方图。

2.实现灰度线性变换。

要求:了解灰度线性变换基本原理,实现灰度线性变换。

说明:灰度线性变换基本原理任务:(1)在左视图中打开一幅位图。

(2)制作一个【灰度线性变换】菜单,将消息映射到右视图中,在右视图中实现灰度线性变换。

3.实现灰度非线性变换。

要求:了解灰度非线性变换基本原理,实现灰度非线性变换。

说明:灰度非线性变换基本原理1灰度对数变换2灰度幂次变换3灰度指数变换任务:(1)在左视图中打开一幅位图。

(2)制作一个【灰度对数变换】菜单,将消息映射到右视图中,在右视图中实现灰度对数变换。

(3)制作一个【灰度幂次变换】菜单,将消息映射到右视图中,在右视图中实现灰度对数变换。

(4)制作一个【灰度指数变换】菜单,将消息映射到右视图中,在右视图中实现灰度指数变换。

4.实现阈值变换。

要求:了解阈值变换图基本原理,实现灰度阈值变换说明:灰度阈值变换基本原理任务:(1)在左视图中打开一幅位图。

(2)制作一个【阈值变换】菜单,将消息映射到右视图中,在右视图中实现阈值变换。

图像灰度变换实验报告

图像灰度变换实验报告

图像灰度变换报告一.实验目的1.学会使用Matlab ;2.学会用Matlab 软件对图像进行灰度变换,观察采用各种不同灰度变换发法对最终图像效果的影响;二.实验内容1.熟悉Matlab 中的一些常用处理函数读取图像:img=imread('filename');取实验用图像:. 使用imread 函数将图像读入Matlab 。

3 .产生灰度变换函数T1,使得:r < s =+ (r – ≤ r ≤1 + (r – 1) r > 用T1对原图像进行处理,使用imwrite 函数保存处理后的新图像。

4.产生灰度变换函数T2,使得:s = 5.用T26.分别用 s = ; s = ; s = 对图像进行处理。

为简便起见,使用Matlab 中的imadjust 函数,最后用imwrite 保存处理后的新图像。

7.对图像实施反变换(Negative Transformation )。

s =1-r; 使用imwrite 保存处理后的新图像。

8.对图像实施灰度切片当 ≤ r ≤ 时,将r 置为, 当r 位于其他区间时, 保持其灰度与原图像一样。

使用imwrite 保存处理后的新图像。

9.利用灰度变换对做增强处理,突出图中的人物,改善整个图像过于灰暗的背景。

通过调节参数,观察变换后的图像与原始图像的变化,寻找出最佳的灰度变换结果。

写出所采用的拉伸表达式。

三.实验结果与分析1.采用T1函数变换前 变换后函数图像该方法采用分段函数对图像进行处理,对灰度值大的进行拉伸,使灰度增大,而灰度值小的,也进行拉伸,使灰度值更小,从而产生如图所示的结果。

2.采用T2函数变换前变换后T2函数图T2函数也比较好的完成了T1函数所达到的效果,但是T2函数更加平滑一点,对于图像的边界处理的较好一些。

3.变换前图像变换前灰度图采用s = 变换采用s = 变换采用s = 变换三种函数的对比三种变换方式都对图像的每一个像素灰度作线性拉伸,有效地改善图像的视觉效果,但如果选择的拉伸尺度过大,会引起图像的失真,利用s = 变换是比较适合的。

灰度变换算法原理

灰度变换算法原理

灰度变换算法原理
灰度变换是一种将图像的灰度级进行适当调整的方法,可以改善图像的对比度和亮度。

灰度变换的基本原理是将输入图像的每个像素点的灰度级通过某种函数进行映射转换,并得到输出图像的像素灰度级。

常用的灰度变换函数有线性变换、非线性变换和直方图均衡化等。

1. 线性变换:
线性变换是灰度变换中最简单的一种方法。

它通过一个线性函数将输入图像的灰度级映射到输出图像的灰度级。

线性变换的数学表达式为:
g(x,y) = a*f(x,y) + b
其中,g(x,y)为输出图像的像素灰度级,f(x,y)为输入图像的像素灰度级,a和b为常数。

2. 非线性变换:
非线性变换是通过非线性函数将输入图像的灰度级映射到输出图像的灰度级。

非线性变换可以对输入图像的不同灰度级进行不同的映射处理,从而调整图像的对比度和亮度。

常用的非线性变换函数有幂次变换、对数变换和指数变换等。

3. 直方图均衡化:
直方图均衡化是一种通过对输入图像的直方图进行变换,从而使得输出图像具有更均匀的灰度分布的方法。

通过直方图均衡化,可以增强图像的对比度,使得图像中细节更加清晰。

直方图均衡化的基本原理是将输入图像的累计分布函数映射到均匀
分布,使得输出图像的直方图近似均匀。

总结起来,灰度变换算法原理是通过对输入图像的灰度级进行适当调整,使用线性变换、非线性变换,或者直方图均衡化等方法,从而改变输出图像的灰度级,达到调整图像对比度和亮度的目的。

数字图像处理实验报告

数字图像处理实验报告

《数字图像处理》实验报告目录第一章实验一数字图像的基本操作和灰度变换 (3)1.1实验目的 (3)1.2实验原理与方法 (3)1.3实验内容与结果分析 (4)1.4思考问题 (8)第二章实验二图像的空间域增强 (9)2.1实验目的 (9)2.2实验原理与方法 (9)2.3实验内容与结果分析 (10)2.4思考问题 (16)第三章实验三图像的傅里叶变换和频域处理 (17)3.1实验目的 (17)3.2实验原理与方法 (17)3.3实验内容与结果分析 (18)附录:实验代码 (23)第一章实验一数字图像的基本操作和灰度变换1.1实验目的①了解数字图像的基本数据结构②熟悉Matlab中数字图像处理的基本函数和基本使用方法③掌握图像灰度变换的基本理论和实现方法④掌握直方图均衡化增强的基本理论和实现方法1.2实验原理与方法1.2.1图像灰度的线性变换灰度的线性变换可以突出图像中的重要信息。

通常情况下,处理前后的图像灰度级是相同的,即处理前后的图像灰度级都为[0,255]。

那么,从原理上讲,我们就只能通过抑制非重要信息的对比度来腾出空间给重要信息进行对比度展宽。

设原图像的灰度为),(j i f ,处理后的图像的灰度为),(j i g ,对比度线性展宽的原理示意图如图1.1所示。

假设原图像中我们关心的景物的灰度分布在[a f ,b f ]区间内,处理后的图像中,我们关心的景物的灰度分布在[a g ,b g ]区间内。

在这里)(a b g g g -=∆()b a f f f >∆=-,也就是说我们所关心的景物的灰度级得到了展宽。

根据图中所示的映射关系中分段直线的斜率我们可以得出线性对比度展宽的计算公式:),(j i f α, a f j i f <≤),(0=),(j i ga a g f j i f +-)),((β,b a f j i f f <≤).,( (1-1)b b g f j i f +-)),((γ,255),(<≤j i f f b(m i ,3,2,1Λ=;n j ,3,2,1Λ=) 其中,a a f g =α,a b a b f f g g --=β,bbf g --=255255γ,图像的大小为m ×n 。

OpenCV计算机视觉学习(3)——图像灰度线性变换与非线性变换(对数变换,伽马变换)

OpenCV计算机视觉学习(3)——图像灰度线性变换与非线性变换(对数变换,伽马变换)

OpenCV计算机视觉学习(3)——图像灰度线性变换与⾮线性变换(对数变换,伽马变换)如果需要处理的原图及代码,请移步⼩编的GitHub地址 传送门: 下⾯主要学习图像灰度化的知识,结合OpenCV调⽤ cv2.cvtColor()函数实现图像灰度化,使⽤像素处理⽅法对图像进⾏灰度化处理。

1. 图像灰度化1.1 图像灰度化的⽬的 将彩⾊图像转化为灰度图像的过程是图像的灰度化过程。

彩⾊图像中的每个像素的颜⾊由 R, G, B三个分量决定,⽽每个分量中可以取值 0~255,这样⼀个像素点可以有 1600多万(255*255*255=16581375)的颜⾊的变化范围。

⽽灰度图像是 R,G,B三个分量相同的⼀种特殊的彩⾊图像,其中⼀个像素点的变换范围为 256 种,所以在数字图像处理中⼀般将各种格式的图像转换为灰度图像以使后续的图像计算量少⼀些。

灰度图像的描述与彩⾊图像⼀样仍然反映了整幅图像的整体和局部的⾊度和⾼亮等级的分布和特征。

1.2 图像灰度化原理 图像灰度化是将⼀幅彩⾊图像转换为灰度化图像的过程。

彩⾊图像通常包括R、G、B三个分量,分别显⽰出红绿蓝等各种颜⾊,灰度化就是使彩⾊图像的R、G、B三个分量相等的过程。

灰度图像中每个像素仅具有⼀种样本颜⾊,其灰度是位于⿊⾊与⽩⾊之间的多级⾊彩深度,灰度值⼤的像素点⽐较亮,反之⽐较暗,像素值最⼤为255(表⽰⽩⾊),像素值最⼩为0(表⽰⿊⾊)。

图像灰度化核⼼思想是 R = G = B ,这个值也叫灰度值。

上表中Gray表⽰灰度处理之后的颜⾊,然后将原始RGB(R,G,B)颜⾊均匀地替换成新颜⾊RGB(Gray,Gray,Gray),从⽽将彩⾊图⽚转化为灰度图像。

⼀种常见的⽅法是加权平均灰度处理,这种效果是最好的。

是将RGB三个分量求和再取平均值,但更为准确的⽅法是设置不同的权重,将RGB分量按不同的⽐例进⾏灰度划分。

⽐如⼈类的眼睛感官蓝⾊的敏感度最低,敏感最⾼的是绿⾊,因此将RGB按照0.299、0.587、0.114⽐例加权平均能得到较合理的灰度图像,如公式所⽰:1.3 图像灰度化的三种⽅法1.3.1 OpenCV直接灰度化 下⾯的这种⽅法,在读取图⽚的时候,直接将图⽚转化为灰度化:import cv2img = cv2.imread(photo_file, cv2.IMREAD_GRAYSCALE) 得到的img是⼀个函数。

灰度线性变换

灰度线性变换

灰度线性变换
灰度线性变换是一种用于MCU图像增强处理的常用方法。

它是把图像
的每个像素点的灰度值从原始灰度级映射到新的灰度级,实现对图像亮度、对比度等特性进行调节,以达到增强图像质量的目的。

灰度线性变换的基
本形式是:s=a*r+b,其中,s、r分别表示图像灰度变化后和变化前的灰
度值,a、b分别为变化系数。

灰度线性变换的过程依赖于变换参数a、b的选取,a的取值范围是0
至1,表示变换的量度程度,也就是变化的幅度;而b的取值范围是0至255,表示变换的量度偏移,也就是亮度上的平衡值。

如果a取值大于1,就会使图像变得更亮,a取值小于1时,图像就会变暗;如果b取值大于1,则图像会变亮;反之,图像就变暗。

通过选择合适的变换参数,就可以实现灰度线性变换,使图像质量得
到提升。

此外,灰度线性变换还可以被用来增强图像的对比度,提高图像
的色彩饱和度,从而达到更好的视觉效果。

数字图像处理实验二图像灰度变换

数字图像处理实验二图像灰度变换

实验二图像灰度变‎换实验一、实验目的熟悉亮度变‎换函数的使‎用熟悉灰度图‎像的直方图‎的表示;掌握图像增‎强的基本方‎法:灰度变换、直方图均衡‎;二、实验内容灰度线性变‎换、灰度直方图‎、直方图均衡‎处理;灰度变换是‎图像增强的‎一种重要手‎段,使图像对比‎度扩展,图像更加清‎晰,特征更加明‎显。

灰度级的直‎方图给出了‎一幅图像概‎貌的描述,通过修改灰‎度直方图来‎得到图像增‎强。

三、实验原理1.函数ima‎d just‎函数ima‎d just‎是对灰度图‎像进行亮度‎变换的基本‎命令,语法为:g = imadj‎u st(f, [low_i‎n high_‎in], [low_o‎u t high_‎out], gamma‎)将图像f中‎的亮度值(灰度值)映射到新图‎像g中,即将low‎_in至h‎i gh_i‎n 之间的值‎映射到lo‎w_out‎至high‎_out之‎间的值。

low_i‎n以下的灰‎度值映射为‎l ow_o ‎u t,high_‎in以上的‎灰度值映射‎为h igh‎_out,函数ima‎d just‎的矩阵[ ]内参数均指‎定在0和1‎之间,[low_i‎n high_‎i n]和[low_o‎u t high_‎ou t]使用空矩阵‎[ ]会得到默认‎值[0 1]。

若high‎_out小‎于l ow_‎ou t,则输出图像‎会反转。

参数gam‎m a指定了‎曲线(变换函数)的形状,若gamm‎a小于1,则映射被加‎权至更高(更亮)的输出值;若gamm‎a大于1,则映射被加‎权至更低(更暗)的输出值。

若省略了函‎数的参量g‎amma,则gamm‎a默认为1‎——即线性映射‎。

>>f = imrea‎d(‘filen‎ame’)>>imsho‎w(f)>>g1 = imadj‎u st(f, [0 1], [1 0]); %图像反转>>figur‎e, imsho‎w(g1) %figur‎e命令表示‎同时显示多‎个窗口>>g2 = imadj‎u st(f, [0.5 0.75], [0 1]);%将0.5至0.75之间的‎灰度级扩展‎到范围0和‎1之间>>figur‎e, imsho‎w(g2)>>g3 = imadj‎u st(f, [ ], [ ], 2) %使用gam‎m a值>>figur‎e, imsho‎w(g3)2.直方图处理‎与函数绘图‎图像的直方‎图定义为离‎散函数:h(r k) = n k绘制图像的‎直方图,函数imh‎i st,语法为:h = imhis‎t(f, b)f为输入图‎像,h为直方图‎h(r k),b是用于形‎成直方图的‎灰度级个数‎,若b省略,则默认值为‎256。

灰度的线性变换

灰度的线性变换

灰度的线性变换功能:通过将图像中的所有的点的灰度按照线性灰度变换函数进⾏变换,最常见的线性变换就是反转。

算法:灰度的线性变换⽤到的线性灰度变换函数f(x)是⼀个⼀维线性函数:f(x) = kx + d,应⽤到图像上就带⼈各像素点的灰度值:Gd=f(Gs) = k*Gs + d;其中k为线性函数的斜率,d为线性函数在y轴的截距。

Gs表⽰输⼊图像的灰度,Gd表⽰输出图像的灰度。

当k>1时,输出图像的对⽐度将增⼤;当k<1时,输出图像的对⽐度将减⼩;当k=1且d≠0时,操作使所有的灰度值上移或下移,其效果是使整个图像变暗或变亮。

当k<0,暗区域将变亮,亮区域将变暗,点运算完成了图形求补运算。

特殊情况:1、当k=1,d=0时,输出图像与原图像相同。

2、当k=-1,d=255时,输出图像的灰度正好相反。

实现代码:for( int i=0; i<iPixelHeight; i++ ){for( int j=0; j<iPixelWidth; j++ ){//指向像素数据的第i⾏,第j列/个像素的指针lpSrc = (unsigned char*)lpDIBBits + lLineBytes * (lHeight-1-i) + j; //lLineBytes * (lHeight-1-i) + j不懂fTemp = k*(*lpSrc) + d; //线性变换if( fTemp > 255 ){*lpSrc = 255;}else if ( fTemp<0 ){*lpSrc = 0}else{*lpSrc = (unsigned char)(fTemp+0.5); //四舍五⼊}}}所谓的饱和度,指的其实是⾊彩的纯度,纯度越⾼,表现越鲜明,纯度较低,表现则较黯淡,⾊饱和度表⽰光线的彩⾊深浅度或鲜艳度,取决于彩⾊中的⽩⾊光含量,⽩光含量越⾼,即彩⾊光含量就越低,⾊彩饱和度即越低,反之亦然。

实验-灰度图像的线性变换

实验-灰度图像的线性变换

实验三灰度图像的线性变换一、实验目的1.了解灰度变换的基本原理;2.掌握线性变换处理的方法;3.利用VC编写图像线性变换处理的程序;4.在微机上调试程序。

二、实验原理灰度级修正是对图像在空间域进行增强的简单而效果明显的方法,根据图像降质不同的原因以及对图像特征的不同要求而采用不同的修正方法。

主要有灰度变换法和修正法。

它们是把原图像的灰度函数f(x,y)经过一个变换函数T(.)变换成一个新的图像函数g(x,y),即g(x,y)=T[f(x,y)]通过变换,达到对比度增强的效果,要注意在变换的过程中,对每一个象素(x,y)都经过了同样的处理,因此该方法又叫做点处理。

本实验完成灰度图像的线性变换处理。

1.灰度变换法一般成像系统只具有一定的亮度范围,亮度的最大值与最小值之比称为对比度。

由于形成图像的系统亮度有限,常出现对比度不足的弊病,使人眼观看图像时视觉效果很差,通过灰度变换法可以大大改善人的视觉效果。

灰度变换法又可分为三种:线性、分段线性及非线性变换。

(1)线性变换假定原图像f(x,y)的灰度范围为[a,b],希望变换后图像g(x,y)的灰度范围扩展至[c,d],线性变换表示式为:g(x,y)=[(d-c)/(b-a)] f(x,y)+c此关系式可用图3-1表示。

若图像中大部分象素的灰度级分布在区间[a,b],很小部分的灰度级超出了此区间,为改善增强的效果,可令:c 0< f(x,y)<ag(x,y)= [(d-c)/(b-a)] f(x,y)+c a≤ f(x,y)≤bd b< f(x,y)< F max其中F max为输入图像的最大灰度值。

图3-1 灰度范围线性变换(2)分段线性变换为了突出感兴趣的目标或灰度区间,相对抑制那些不感兴趣的目标或灰度区间,常采用分段线性变换法。

常用的是三段线性变换法,如图3-2所示,其数学表达式为:(c/a)f(x,y) 0<f(x,y)<ag(x,y)= [(d-c)/(b-a)]f(x,y)+c a≤f(x,y)≤b[(G max-d)/(F max-b)][f(x,y)-b+d] b<f(x,y)≤F max图中对灰度区间[a,b]进行了线性变换,而灰度区间[0,a] [b,F max]受到了压缩。

图像处理灰度变换实验

图像处理灰度变换实验

图像处理灰度变换实验一.实验目的1.熟悉和掌握利用matlab 工具进行数字图像的读、写、显示、像素处理等数字图像处理的基本步骤和流程。

2.熟练掌握各种空间域图像增强的基本原理及方法。

3.熟悉通过灰度变换方式进行图像增强的基本原理、方法和实现。

4.熟悉直方图均衡化的基本原理、方法和实现。

二.实验原理(一)数字图像的灰度变换灰度变换是图像增强的一种经典而有效的方法。

灰度变换的原理是将图像的每一个像素的灰度值通过一个函数,对应到另一个灰度值上去从而实现灰度的变换。

常见的灰度变换有线性灰度变换和非线性灰度变换,其中非线性灰度变换包括对数变换和幂律(伽马)变换等。

1、线性灰度变换1)当图像成像过程曝光不足或过度,或由于成像设备的非线性和图像记录设备动态范围太窄等因素,都会产生对比度不足的弊病,使图像中的细节分辨不清,图像缺少层次。

这时,可将灰度范围进行线性的扩展或压缩,这种处理过程被称为图像的线性灰度变换。

对灰度图像进行线性灰度变换能将输入图像的灰度值的动态范围按线性关系公式拉伸扩展至指定范围或整个动态范围。

2)令原图像f (x,y )的灰度范围为[a,b],线性变换后得到图像g (x,y ),其灰度范围为[c,d],则线性灰度变换公式可表示为a y x fb y x f a b y x fc c a y x f a b cd d y x g <≤≤>+---=),(),(),(,,]),([,),( (1)由(1)式可知,对于介于原图像f (x,y )的最大和最小灰度值之间的灰度值,可通过线性变换公式,一一对应到灰度范围[c,d]之间,其斜率为(d-c)/(b-a);对于小于原图像的最小灰度值或大于原图像的最大灰度值的灰度值,令其分别恒等于变换后的最小和最大灰度值。

变换示意图如图1所示。

图1 线性灰度变换示意图当斜率大于一时,变换后的灰度值范围得到拉伸,图像对比度得到提高;当斜率小于一时,变换后的灰度值范围被压缩,最小与最大灰度值的差变小,图像对比度降低;当斜率等于一时,相当于对图像不做变换。

数字图像处理实验报告-线性灰度变换-图像几何变换-频域图像增强技术-图像分割

数字图像处理实验报告-线性灰度变换-图像几何变换-频域图像增强技术-图像分割

线性灰度变换一、实验目的1结合实例学习如何在视频显示程序中增加图像处理算法;2理解和掌握图像的线性变换和直方图均衡化的原理和应用;3了解平滑处理的算法和用途,学习使用均值滤波、中值滤波和拉普拉斯锐化进行图像增强处理的程序设计方法;4 了解噪声模型及对图像添加噪声的基本方法。

二、实验原理1 灰度线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。

)],([),(y x f T y x g =⎪⎩⎪⎨⎧<≤+-<≤+-≤≤=255),(]),([),( ]),([),(0 ),(),(y x f b g b y x f b y x f a g a y x f a y x f y x f y x g b a γβαn y m x ,2,1 ,,,2,1==2 直方图均衡化通过点运算将输入图像转换为在每一级上都有相等像素点数的输出图像。

按照图像概率密度函数PDF 的定义:1,...,2,1,0 )(-==L k nn r p k k r 通过转换公式获得:1,...,2,1,0 )()(00-====∑∑==L k n n r p r T s k j k j j j r k k3 均值(中值)滤波是指在图像上,对待处理的像素给定一个模板,该模板包括了其周围的临近像素。

将模板中的全体像素的均值(中值)来代替原来像素值的方法。

4 拉普拉斯算子如下:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--------111181111 拉普拉斯算子首先将自身与周围的8个像素相减,表示自身与周围像素的差异,再将这个差异加上自身作为新像素的灰度。

三、实验步骤1 启动MATLAB 程序,对图像文件分别进行灰度线性变换(参考教材57页,例4.1)、直方图均衡化(参考教材64页,例4.6)、均值滤波(参考教材69页,例4.9)、中值滤波(参考教材73页,例4.11)和梯度锐化操作(参考教材76页,例4.12)。

添加噪声,重复上述过程观察处理结果。

Python图像运算之图像灰度线性变换详解

Python图像运算之图像灰度线性变换详解

Python图像运算之图像灰度线性变换详解⽬录⼀.灰度线性变换⼆.图像灰度上移变换三.图像对⽐度增强变换四.图像对⽐度减弱变换五.图像灰度反⾊变换六.总结⼀.灰度线性变换图像的灰度线性变换是通过建⽴灰度映射来调整原始图像的灰度,从⽽改善图像的质量,凸显图像的细节,提⾼图像的对⽐度。

灰度线性变换的计算公式如(12-1)所⽰:该公式中DB表⽰灰度线性变换后的灰度值,DA表⽰变换前输⼊图像的灰度值,α和b为线性变换⽅程f(D)的参数,分别表⽰斜率和截距[1-4]。

当α=1,b=0时,保持原始图像当α=1,b!=0时,图像所有的灰度值上移或下移当α=-1,b=255时,原始图像的灰度值反转当α>1时,输出图像的对⽐度增强当0<α<1时,输出图像的对⽐度减⼩当α<0时,原始图像暗区域变亮,亮区域变暗,图像求补如图12-1所⽰,显⽰了图像的灰度线性变换对应的效果图。

⼆.图像灰度上移变换该算法将实现图像灰度值的上移,从⽽提升图像的亮度。

DB=DA+50具体实现代码如下所⽰。

由于图像的灰度值位于0⾄255区间之内,所以需要对灰度值进⾏溢出判断。

# -*- coding: utf-8 -*-# By:Eastmountimport cv2import numpy as npimport matplotlib.pyplot as plt#读取原始图像img = cv2.imread('luo.png')#图像灰度转换grayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#获取图像⾼度和宽度height = grayImage.shape[0]width = grayImage.shape[1]#创建⼀幅图像result = np.zeros((height, width), np.uint8)#图像灰度上移变换 DB=DA+50for i in range(height):for j in range(width):if (int(grayImage[i,j]+50) > 255):gray = 255else:gray = int(grayImage[i,j]+50)result[i,j] = np.uint8(gray)#显⽰图像cv2.imshow("Gray Image", grayImage)cv2.imshow("Result", result)#等待显⽰cv2.waitKey(0)cv2.destroyAllWindows()其输出结果如图12-2所⽰,图像的所有灰度值上移50,图像变得更⽩了。

数字图像处理 实验 灰度变换

数字图像处理 实验 灰度变换
非线性拉伸不是对图像的整个灰度范围进行扩展而是有选择地对某一灰度值范围进行扩展其他范围的灰度值则有可能被压缩
XXXXXXX
实验名称图像灰度变换
实验时间年月日
专业姓名学号
预习操作座位号
教师签名总评
一、实验目的:
1.深入理解图像灰度变换的基本原理。
2.学习编程实现图像灰度变换,并分析各种算法的效果。
二、实验原理:
现行拉伸:
void CHangView::OnXxls()
{
// TODO: Add your command handler code here
long w,h;
unsigned char *lpsrc;
lpsrc=m_Image;
w=m_DibHead->biWidth;
h=m_DibHead->biHeight;
对数变换:对数变换的一般表达式为:s = c log(1 + r),其中C是一个常数。低灰度区扩展,高灰度区压缩。图像加亮、减暗。非线性拉伸不是对图像的整个灰度范围进行扩展,而是有选择地对某一灰度值范围进行扩展,其他范围的灰度值则有可能被压缩。
三、实验内容:
与实验二建立菜单方式相同。
建立相应的类向导使之建立函数(步骤与实验二相同),函数代码如下:
}
分段变换:
void CHangView::OnFenduan()
{
// TODO: Add your command handler code here
long w,h;
unsigned char *lpsrc;
lpsrc=m_Image;
w=m_DibHead->biWidth;
h=m_DibHead->biHeight;

灰度线性变换

灰度线性变换

灰度线性变换
灰度线性变换(Gray-Level Linear Transformation, GLT)是一种常用的图像处理技术,可以通过线性变换来改变图像的亮度和对比度。

一般来说,每个像素的灰度都是由一个介于0到255之间的整数确定的,分别对应黑色和白色。

灰度线性变换就是通过改变灰度值的映射关系,来调整图像的亮度和对比度。

灰度线性变换的原理可以用以下直观的公式来描述:
g(x,y)=T(f(x,y)) 其中,T(x1)是为每个亮度值x1所设置的新的亮度值;
f(x,y)表示原图像的每个像素点;
一般来说,变换函数T(x1)可以用一次函数来描述,即 T(x1)=ax1+b (其中,a,b 为实数常量),由此可知,a的取值范围在0-1之间,表示图像亮度的比例; b的取值范围为0-255,表示图像的偏移量。

正如我们所知,灰度线性变换的优点是可以简单、快速地调整图像的亮度和对比度。

缺点是它不能改变图像的分布特征,只能做一些简单的变换,而不能实现图像的特定效果处理,比如拉伸度和畸变处理等。

因此,灰度线性变换通常只用于处理图像的简单变换,比如调整图像的亮度和对比度的需求,或者在彩色图像转换为灰度图像的过程中。

一般来说,使用灰度线性变换容易实现,而且对于一些常用的算法有很好的效果,所以经常被用来处理图像。

X-CT模拟实验-数字图像灰度变换技术

X-CT模拟实验-数字图像灰度变换技术

X-CT模拟实验1——数字图像灰度变换技术一、实验目的1.了解数字图像处理技术;2.观察图像处理效果,体会数字图像处理技术的重要性;3.比较各种处理方法所得图像质量,对图像处理有个比较全面的了解。

二、实验仪器计算机、X-CT模拟实验软件、捕获图片软件、打印机三、实验原理灰度变换技术是数字图像处理技术中的对比度增强技术中的一种。

灰度变换技术分为线性变换和非线性变换两大类。

线性变换属于直线变换,满足的关系为bkxy+=,其中x为原始图像,y为变换后的图像,k、b分别为变换常量。

非线性变换属曲线变换,变换函数有对数函数和指数函数等。

线性变换技术处理的是曝光不足或过度的情况。

图像灰度局限在一个很小的范围,其灰度值偏低或偏高的情况。

这时显示器上显示的是一个模糊不清的、似乎没有灰度层次的图像。

用一个线性单值函数对图像中的每一个像素进行再运算,增大像素之间的灰度差值,将有效的改善图像效果。

非线性变换的目的可以是拉伸兴趣区的灰度细节,相对抑制不感兴趣区的灰度级,使感兴趣区的图像得以改善;也可以是通过扩展低值灰度区,压缩高值灰度区域的方法,使低值灰度区域的图像细节更清楚;还可以用于曝光范围处在非线性区,图像对比度差的情况,或显示器存在转移特性的非线性等等各种情况。

非线性变换技术是用一些非线性函数,如分段函数、对数函数、指数函数等作为映射函数,实现图像灰度的非线性变换。

本实验主要是改变低值对比度图像,使原低对比度图像变换后,清晰的展现原图像中相关的一部分或全部。

本实验提供了线性函数、对数函数、指数函数作为映射函数,输入不同参数,可以观察利用各种处理技术之后原始图像产生的效果。

四、实验内容1.从“帮助”框中提供的第一组图像中,任选一个,进行线性和非线性的四种变换,用捕获图片软件,截取一幅最佳变换图像的照片;2.从“帮助”框中提供的第二组图像中,任选一个,进行线性和非线性的四种变换,选出最佳变换图像。

3.利用“CT窗口技术”,观察窗宽、窗位对图像的影响。

图像的线性变换

图像的线性变换

实验二 图像的线性变换实验学时:2学时实验类型:综合实验要求:必修一、实验目的通过掌握图像直方图的绘制方法,深入理解图像直方图对于观察图像的意义。

通过掌握灰度变换的方法,并深入了解图形经过灰色变换后,动态范围扩大,图像层次显得清晰,图像特征明显,更有利于对图像的目视观察。

二、实验内容(1)编程实现图像的直方图。

(2)编程并实现窗口灰度变换,分段线性变换,显示图像的直方图和灰度图,观察图像灰度的结果。

(3)在实验过程中,改变线性分段范围,观察图像灰度变换后的目视效果变化情况。

三、实验原理、方法和手段(1)灰度的线性变换若()[(,)]g x T f x y =是一个线性或分段线性的单值函数,灰度变换方程为: ()[(,)](,)g x T f x y af x y b ==+ 则由它确定的 灰度变换为灰度变换,简称线性变换。

(2)窗口灰度变换在曝光不足或曝光过度的情况下,或景物本身灰度级很少,图像的灰度可能会局限在一定的很小的范围内。

当图像中大部分的灰度级在[,]L U 范围内,少部分像素分布在小于L 和大于U 的区间内时,限定一个窗口范围,该窗口中的灰度值保持不变,对小于该窗口下限的灰度值直接设置为0;大于该窗口上限的灰度值直接设置为255,将有效地改善图像视觉效果。

灰度窗口变换函数表达式如下:0()255f x x ⎧⎪=⎨⎪⎩x L L x U x U <≤≤>图1其中L和U分别是图中窗口的下限和上限。

(3)分段线性变换分段线性变换和灰度的线性变换有点类似,都用到了灰度的线性变换。

但不同之处在于分段线性变换不是完全的线性变换,而是分段进行线性变换,将图像灰度区间分成两段甚至多段,分别作线性变换称之为分段线性变换。

分段线性变换的优点是可以根据用户的需要,拉伸特征物体的灰度细节,相对抑制不感兴趣的灰度级。

图2灰度变换函数如下:112112112222/()()()/()(255)()/(255)y x x f x y y x x x x y y x x x y ⋅⎧⎪=---+⎨⎪---+⎩1122x x x x x x x <≤≤> 其中,11(,)x y 和 22(,)x y 是图中两个转折点坐标。

普通化学实验b 灰度变换

普通化学实验b 灰度变换

普通化学实验B:灰度变换一、实验目的本实验旨在通过灰度变换的方法,将一张灰度图像进行处理,使其达到更好的显示效果。

二、实验原理灰度变换是一种常用的图像处理方法,其主要作用是对图像的灰度值进行调整,使其达到更好的视觉效果。

灰度变换的原理是通过对图像像素值进行线性或非线性的映射,将原图像的灰度值映射到一个新的灰度值域中,从而改变图像的亮度、对比度等特征,使图像更加清晰、明亮。

常见的灰度变换方法包括线性灰度变换、对数灰度变换、伽马灰度变换等。

其中,线性灰度变换是最为简单和常用的一种方法,其公式为:g(x,y) = a*f(x,y) + b其中,g(x,y)为变换后的像素值,f(x,y)为原始像素值,a和b为常数,可以通过调整它们的取值来改变图像的亮度和对比度。

三、实验步骤1. 打开Matlab软件,导入一张灰度图像。

2. 对图像进行线性灰度变换,调整a和b的取值,观察变换后的图像效果。

3. 尝试使用对数灰度变换和伽马灰度变换对图像进行处理,比较不同方法的效果差异。

4. 将处理后的图像保存到本地。

四、实验结果通过对一张灰度图像进行线性灰度变换、对数灰度变换和伽马灰度变换,得到了如下结果:(1)原始图像(2)线性灰度变换(3)对数灰度变换(4)伽马灰度变换可以看出,经过灰度变换后,图像的亮度、对比度等特征得到了明显的改善,使图像更加清晰、明亮。

五、实验总结本实验通过灰度变换的方法,对一张灰度图像进行了处理,得到了更好的显示效果。

不同的灰度变换方法可以对图像的亮度、对比度等特征进行调整,使图像更加清晰、明亮。

在实际应用中,可以根据需要选择不同的灰度变换方法,以达到最佳的视觉效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三灰度图像的线性变换一、实验目的1.了解灰度变换的基本原理;2.掌握线性变换处理的方法;3.利用VC编写图像线性变换处理的程序;4.在微机上调试程序。

二、实验原理灰度级修正是对图像在空间域进行增强的简单而效果明显的方法,根据图像降质不同的原因以及对图像特征的不同要求而采用不同的修正方法。

主要有灰度变换法和修正法。

它们是把原图像的灰度函数f(x,y)经过一个变换函数T(.)变换成一个新的图像函数g(x,y),即g(x,y)=T[f(x,y)]通过变换,达到对比度增强的效果,要注意在变换的过程中,对每一个象素(x,y)都经过了同样的处理,因此该方法又叫做点处理。

本实验完成灰度图像的线性变换处理。

1.灰度变换法一般成像系统只具有一定的亮度范围,亮度的最大值与最小值之比称为对比度。

由于形成图像的系统亮度有限,常出现对比度不足的弊病,使人眼观看图像时视觉效果很差,通过灰度变换法可以大大改善人的视觉效果。

灰度变换法又可分为三种:线性、分段线性及非线性变换。

(1)线性变换假定原图像f(x,y)的灰度范围为[a,b],希望变换后图像g(x,y)的灰度范围扩展至[c,d],线性变换表示式为:g(x,y)=[(d-c)/(b-a)] f(x,y)+c此关系式可用图3-1表示。

若图像中大部分象素的灰度级分布在区间[a,b],很小部分的灰度级超出了此区间,为改善增强的效果,可令:c 0< f(x,y)<ag(x,y)= [(d-c)/(b-a)] f(x,y)+c a≤ f(x,y)≤bd b< f(x,y)< F max其中F max为输入图像的最大灰度值。

图3-1 灰度范围线性变换(2)分段线性变换为了突出感兴趣的目标或灰度区间,相对抑制那些不感兴趣的目标或灰度区间,常采用分段线性变换法。

常用的是三段线性变换法,如图3-2所示,其数学表达式为:(c/a)f(x,y) 0<f(x,y)<ag(x,y)= [(d-c)/(b-a)]f(x,y)+c a≤f(x,y)≤b[(G max-d)/(F max-b)][f(x,y)-b+d] b<f(x,y)≤F max图中对灰度区间[a,b]进行了线性变换,而灰度区间[0,a] [b,F max]受到了压缩。

通过细心调整折线拐点的位置及控制分段直线的斜率,可对任一灰度区间进行扩展或压缩。

这种变换适用于在黑色或白色附近有噪声干扰的情况。

例如照片中的划痕,由于变换后0~a以及b~F max之间的灰度受到压缩,因而使噪声干扰得到减弱。

图3-2 分段线性变换(3)非线性灰度变换当用某些非线性函数,例如用对数函数作为映射函数时,可实现图像灰度的非线性变换,对数变换的一般式为:g(x,y)=a+ln[f(x,y)+1]/(b*ln[c])这里a、b、c是便于调整曲线的位置和形状而引入的参数,它使低灰度范围的图像得以扩展而高灰度图像得到压缩,从而使图像的分布均匀与人的视觉特性相匹配。

指数变换的一般式为:g(x,y)=b c[f(x,y)-a]-1其中a、b、c三个参数用来调整曲线的位置和形状,它的效果与对数相反,它将对图像的高灰度区给予较大的扩展。

2.灰度图像的线性变换算法流程将灰度图像f(x,y)在区间[a,b]上的象素值,变换到区间[c,d](c<d)上。

a,b并不一定要求是f(x,y)的最小和最大灰度值,可以随意设定。

因此算法的功能是把输入图像的灰度区间[a,b] 变换到输出图像的灰度区间[c,d],也可把特定灰度值区间扩展到整个区间,即进行对比度伸展处理。

输入数组ii[Row][Col]=输入图像(灰度图像)输出数组oi[Row][Col]=输出图像(灰度图像)输入参数=变换前区间两端点输入参数=变换后区间两端点算法流程图如下:图3-3 图像的线性变换图像3.灰度图像的对数变换算法流程当灰度图像f的各象素点f(x,y)的值域在区间[a,b](a<b)上时,可将它按自然对数变换到区间[c,d](c<d)上,从而求得输出图像g。

因此算法的功能是把输入图像区间[a,b]对数变换到输出图像的灰度区间[c,d],灰度值为0时,用一个很小的数eps置换后再计算对数值。

输入数组ii[Row][Col]=输入图像输出数组oi[Row][Col]=输出图像输入参数=变换前区间两端点输入参数=变换后区间两端点算法流程图如下:图3-4 图像对数变换三、实验前准备1.预习本实验中关于图像灰度变换的基本原理;2.了解本实验的目的和实验内容。

四、实验内容1.根据图像线性变换处理的方法和流程,利用VC编写图像线性变换处理的程序;2.给定一幅BMP图像,用所编程序对给定图像进行操作,对图像处理后另存为(*.bmp)文件,并用Photoshop验证所编程序的正确性;3.本实验完成灰度的线性变换处理,如有时间再做灰度图像的对数变换。

五、实验报告要求1.总结图像变换处理的原理和方法;2.总结对图像线性变换处理编程的过程;3.总结用Photoshop验证所编写程序的过程。

4.对实验结果进行分析。

六、参考程序用VC打开试验一的程序,添加一对话框,ID为IDD_DLG_LINERTRANS,标题为线性变换。

在对话框中拖入四个编辑框IDC_EDIT_X1、IDC_EDIT_Y1、IDC_EDIT_X2、IDC_EDIT_Y12,在四个对话框前加入四个静态文本框,分别为第一点X坐标、第一点Y 坐标、第二点X坐标、第二点Y坐标,便于用户在该界面中输入线性变换曲线的两点坐标值。

插入新建对话框类,类名为CLinerTrans。

快捷键“Ctrl+W”打开MFC ClassWizard 对话框,给CLinerTrans加入MemberVarible,对应IDC_EDIT_X1、IDC_EDIT_Y1、IDC_EDIT_X2、IDC_EDIT_Y12分别加入int类型的变量m_X1、m_X2、m_Y1、m_Y2。

在DIBAPI.h中声明函数BOOL WINAPI LinerTrans(LPSTR lpDIBBits,LONG lWidth,LONG lHeight,int iX1,int iX2,int iY1,int iY2);在DIBAPI.cpp中定义该函数为:BOOL WINAPI LinerTrans(LPSTR lpDIBBits,LONG lWidth,LONG lHeight,int iX1,int iX2,int iY1,int iY2){unsigned char* lpSrc;LONG i;LONG j;LONG lLineBytes;LONG fTemp;LONG fBiex;lLineBytes=WIDTHBYTES(lWidth*8);for(i=0;i<lHeight;i++){for(j=0;j<lWidth;j++){lpSrc=(unsigned char*)lpDIBBits+lLineBytes*(lHeight-1-i)+j;fBiex=*lpSrc;if(iX1==0){fTemp=iY1;}else if(iX2==255){fTemp=iY2;}else if(fBiex>0&&fBiex<iX1){fTemp=fBiex*iY1/iX1;}else if(fBiex>=iX1&&fBiex<=iX2){fTemp=fBiex*(iY2-iY1)/(iX2-iX1)+iY1;}else if(fBiex>iX2&&fBiex<=255){fTemp=(fBiex+iY2-iX2)*(255-iY2)/(225-iX2);}if(fTemp>255){*lpSrc=255;}else if(fTemp<0){*lpSrc=0;}else{*lpSrc=(unsigned char)(fTemp+0.5);}}}return TRUE;}在Resource View中打开Menu中的SHIYANTYPE,在Menu中加入“图像增强”工具按钮,在其下拉按钮中输入“线性变换”,并将其ID设为ID_LINERTRANS,在MFC ClassWizard对话框中加入OnLinertrans()消息函数。

编辑该函数加入如下代码:CShiyanDoc* pDoc=GetDocument();if(pDoc->m_hDIB==NULL){MessageBox("请先打开一幅256色的BMP图像!","系统提示",MB_ICONINFORMATION|MB_OK);return;}LPSTR lpDIB;LPSTR lpDIBBits;int X1,X2,Y1,Y2;lpDIB=(LPSTR)::GlobalLock((HGLOBAL)pDoc->GetHDIB());lpDIBBits=::FindDIBBits(lpDIB);if(::DIBNumColors(lpDIB)!=256){MessageBox("目前只支持256色位图!","系统提示",MB_ICONINFORMATION|MB_OK);::GlobalUnlock((HGLOBAL)pDoc->GetHDIB());return;}CLinerTrans dlgParam;if(dlgParam.DoModal()!=IDOK){return;}X1=dlgParam.m_X1;X2=dlgParam.m_X2;Y1=dlgParam.m_Y1;Y2=dlgParam.m_Y2;delete dlgParam;BeginWaitCursor();::LinerTrans(lpDIBBits,::DIBWidth(lpDIB),::DIBHeight(lpDIB),X1,X2,Y1,Y2);pDoc->SetModifiedFlag(TRUE);pDoc->UpdateAllViews(NULL);::GlobalUnlock((HGLOBAL)pDoc->GetHDIB());EndWaitCursor();注意:要在CShiyanDoc中头部加入#include "LinerTrans.h"语句。

相关文档
最新文档