




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录1 课程设计目的12图像处理系统设计内容及要求22.1设计内容22.2设计要求23 设计方案34 功能模块的具体实现54.1 空域插值放大的方法54.1.1 最邻近插值算法54.1.2 双线性插值算法64.1.3 双三次插值算法74.2 频域重建的方法84.2.1 DCT变换的介绍84.2.2 DCT放大图像放大算法原理84.3 频域分块重建的方法104.4 同态滤波器滤波处理114.4.1 同态滤波器原理114.4.2 同态滤波函数的确定125 总结与体会14参考文献15附录16课程设计说明书1 课程设计目的MATLAB7.0软件。MATLAB是由美国mathworks公司发布的主要面
2、对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,代表了当今国际科学计算软件的先进水平。通过用MATLAB对图像进行处理,以实现以下目的。 1.培养严谨的科学态度,正确的设计思想,科学的设计方法和良好的工作作风。2.培养独立思考的能力,独立检索资料、阅读文献、综合分析、计算机应用、数据及文字处理等能力。3.培养综合运用基础理论、基本知识的能
3、力。通过课程设计得到工程设计的初步锻炼。2图像处理系统设计内容及要求2.1设计内容图像超分辨率重建是利用低质量或低分辨率图像来产生高质量或高分辨率图像的技术,重建包括空域方法和频域方法。本设计要求用插值技术提高图像的分辨率。(1)利用插值技术将原始图像在空域放大2倍。(2)在DCT域放大原始图像2倍,设计滤波器在DCT域增强图像的高频信息。(3)对图像分块进行DCT变换,在DCT域对子图像进行放大和滤波增强高频信息。(4)比较上述三种图像重建结果,设计软件界面。(5)设计方案、编写代码实现上述功能。2.2设计要求(1)利用数字图像处理技术,以MATLAB为平台,建立一个实现设计主题的简易处理系
4、统。(2)能显示输入图像、中间图像和重建的图像。(3)程序代码要有注释说明,调用MATLAB函数要清楚并理解函数的功能、使用范围,在设计说明书中要写清楚函数的功能和参数意义。(4)完成设计说明书一份。(5)刻苦钻研,勤于思考,勇于实践,独立完成课程设计任务。(6)遵守纪律,在指定地点进行课程设计。(7)掌握有关课程的基本理论和基本知识。概念清楚,方案合理,数据可靠,计算正确,运行良好,图纸(图表)符合标准,设计说明书(论文)撰写规范,答辩中回答问题正确。3 设计方案 根据课程设计题目的要求,设计界面如图3-1所示:图3-1 设计界面本设计分为空域放大和DCT域放大两部分,空域放大主要工作有:在
5、空域对现有的传统插值算法分别进行了研究与仿真实验,包括最近邻域插值,双线性插值,双三次插值等,这些插值方法均是通过低通滤波,滤除和过滤图像数据中的高频信息。所以这些插值基函数对边缘和纹理信息都比较丰富的图像的插值效果不是特别理想。DCT域放大主要工作有:通过DCT变换实现了由空间域到频域的转换,通过对频域处理可以方便的实现空间域较难实现的处理。而空间域与频域又存在一定的联系,为数字图像的处理提供了另一种方法。该算法在对整块图像进行处理时,尽管采用了增强系数对图像亮度效果进行补充,但对整幅图像高频部分预测采用填零方式,在图像像素位数增大即图像信息量增大时这种预测精度不如对图像分块处理后高,且基于
6、JPEG格式图像多采用分成88子块分块压缩编码,对上述算法进行改进。改进后的算法,将原始图像数据切割成接近88大小子块,对每一子块分别实施DCT放大算法。改进后的算法如下:对原始图像进行分块,然后对每一子块运用DCT图像放大算法,最后合并处理所有的子块。系统整体设计如图3-2所示。空域重建频域分块重建原始图低分辨率图像频域重建观察、比较三种图像重建的结果设计软件界面图3-2 系统整体设计图 4 功能模块的具体实现4.1 空域插值放大的方法4.1.1 最邻近插值算法这是最简单的算法,每一个输出像素都赋给输入图象中与其最邻近的采样点的值。插值核函数是:h(x)=1 0x0.5h(x)=0 0.5x
7、在所有的插值方法中,这种插值方法速度最快,早期的应用比较普遍,然而当图像中包含灰度有变化的细微结构时,最近邻插值法会在图像中产生人工的痕迹。图像的边缘阶梯失真现象比较明显。其实现效果如图4-1所示。图4-1 最邻近插值算法实现效果图在程序中可以直接调用函数也可自行编写。如自行编写,部分源程序如下:width = K * nrows; height = K * ncols;J = uint8(zeros(width,height);widthScale = nrows/width;heightScale = ncols/height;for x = 5:width - 5 for y = 5:h
8、eight - 5xx = x * widthScale; yy = y * heightScale;if (xx/double(uint16(xx) = 1.0) & (yy/double(uint16(yy) = 1.0) J(x,y) = I(int16(xx),int16(yy);else % a or b is not integera = double(round(xx); % (a,b) is the base-dotb = double(round(yy);J(x,y) = I(a,b); % calculate J(x,y)endendendimwrite(J, lena2.
9、jpg, jpg);figure;imshow(J);4.1.2 双线性插值算法设f ( x , y ) 为2 个变量的函数, 其在单位正方形顶点的值已知。假设希望通过插值得到正方形内任意点的f ( x , y ) 值。可以令由双线性方程来定义的一个双曲抛物面与4 个已知点拟合。利用公式实现插值:双线性插值是对待插值象素周围的4个邻近像素的灰度按照距离进行加权平均,实质上是属于一阶插值。双线性插值的平滑作用有可能会使图像的细节产生退化,当放大倍数比较大的时候,这种现象更加明显。同时,双线性插值的斜率不连续也会产生不希望的结果。其实现效果如图4-2所示。图4-2 双线性插值算法实现效果图在程序中
10、可以直接调用函数也可自行编写。如自行编写,部分源程序如下:width = K * nrows; height = K * ncols;J = uint8(zeros(width,height);widthScale = nrows/width;heightScale = ncols/height;for x = 5:width - 5 for y = 5:height - 5xx = x * widthScale; yy = y * heightScale;if (xx/double(uint16(xx) = 1.0) & (yy/double(uint16(yy) = 1.0) % if a
11、 and b is integer,then J(x,y) - I(x,y)J(x,y) = I(int16(xx),int16(yy);else a = double(uint16(xx); % (a,b) is the base-dotb = double(uint16(yy);x11 = double(I(a,b); % x11 - I(a,b)x12 = double(I(a,b+1); % x12 - I(a,b+1)x21 = double(I(a+1,b); % x21 - I(a+1,b)x22 = double(I(a+1,b+1); % x22 - I(a+1,b+1) J
12、(x,y) = uint8( (b+1-yy) * (xx-a)*x21 + (a+1-xx)*x11) + (yy-b) * (xx-a)*x22 +(a+1-xx) * x12) ); % calculate J(x,y)endendendimwrite(J, lena2.jpg, jpg);figure;imshow(J);4.1.3 双三次插值算法双三次插值是用待插枝点周围16个点作为参考像素值的一种三阶插值方法,典型的双三次插值核函数是:这里参考值a不同文献中取值不同,a=一1,a=05,a=075等等。其实现效果如图4-3所示。图4-3 双三次插值算法实现效果图4.2 DCT域插值
13、放大的方法4.2.1 DCT变换的介绍离散余弦变换是从二种特殊形式的傅里叶变换转化过来的,是一种性能很好的正交变换方式。离散余弦变换本质上仍然是离散傅立叶变换,二者在频域本质上是相同的。离散余弦变换因其是一种实数变换,其变换矩阵的基向量很好地描述了人类视觉的相关性,接近于最佳变换。因而DCT在图像处理中有很广泛的应用,并成为一些静态图像和视频压缩国际标准的基本处理模块,因而采用DCT变换可以很方便地应用于压缩域图像和视频中。数字图像可以通过傅里叶变换、离散余弦变换等由空间域转换到频域中表示,通过对频域的处理可以方便实现空间域较难实现的处理。而空间域和频域又存在一定的联系,为数字图像的处理提供了
14、另一种方法。尺度变换的物理含义就放大意义来讲,如果信号在时域进行扩展,即当Oa 1, Rl 1 时,该滤波函数能同时抑制照明分量和增强反射分量,从而满足动态范围压缩和对比度增强两种效果要求。处理目的不同, 可构造不同的滤波器。频域内经常使用的高通滤波器为高斯型高通滤波器, 对高斯型高通滤波器稍加修改, 可得以下高斯型同态滤波函数:H ( u, v) = ( Rh- R l) 1- exp( c*(-D (u ,v ) / D02) ) ) ) + Rl (1)传统的同态滤波函数如图4-8所示。 图4-8 传统的同态滤波函数该同态滤波函数如图4-9所示。图4-9 高斯型同态滤波函数图像5 总结与
15、体会为期两周的课设很快接近尾声了,基于MATLAB的设计已按计划如期全部完成,通过这次课程设计,我对课堂上所学到的理论知识的理解加深了许多,自己动脑、动手设计的能力也得到了较大提高。在这次课程设计的过程中,我对MATLAB语言有了更深的认识。现在仔细想想,这次课程设计使得我对MATLAB语言的理解与应用能力得到了较大的提升,也让我认识到只要深入学习,提升的空间永远是存在的。在设计的过程中我遇到了一些问题,如:编写源程序中出现了语法错误等。通过查阅书本和以前设计的程序我发现了产生错误的原因并解决了问题完成了设计。动手实践是理论知识得以灵活运用的必要前提,也是今后走上工作岗位之后能够很好的完成设计
16、工作的技术保证。只有遇到实际问题并根据自己对课堂上获得的专业知识的理解来解决才能真正的提高自己的能力。在这次课程设计过程中,感触很深,由于对MATLAB图像处理的函数不熟悉,导致自己走了很多弯路,imshow函数和image函数都可以实现显示图像的功能,但是imshow针对double型的变量取值范围为0-1,而image针对unit8型的变量,取值范围为0255,由于对这个区别不明晰,导致生成全白的图像。由于全局变量的使用不合理导致调用的时候出现错误。还有利用小波函数进行超分辨率重建时由于忽略了对变换后的低频以及高频矩阵的大小而直接进行重建导致矩阵大小不匹配而报错,并且无法实现规定大小的缩放
17、比例。对图像的DCT域进行块处理时,由于对DCT域矩阵放大后而直接采用8*8块处理导致图像出现大量黑色网格,未注意到放大后对处理块大小的影响导致了不必要的错误。在理工科的专业应用背景下,用matlab 进行相关计算与仿真编程的优势非常突出。特定的问题处理算法,我们通常都以.M文件的文本形式给定最终的解决方案,利用matlab强大的运算能力,通过设计GUI界面,使操作变得简单易行,可视化效果非常好。通过本次课程设计,使自己对MATLAB GUI设计流程有了比较深刻的体会,同时也了解了一般软件设计的过程。在设计过程中碰到了很多的问题,通过这些问题,使自己分析问题,解决问题的能力得到了较大的提高。参
18、考文献1 章毓晋.图像处理和分析教程北京.人们邮电出版社,20092 龚声蓉.数字图像处理与分析. 北京.清华大学出版社,20063 张强 王正林.精通MATLAB图像处理.北京.电子工业出版社,20094 姚敏.数字图像处理. 北京 .机械工业出版社,20065 李显宏. MATLAB7.x界面设计与编程技巧.北京. 电子工业出版社,20066 Kenneth R.Castleman著,朱志刚等译,数字图像处理,电子工业出版社,2006附录空域重建程序function =kong() %空域处理S=imread(lena.bmp); row,line=size(S);S_new=S(1:2:
19、row,1:2:line,:); %下采样subplot(2,2,1);imshow(S_new);title(低分辨图);S1=imresize(S_new,2,nearest); %最邻近插值subplot(2,2,2);imshow(S1);title(最邻近插值);S2=imresize(S_new,2,bilinear); %双线性插值subplot(2,2,3);imshow(S2);title(双线性插值);S3=imresize(S_new,2,bicubic); %三次线性插值subplot(2,2,4);imshow(S3);title(三次插值);频域重建程序functi
20、on =pinyu1() A=imread(lena.bmp);row,line=size(A);B=A(1:2:row,1:2:line,:); %下采样J=dct2(B); %将图像变换到频域subplot(221),imshow(J,colormap(jet(64);title(128*128DCT图像);m,n=size(B); %利用矩阵的乘法将图像放大k=2;T1=eye(m);zeros(k.*m-m,m); %创建256*128的的单位阵和零阵T2=eye(n);zeros(k.*n-n,n); %创建256*128的的单位阵和零阵J=T1*J*T2; %将图像在DCT域放大两
21、倍,因为原来的图像128*128,现在通过矩阵变换将图像放大到256*256J1=k*J;subplot(222),imshow(J1,colormap(jet(64);title(256*256DCT图像);I=double(J1); %通过同态滤波器将图像加强M,N=size(I); %获得图片的大小 rL=0.85; rH=1.02; % 可根据需要效果调整参数 c=1.1; d0=10; I1=log(I+1); %取对数FI=fft2(I1); %傅里叶变换 FI=fftshift(FI); %将FFT变换后的图片中心移到图像中心n1=floor(M/2); n2=floor(N/2
22、); for i=1:M for j=1:N D(i,j)=(i-n1).2+(j-n2).2); H(i,j)=(rH-rL).*(1-exp(c*(-D(i,j)./(d02)+rL; %高斯同态滤波 endendFI=H.*FI; %进行滤波FI=fftshift(FI); %将滤波后的图像中心移回来I2=ifft2(FI); %傅里叶逆变换 I3=real(exp(I2); %用幂变换将图象恢复过来subplot(223),imshow(I3,); title(滤波后DCT图像);A4=idct2(I3); %将图像变换到空域subplot(224),imshow(A4,); title(同态滤波增强后图像);频域分块重建程序function pinyu2() %完成频域分块并重建A=imread(lena.bmp);row,line=size(A);B=A(1:2:row,1:2:line,:); x=double(B)/255;subplot(221),imshow(x);title(低分辨率图像);T=dctmtx(8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 景观湖泊挖掘土石运输协议
- 2024年份6月携程乡村民宿客房季节性销售合同范本
- 宇宙生命之谜生字
- 肉制品加工基础知识
- 数字化时代:合同风险管理与监管路径探讨(2025年)
- 旅游生命周期理论
- 2025年北京市连锁店店铺装修环保评估合同范本
- 2024湘潭县就业职业技术学校工作人员招聘考试及答案
- 2024沈阳音乐学院附属中等音乐学校工作人员招聘考试及答案
- 粮食单位年终总结
- 湖南邵阳农商行招聘真题2024
- 2024年国家药品监督管理局直属单位招聘考试真题
- 2025智能家居系统供应及安装施工合同
- 2025年全民国家安全教育日主题教育课件
- DL∕T 2528-2022 电力储能基本术语
- 幼儿园蚂蚁教学认识蚂蚁蚂蚁分类(课堂PPT)
- C35P10计算书
- 小学数学专题讲座:“小学数学计算能力的培养.ppt“
- 年龄更改申请书
- 自动计算空调水管及冷量管径对应表-office2010以上版本
- 饮水机滤芯更换记录表
评论
0/150
提交评论