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

图像灰度变换报告一.实验目的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)——图像灰度线性变换与⾮线性变换(对数变换,伽马变换)如果需要处理的原图及代码,请移步⼩编的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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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"语句。