应用图像处理_matlab软件课程设计(编辑修改稿)内容摘要:

是在低高强度和饱和,这增加了输出图像 J 的对比度值。 14 J = imadjust(I,[low_in。 high_in],[low_out。 high_out]) , 将图像 I中的亮度值映射到 J中的新值,即将 low_in 至 high_in 之间的值映射到 low_out至 high_out 之间的值。 low_in 以下与 high_in 以上的 值被剪切掉了,也就是说, low_in 以下的值映射到 low_out, high_in 以上的值映射到 high_out。 它们都可以使用空的矩阵 [ ],默认值是 [0 1]。 如: i=imread(39。 e:\39。 )。 j=imadjust(i,[,],[ ])。 将图像 i转换为 j,使灰度值从 ~与缺省值 0~1相匹配 (3)伪彩色处理。 伪彩色处理是指将黑白图像转化为彩色图像,或者是将单色图像变换成给定彩色分布图像。 由于人眼对彩色的分辨能力远远高于对灰度的分辨能力, 所以将灰度图像转化成彩色表示,就可以提高对图像细节的辨别力。 因此,伪色彩处理的主要目的是为了提高人眼对图像细节的分辨能力,以达到图像增强的目的。 伪彩色处理的基本原理是将黑白图像或者单色图像的各个灰度级匹配到彩色空间中的一点,从而使单色图像映射成彩色图像。 对黑白图像中不同的灰度赋予不同的彩色。 值得注意的是,伪彩色虽然能将黑白灰度转化为彩色,但这种彩色并不是真正表现图像的原始颜色,而仅仅是一种便于识别的伪彩色。 灰度变换 模块的 设计 ( 1)直方图均衡化 直方图均衡化又称直方图平坦化 ,是将一已知灰度概率 密度分布的图像经过某种变换 ,变成一幅具有均匀灰度概率密度分布的新图像。 其结果是扩展了像元取值的动态范围 ,从而达到增强图像整体对比度的效果。 直方图均衡化的具体实现步骤如下 : 1) .列出原始图像的灰度级 式 (317) 2).统计各灰度级的像素数目 式 (318) 15 3).计算原始图像直方图各灰度级的频数 式 (319) 4).计算累积分布函数 式 (320) 5).应用以下公式计算映射后的输出图像的灰度级, P 为输出图像灰度级的个数,其中 INT为取整符号。 式 (321) 6).统计映射后各灰度级的像素数目 ni, i=0,1,„ ,k,„ P1。 7).计算输出直方图 Pg(gi)=ni/n, i=0,1,„ ,P1。 8).用 fj和 gi的映射关系修改原始图像的灰度级 ,从而获得直方图近似为均匀分布的输出图像。 (2) 直方图规定化 直方图均衡化的优点是能自动增强整个图像的对比度 ,但它的具体增强效果不易控制 ,处理的结果总是得到全局的均衡化的直方图。 实际工作中 ,有时需要变换直方图使之成为某个 特定的形状 ,从而有选择地增强某个灰度值范围内的对比度 ,这时可采用比较灵活的直方图规定化方法。 直方图规定化增强处理的步骤如下 : 令 Pr( r)和 Pz( z)分别为原始图像和期望图像的灰度概率密度函数。 如果对原始图像和期望图像均作直方图均衡化处理,应有 式 (322) 式 (323) 式 (324) 由于都是进行均衡化处理,处理后的原图像概率密度函数 Ps( S)及理想图像 概率密度函数 PV( V)是相等的。 于是,我们可以用变换后的原始图像灰度级S代替式 (323)中的 V。 即 Z = G 1( S) 式 (325) 16 这时的灰度级 Z 便是所希望的图像的灰度级。 此外,利用 式 (322)与 式 (323)式还可得到组合变换函数 Z = G 1[ T( r)] 式 (326) 对连续图像,重要的是给出逆变换解析式。 设计与调试 分析 模块 的设计 主要程序设计: function xiaoguo_Callback(hObject, eventdata, handles) global T %定义全局变量 T va=get( ,39。 Value39。 )。 %得到句柄 lvbo的 Value,赋给 va val=get(hObject,39。 Value39。 )。 switch val %用 switch语句设置选项 case 1 img=rgb2gray(T)。 %将 T转化为二维的灰色图像,赋给 img prompt={39。 旋转角度 :39。 }。 %设置提示字符串 defans={39。 039。 }。 %设置默认值 p=inputdlg(prompt,39。 input39。 ,1,defans)。 %显示对话框 p1=str2num(p{1})。 %将对话框转换为数值 f=imrotate(img,p1,39。 bilinear39。 ,39。 crop39。 )。 %将图像进行旋转处理 axes()。 %将结果显示在 axes1中 imshow(f)。 title(39。 旋转后图像 39。 )。 %显示旋转后的图像 运行结果如下图 41所示,弹出对话框,现在设置旋转角度为 30,按“ OK”运行结果如下图 42所示: 17 图 41 图 42 分析结果: 图 42 是按逆时针旋转 30176。 的结果, 一般输入参数为正数时,图像按逆时针方向旋转;输入负数时,图像按顺时针方向旋转。 运行结果正常。 主要程序设计: case 2 %底片效果显示 ig2=rgb2gray(T)。 %将 T转化为二维的灰色图像,赋给 ig2 f2=implement(ig2)。 %将 图像 ig2取反 ,达到黑白色变换,实现底片效果 axes ()。 %将结果显示在 axes1中 imshow(f2)。 title(39。 底片效果 39。 )。 %显示低片效果图像 运行结果如下图 43所示: 图 43 18 分析结果: 图 43完成了 对 二值图像 的求补运算,将二值图像进行 黑白两色互换,就是把黑色部分变成白的,把白色部分变成黑的。 运用 implement 函数来实现图像取反,形成底片效果。 程序运行正常。 程序设计: case 3 %显示边缘信息处理图像 ig3=rgb2gray(T)。 %将 T转化为二维的灰色图像,赋给 ig3 f3=edge(ig3,39。 canny39。 )。 %将 ig3进行边缘处理 axes ()。 %将结果显示在 axes1中 imshow(f3)。 title(39。 边缘信息 39。 )。 %显示边缘信息图像 运行结果如下图 44所示: 图 44 结果分析: 图 44显示了边缘信息处理之后的图像, 利用边缘邻近一阶或二阶方向导数变化规律,用简单的方法检测边缘。 如果一个像素落在图像中某一个物体的边界上,那么它的邻域将成为一个灰度级的变化带, 运用 edge函数进行运算,达到了效果。 程序运行正常。 处理 程序设计: 19 case 4 %显示运动模糊处理结果 LEN = 21。 THETA = 0。 % 表示摄像物体逆时针方向以 0角度运动了 21个像素 PSF = fspecial(39。 motion39。 , LEN, THETA)。 %点扩展函数的卷积运算 blurred = imfilter(T, PSF, 39。 conv39。 , 39。 circular39。 )。 %对图像 f进行滤波 %W2 = deconvwnr(blurred,PSF)。 %对滤波 后的图像进行恢复 axes()。 %将结果显示在 axes1中 imshow(blurred)。 title(39。 运动模糊 39。 )。 %显示 运动模糊 图像 运行结果如下图 45所示: 图 45 结果分析: 从图 45所示,运行之后的图像明显比原图像模糊,程序运行正常。 图像压缩 模块 的设计 变换 程序设计: function yasuo_Callback(hObject, eventdata, handles) global T 定义全局变量 T va=get(,39。 Value39。 )。 %得到句柄 yasuo的 Value,赋给 va val=get(hObject,39。 Value39。 )。 switch val %用 switch语句设置选项 case 1 %显示 DCT变换 图像 i=rgb2gray(T)。 %将真彩色 RGB图像转换成灰度图像( RGB并不发生变化) I=im2double(i)。 %把灰度图像的数据类型转换成双精度浮点类型 T=dctmtx(8)。 %生成一个 8*8 DCT变换矩阵 B=blkproc(I,[8 8],39。 P1*x*P239。 ,T,T39。 )。 %P1*x*P2相当于像素块的处理函数, P1=T P2=T39。 ,进行离散余弦变换 mask=[1 1 1 1 0 0 0 0。 1 1 1 0 0 0 0 0。 1 1 0 0 0 0 0 0。 1 0 0 0 0 0 0 0。 0 0 0 0 0 0 0 0。 0 0 0 0 0 0 0 0。 0 0 0 0 0 0 0 0。 0 0 0 0 0 0 0 0]。 %8*8的二维数据块经 DCT后变成 8*8个变换系数,代表低频成份的量分布于左上 20 角,而越高频率成份越向右下角分布 C=blkproc(B,[8 8],39。 P1.*x39。 ,mask)。 %数据压缩,丢弃右下角高频数据 D=blkproc(C,[8 8],39。 P1*x*P239。 ,T39。 ,T)。 %进行 DCT反变换,得到压缩后的图像 axes()。 %将结果显示在 axes2中 imshow(D)。 title(39。 DCT变换 39。 )。 %显示 DCT变换之后的图像 运行结果如 下图 46所示: 图 46 结果分析: 图 46是一 个 8*8的二维离散余弦变换将图像的空间表达式转换到频率域 ,只用少量的数据点来表达图像。 8*8的二维数据块经 DCT后变成 8*8个变换系数,代表低频成份的量分布于左上角,而越高频率成份越向右下角分布 ,经过运算, 丢弃右下角高频数据 ,从而达到图像的压缩效果。 程序设计: case 2 X=rgb2gray(T)。 X=double(X)/255。 %归一化处理 colormap(pink)。 %颜色映射 [C,S]=wavedec2(X,1,39。 39。 )。 %对图像用‘ 39。 小波进行 1层小波分解 thr=20。 %设置小波系数阈值 cal=appcoef2(C,S,39。 39。 ,1)。 %提取小波分解结构中第 1 层的低频系数和高 频系数 ch1=detcoef2(39。 h39。 ,C,S,1)。 cv1=detcoef2(39。 v39。 ,C,S,1)。 cd1=detcoef2(39。 d39。 ,C,S,1)。 a1=wrcoef2(39。 a39。 ,C,S,39。 39。 ,1)。 %分别对各 频率成分进行重构 21 h1=wrcoef2(39。 h39。 ,C,S,39。 39。 ,1)。 v1=wrcoef2(39。 v39。 ,C,S,39。 39。 ,1)。 d1=wrcoef2(39。 d39。 ,C,S,39。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。