太原理工大学 matlab课程设计 图像处理.docx
- 文档编号:7297613
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:10
- 大小:794.65KB
太原理工大学 matlab课程设计 图像处理.docx
《太原理工大学 matlab课程设计 图像处理.docx》由会员分享,可在线阅读,更多相关《太原理工大学 matlab课程设计 图像处理.docx(10页珍藏版)》请在冰豆网上搜索。
太原理工大学matlab课程设计图像处理
课程设计报告
课程名称:
实验项目:
实验地点:
专业班级:
学号:
学生姓名:
同组人员:
指导教师:
年月日
设计三MATLAB用于图像处理
设计目的
通过该设计,要求对图像的采集、显示、处理和存储等有一个系统的掌握和理解。
并且掌握对二维数据进行处理的方法。
一、设计内容及其主要MATLAB函数
1.图像的采集与显示
采集一张格式为各种类型的任一幅图像,用matlab的imread函数读入图像文件,并用image函数显示图像。
Matlab函数:
imread功能是读入图像文件
image显示图像文件
要求采集一幅图像,把该图像读入在MATLAB中,并且显示出来。
2.图像的插值
1)最近邻插值
最近邻插值是最简单的插值,在这种算法中,每一个插值输出像素的值就是在输入图像中与其最近临近的采样点的值
2)双线性插值
双线性插值法的输出像素是它在输入图像中2*2领域采样点的平均值。
它是根据某像素点周围4个像素的灰度值在水平和垂直两个方向上对其插值。
3)双三次插值
对三次插值的插值核为三次函数,其插值值领域的大小为4*4,它的插值效果比较好,但相应的计算量较大。
Matlab函数:
imresize
使用格式:
b=imresize
使用格式:
b=imresize(a,m,method),返回原图的M倍放大图像;(小于1时返回缩小图像)
b=imresize(a,[m,n],method),返回M行,n列的图像
b=imresize(a,m,method,h),使用用户设计的插值核h进行插值,h可以看做是一个二维的FIR滤波器。
要求:
1)对采集的图像使用imresize函数,分别对其进行最近邻插值,双线性插值和双三次插值,返回二倍放大图像,并且分别显示出来与原图进行对比。
2)试着编写—M文件,对采集的图像进行最近邻插值,并且显示出来与原图像进行对比。
二、源程序及图像处理结果
1)首先读入我保存在F盘的图片文件
>>yuantu=imread('F:
\yuantu','bmp');
>>image(yuantu);
(原图)
2)、进行最近邻插值
>>jinlinchazhi=imresize(yuantu,2,'nearest');
>>subplot(1,2,1);image(yuantu);subplot(1,2,2);image(jinlinchazhi);
(左边为原图,右边为最近邻插值后的图片)
可以从“太原理工大学”六个字中看出插值的效果,但不是特别明显。
3)、进行双线性插值
>>shuangxianxing=imresize(yuantu,2,'bilinear');
>>subplot(1,2,1);image(yuantu);subplot(1,2,2);image(shuangxianxing);
(左边为原图,右边为双线性插值后图片)
双线性插值后感觉画面变得比较柔和,“太原理工大学”六个的背景噪点减少了。
4)、进行双三次插值
>>shuangsanci=imresize(yuantu,2,'bicubic');
>>subplot(1,2,1);image(yuantu);subplot(1,2,2);image(shuangsanci);
(左边为原图,右边为双三次插值后图片)
双三次插值后“太原理工大学”六个字和黄字红底的横幅都变得非常柔和清晰,给人的视觉感受是大大减少。
5)、下面将四幅图显示在同一窗口中
>subplot(2,2,1);image(yuantu);subplot(2,2,2);image(jinlinchazhi);subplot(2,2,3);image(shuangxianxing);subplot(2,2,4);image(shuangsanci);>>subplot(2,2,1);image(yuantu);subplot(2,2,2);image(jinlinchazhi);subplot(2,2,3);image(shuangxianxing);subplot(2,2,4);image(shuangsanci);
原图最近邻插值
双线性插值双三次插值
四、用自己编写的程序对图像进行最近邻插值
插值的定义:
设函数y=f(x)在区间[a,b]上有定义,且已知在点a≤x0 最近邻插值: 最简单的插值方法是最近邻插值,即选择离它所映射到的位置最近的输入像素的灰度值为插值结果。 若几何变换后输出图像上坐标为(x,y)的像素点在原图像上的对应值坐标为 (u,v),则近邻插值公式为: ? []表示求整。 最近邻插值法又称零阶插值,该方法取距离输出图像上的像素点映射到输入图像上的位置最近的输入像素的颜色值(或灰度值)作为输出图像上像素点的颜色值(或灰度值)。 如图1所示,最近邻插值法直接计算输出像素映射到输入图像坐标系下的点u和近邻四点(n1,n2,n3,n4)之间的距离,取距离u最近的像素点的颜色值(或灰度值)赋给u。 公式 (1)为最近邻插值的具体计算公式。 其中g(x',y')为输出图像中坐标为(x',y')的像素点的颜色值(或灰度值),f(x,y)为输入图像中坐标为(x,y)的像素点的颜色值(或灰度值),(x,y)为输出图像上的坐标(x',y')映射到输入图像坐标 我编写的程序如下: (b为输出的图像,a为输入图像,c为放大倍数) functionb=jinlinchazhi(a,c) [m,n,k]=size(a); a(c*m,c*n,: )=0; forp=1: k fori=m: -1: 1 ford=0: (c-1) a(c*i-d,: p)=a(i,: p); end end forj=n: -1: 1 ford=0: (c-1) a(: c*j-d,p)=a(: j,p); end end end b=a; end >>subplot(1,2,1);image(yuantu);subplot(1,2,2);image(b); >>yuantu=imread('F: \yuantu','bmp'); >>b=jinlinchazhi(yuantu,2); >>subplot(1,2,1);image(yuantu);subplot(1,2,2);image(b); (左边为原图,右边为自己编写的函数进行最近邻插值后图像) 五、设计总结 通过这次MATLAB用于图像处理的设计,我对图像的采集,显示,处理和存储等有了一个系统的掌握和理解,并且通过自己编写最近邻插值的程序,我掌握了对在MATLAB中对二维数据进行处理的方法。 同时我也体会到了MATLAB强大的功能,让我感受到了在科学技术日新月异的今天,唯有树立终身学习的意识,才能跟得上时代的进步。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 太原理工大学 matlab课程设计 图像处理 太原 理工大学 matlab 课程设计 图像 处理
![提示](https://static.bdocx.com/images/bang_tan.gif)