MATLAB用于图像处理.docx

上传人:b****7 文档编号:23818280 上传时间:2023-05-21 格式:DOCX 页数:8 大小:176.92KB
下载 相关 举报
MATLAB用于图像处理.docx_第1页
第1页 / 共8页
MATLAB用于图像处理.docx_第2页
第2页 / 共8页
MATLAB用于图像处理.docx_第3页
第3页 / 共8页
MATLAB用于图像处理.docx_第4页
第4页 / 共8页
MATLAB用于图像处理.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

MATLAB用于图像处理.docx

《MATLAB用于图像处理.docx》由会员分享,可在线阅读,更多相关《MATLAB用于图像处理.docx(8页珍藏版)》请在冰豆网上搜索。

MATLAB用于图像处理.docx

MATLAB用于图像处理

MATLAB课程设计

Matlab用于图像处理

学院:

信息工程学院

班级:

姓名:

同组人:

一、实验目的

通过该设计,要求对图像的采集、显示、处理和存储等有一个系统的掌握和理解,并且掌握对二维数据进行处理的方法。

二、设计内容及主要MATLAB函数

1.图像的采集与显示

采集一张格式为*.jpg*.cur*.tif*.hdf*.ico*.pcx*.xwd的任一幅图像,用MATLAB的imread函数读入图像文件,并用image函数显示图像。

MATLAB函数:

imread功能是读入图像

image显示图像文件

要求采集一幅图像,把该图像读入在MATLAB中,并且显示出来。

2.图像的插值

1)最近邻插值

最近邻插值是最简单的插值,在这种算法中,每一个插值输出像素的值就是在输入图像中与其最临近的采样的值。

2)双线性插值

双线性插值法的输出像素值是它在输入图像中2*2领域采样点的平均值,它根据某像素周围4个像素的灰度值在水平和垂直两个方向上对其插值。

3)双三次插值

双三次插值的插值核为三次函数,其插值领域的大小为4*4,它的插值效果比较好,但相应的计算量较大。

MATLAB函数:

imresize

使用格式:

b=imresize(a,m,method),返回图像的m倍放大图像(小于1时返回缩小的图像返回缩小图像);

b=imresize(,[m,n],method),返回一个m行n列的图像

b=imresize(a,m,method,h),使用用户设计的插值核进行插值,h可以看作是一个二维的FIR滤波器。

三、总体方案

1)采集图像,对采集的图像使用imresise函数,分别对其进行最近邻插值、双线性插值和双三性插值,返回二倍放大图像,并且分别显示出来与原图像进行对比。

2)试编写一个M文件,对采集的图像进行最近邻插值,并且显示出来与原图像进行对比。

四、主要参数

五、源程序

1)使用最近邻插值对图像进行放大

>>a=imread('C:

\DocumentsandSettings\cfe001\桌面\a.jpg');

%读入位于桌面名为a.jpg的图片,并赋值给变量a

>>b=imresize(a,2,'nearest')%用最近邻插值的方法对图像a放大2倍

>>subplot(1,2,1),imshow(a),subplot(1,2,2),imshow(b),axison;

%显示原图以及放大后的图片,进行对比

2)使用双线性插值对图像进行放大

>>a=imread('C:

\DocumentsandSettings\cfe001\桌面\a.jpg');

%读入位于桌面名为a.jpg的图片,并赋值给变量a

>>b=imresize(a,2,'bilinear')%用双线性的方法对图像a放大2倍

>>subplot(1,2,1),imshow(a),subplot(1,2,2),imshow(b),axison;

%显示原图以及放大后的图片,进行对比

3)使用双三次插值对图像进行放大

>>a=imread('C:

\DocumentsandSettings\cfe001\桌面\a.jpg');

%读入位于桌面名为a.jpg的图片,并赋值给变量a

>>b=imresize(a,2,'bicubic')%用双三次的方法对图像a放大2倍

>>subplot(1,2,1),imshow(a),subplot(1,2,2),imshow(b),axison;

%显示原图以及放大后的图片,进行对比

4)编写M文件,对采集的图像进行最近邻插值

function[b]=nearest(a)

%用最近邻插值对图片进行放大

[m,n]=size(a)u

fori=1:

m

forj=1:

n

b(i,2*j)=a(i,j);

b(i,2*j-1)=a(i,j);

end

end

c=b;

forj=1:

2*n

fori=1:

m

b(2*i,j)=c(i,j);

b(2*i-1,j)=c(i,j);

end

end

六、仿真结果

1)将下载的三维图片a(120*120*3)转换为二维图片

>>a=imread('C:

\DocumentsandSettings\cfe001\桌面\a.jpg');

>>subplot(1,2,1),imshow(a),title('原图'),axison

>>a(:

:

3)=[];

>>a(:

:

2)=[];

>>subplot(1,2,2),imshow(a),title('二维图'),axison

2)使用最近邻插值对图像进行放大

>>a=imread('C:

\Users\sjw\Desktop\a.jpg');

>>subplot(1,2,1),imshow(a),title('原图'),axison

>>b=imresize(a,2,'nearest');

>>subplot(1,2,2),imshow(b),title('最近邻'),axison

3)使用双线性插值对图像进行放大

>>a=imread('C:

\Users\sjw\Desktop\a.jpg');

>>subplot(1,2,1),imshow(a),title('原图'),axison

>>b=imresize(a,2,'bilinear');

>>subplot(1,2,2),imshow(b),title('双线性'),axison

4)使用双三次插值对图像进行放大

>>a=imread('C:

\Users\sjw\Desktop\a.jpg');

>>subplot(1,2,1),imshow(a),title('原图'),axison

>>b=imresize(a,2,'bicubic');

>>subplot(1,2,2),imshow(b),title('双三次'),axison

5)编写M程序,对采集的图像进行最近邻插值

function[b]=nearest(a)

%用最近邻插值对图片进行放大

[m,n]=size(a)u

fori=1:

m

forj=1:

n

b(i,2*j)=a(i,j);

b(i,2*j-1)=a(i,j);

end

end

c=b;

forj=1:

2*n

fori=1:

m

b(2*i,j)=c(i,j);

b(2*i-1,j)=c(i,j);

end

end

>>a(:

:

3)=[];

>>a(:

:

2)=[];

>>subplot(1,2,1),imshow(a),title('原图'),axison

>>p=nearest(a);

输出结果:

m=

120

n=

120

>>subplot(1,2,2),imshow(p),title('最近邻'),axison

七、设计总结

此次课程设计,让我进一步认识到了MATLAB这款软件功能之强大。

通过课程学习,翻阅资料,以及与同学之间的相互探讨,我不仅掌握了其基本的功能及用法,也懂得了其在图像处理、信号与系统等各方面的广泛用途。

在设计刚开始,感到非常困难。

但是通过反复研究、实践,最终攻克难关,完成了课程设计。

在此过程中,不仅巩固了以前学过的知识,同时了解了imread、imshow、subplot等语句的用法,了解了通过“最近邻插值”、“双线性插值”以及“双三次插值”三种方法对图像进行放大,学会了自己编写M文件,对采集的图像进行最近邻插值。

在这过程中,锻炼了我们做事情的毅力,也品尝到了通过自己努力最终完成目标的那份喜悦。

MATLAB这款软件语言简洁,可读性强,工具箱涉及的专业领域广泛且功能强大。

所以,以后我们会慢慢地认识到这款软件的重要作用,掌握MATLAB,对我们以后的学习以及工作,受益无穷。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1