资源描述:
《太原理工MATLAB课程设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、设计三MATLAB用于图像处理、设计目的通过该设计,要求对图像的采集、显示、处理和存储等有一个系统的掌握和理解。并且掌握对二维数据进行处理的方法。二、设计内容及其主要MATLAB函数1.图像的采集与显示采集一张格式为各种类型的任一幅图像,用matlab的imread函数读入图像文件,并用image函数显示图像。Matlab函数:imread功能是读入图像文件Image显示图像文件要求采集一幅图像,把该图像读入在MATLaB屮,并且显示出来。2.图像的插值1)最近邻插值最近邻插值是最简单的插值,在这种算法中,每一个插值输出像素的值就是在输入图像中与其最近临近的采样点的值
2、2)双线性插值双线性插值法的输出像素是它在输入图像中2*2领域采样点的平均值。它是根据某像素点周围4个像素的灰度值在水平和垂直两个方向上对其插值。3)双三次插值对三次插值的插值核为三次函数,其插值值领域的大小为4*4,它的插值效果比较好,但相应的计算量较大。Matlab函数:imresize使用格式:b=imresize使用格式:b=imresize(a,m,method),返回原图的M倍放大图像;(小于1时返回缩小图像)b=imresize(ajm,nJ,method),返回M行,n列的图像b二imresize(a,m,method,h),使用用户设计的插值核h进行
3、插值,h可以看做是一个二维的FIR滤波器。3・试着编写一M文件,对采集的图像进行最近邻插值,并且显示出来与原图像进行对比。三、总体设计方案1.显示釆集的原图像。2.使用imresize函数,显示原图像经过最近邻插值、双线性插值和双三次插值后,二倍放大图像与原图像进行对比。3.自己编写程序对采集的图像进行最近邻插值,并且显示插值后图像与原图像的对比。主要参数图片路径:D:l.jpg读入图片:x=imread('D:l.jpg);图片大小:[m,n,k]二size(x)m=720n=538k=3五、源程序1.用imresize进行插值%读入图片%%显示原图%>>x二i
4、mresd('D:1.jpg');>>imshow(x)Warning:Imageistoobigtofitonscreen;displayingat5scale->Intruesize>Resizelat308Intrucsizcat44Inimshowat161%对图像进行最近邻插值%%建立子图显示原图%%显示最近邻插值后的图像%%对图像进行双线性插值%%显示双线性插值后的图像%%对图像进行双三次插值%%显示双三次插值后的图像%>>xl=imresize(x,2,1nearest,);>>subplot(2,2,1)»imshow(x),title('原图')>
5、>subplot(2,2,2)>>imshow(xl),title(,最近邻插值')>>x2=imresize(x,2,Jbilinear,);>>subplot(2,2,3)»imshow(x2),title(*双线性插值')»x3=imresize(x,2,5bicubic,);>>subplot(2,2,4)»imshow(x3),title('双三次插值')2.M文件clearx=imread('D:1.jpg');[m,n,k]二size(x);fori=l:mforj二l:na(i,2*j)二x(i,j);a(i,2*j-l)=x(i,j);endend
6、b二a;forj=l:2*nfori二l:mc(2*i,j)二b(i,j);c(2*i-l,j)二b(i,j);endendd=c;subplot(1,2,1)imshow(x),title('原图')subplot(1,2,2)imshow(d),title(,最近邻插值’)六、仿真结果1.用imresize函数插值原图双线性插値双三;欠插值2.M文件输出结果七、设计总结通过本次设计,我熟悉了MATLAB的各个命令窗口以及基本操作,能够进行一些数值运算,实现语句的重调和修改。还学会了用MATLAB对图像进行采样,插值等各种处理,以及M文件程序的编写与使用,还了解到M
7、ATLAB处理图像是把图像转为矩阵的形式,之后矩阵的运算就有多种多样了,可以实现不同的图像处理变化。总Z,在学习过程屮,我发现MATLAB的功能十分强大,在使用简单易用的程序语句的同时,还具有强大的数据处理能力、出色的图形处理功能以及应用软件的开发等多种功能,可以应用于控制系统、信号处理、图像处理、系统辨识、神经元网络等多个领域,可以说,MATLAB小到计算数据,大到设计飞机都可以使用。这么一款功能强大、多样,且非常实用的软件,我想我们有必要好好地学习与掌握它。