南昌大学数字信号处理实验报告_使用像素复制放大和缩小图像

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Digital Image Processing

Project title:Zooming and Shrinking Images by Pixel Replication Project number:Proj02-03

Course number:Z6102X026

Student's name:

Student's number:

Date due:2012-06-28

Date handed in:2012-06-11

摘要

使用像素复制放大和缩小图像的操作技术,我们可以使用C语言、C++语言、Matlab来实现对我们所需图像的转换。这里我们使用Matlab进行编程。由题设,所需放大或所需的因素为整数,并且忽略掉抗锯齿效果。图像缩放既是对图像的几何变换,通过对对象对应矩阵的操作来实现对图像大小的改变。像素复制方法的主要原理就在于对原本输入的图像的整行或者整列像素进行简单的复制和删除,以达到改变图像大小的目的。但是通过这种方法的放大和缩小没有考虑到图像像素之间的关系,可能会导致缩放效果不好。

技术讨论:

图像的缩放是对图像进行的一种几何运算,用以改变图像的大小。在处理图像的过程中,图像中每个像素的值都要发生变化,数字图像的坐标值是整数,经过这些变换后的坐标不一定是整数,所以要对变换后的整数坐标位置的像素值进行估计。图像的插值,插值是常用的数学运算,通常是利用曲线拟合的方法,通过离散的点建立一个连续函数来逼近真实曲线。

本实验可以利用一些插值方法来完成图像的缩放操作。采用像素复制的方式进行图像的缩放属于最近邻插值。采用像素复制的方法来增加图像的大小,例如把图像放大一倍,可以复制每一列这使得图像在水平方向上增大一倍,然后复制增大图像的每一行,以使图像在垂直的方向上增加一倍。使用相同的方法可以任何整数倍放大图像。复制仅仅是为了达到希望的大小,以要求的倍数进行操作,每个像素的赋值过程是由新位置的值来确定旧位置的值。图像收缩与放大相类似的方法操作,像素复制的等效过程就是行列删除,如图像缩小,可以每隔一行(列)删除一行(列)。

实验结果分析:

1,图像缩小

首先将原图Fig0219(rose1024).jpg放置在Matlab软件的work 目录下。然后图像缩小的函数语句,具体如下所示:

>> clear

>> I=imread('Fig0219(rose1024).jpg');

>> J=imresize(I,[256,256]);

>> imshow(I);

>> figure;

>> imshow(J)

执行后的转换图像对比可得:

左边为原图,右边为图像缩小后的图。即为实验报告包里的Matlab 图像文件Fig0219_1.fig和Fig0219_2.fig。

2,图像放大

将实验报告包里的Fig0219_2.jpg图像文件放在Matlab软件的work目录下。执行图像大小改变的函数进行变换,具体函数如下:>> clear

>> I=imread('Fig0219_2.jpg');

>> J=imresize(I,[1024,1024]);

>> imshow(I);

>> figure;

>> imshow(J)

执行后的转换图像对比可得:

左图为先前实验中缩小后的图,即Fig0219_2所示;右图为进行将左图图像放大后的图像。可得分别为实验报告包里的Matlab图像文件Fig0219_3.fig和Fig0219_4.fig。

实验总结:

由上述的放大和缩小实验可知,缩小后再放大到原图像还是会有一定的变化。正如下面两图所示,我们可以看出两图的清晰度明显不同,可它们的图像大小却是相同的。具体可见实验报告包里的截图3。而这就是因为使用像素复制方法没有很好的考虑相邻像素之间的关系,使得在缩放的效果并不是最理想。

相关文档
最新文档