双三次插值图像旋转_数字图像处理:Reducing Gray Levels, Zooming and Shrinking

摘 要:本实验通过编写三个MATLAB的程序来实现图像的放大与缩小和减小图像的灰度级数。三个程序包括:编写一个以2的幂次方将给定图像的灰度级数从256减少到2的程序,并用该程序实现由图 2.21(a)生成图 2.21 所示的各个结果;编写一个基于像素复制方式进行图像缩放的程序将图 2.19 (a)从 1024 x 1024 缩小到 256 x 256;编写一个以双线性插值技术进行图像缩放的程序将图 2.19 (a)从 1024 x 1024 缩小到 256 x 256。最后解释不同方式编写的程序所生成图像产生差异的原因。

【欢迎关注、点赞、收藏、私信、交流】共同学习进步

一、实验目的

(1.a) 编写一个以 2 的幂次方将给定图像的灰度级数从 256 减少到 2 的程序。图像的灰度级数以参数变量的形式传递到所编写的程序中。

(1.b) 使用图 2.21(a) 以(1.a)中编写的程序生成图 2.21 所示的各个结果。

(2.a) 编写一个基于像素复制方式进行图像缩放的程序,假设缩放因子为整数。忽略混叠效应。

(2.b) 用编写的程序将图 2.19 (a)从 1024 x 1024 缩小到 256 x 256。

(2.c) 用编写的程序将(2.b)中的结果图像放大到 1024 x 1024. 并解释与原图产生差异的原因。

(3.a) 编写一个以双线性插值技术进行图像缩放的程序,程序的输入参数为结果图像的水平和垂直方向的像素数。

忽略混叠效应。

(3.b) 用编写的程序将图 2.19 (a)从 1024 x 1024 缩小到 256 x 256。

(3.c) 用编写的程序将(3.b)中的结果图像放大到 1024 x 1024. 并解释与原图产生差异的原因。

二、技术论述

采用 MATLAB 编程环境写 M 函数去完成实验,MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。它主要提供以下功能:用于技术计算的高级语言;可对代码、文件和数据进行管理的开发环境;可以按迭代的方式探查、设计及求解问题的交互式工具;可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等的数学函数;可用于可视化数据的二维和三维图形函数;可用于构建自定义的图形用户界面的各种工具;可将基于MATLAB的算法与外部应用程序和语言集成的各种函数等。在本实验中我们主要运用了MATLAB扩展的图像处理工具箱进行(如利用函数imread、imshow和imresize可以实现对图像的读取、显示和调整)。

图像的灰度是指图像亮度的明暗程度,也叫灰阶色阶。采用矩阵处理方式将文件的像素处理成16、32、64级层次,使传送的图片更清晰,灰度等级越高,颜色越丰富,色彩越艳丽;反之,显示颜色单一,变化简单。

图像内插是在放大、收缩、旋转等图像处理任务中广泛使用的基本工具,它是通过已知数据来估计未知位置的数值图像处理方法,有两种方法是像素复制法和双线性插值法。双线性插值方法需要用4或4个以上最近邻点去估计给定位置的灰度。在数学上,双线性插值算法可以看成是两个变量间的线性插值的延伸。执行该过程的主要程序是先在一个方向上执行线性插值,然后再在另外一个方向上插值。经过0到255之间256种可能的的浮点运算,并对数值进行取整。

像素复制法的图像缩放是把原图像最近邻的灰度赋给每个新的位置,或者在缩小中简单地去除某一位置的像素信息,不用涉及像双线性插值和双三次内插的大量的浮点运算,计算量小。但这种方法在放大图片时会产生较为严重的失真,在缩小后再放大图片则失真更为明显。

四、实验结果讨论

718d66938e8dc06b43e0d9991f24df8b.png

通过技术分析编写以2的幂次方将给定图像的灰度级数从256减少到2的程序grayreduce.m、基于像素复制方式进行图像缩放的程序pixelcp.m和以双线性插值技术进行图像缩放的程序c2line.m(见附录)。通过图片Fig2.19(a).jpg和Fig2.21(a).jpg进行程序测试,并对缩放后输出图像产生的差异进行分析。

图1 不同灰度级图像的对比

bceb839d81844d8b1ab8dbd04308b5e3.png

图2-1 像素复制方式缩小为256*256的图像

176f08f67007b40fa29128c1eebf6bbf.png

图2-2 像素复制方式放大为1024*1024的图像

78d969849a661d913a45ce5bfcd57dea.png
图3-1 双线性插值技术缩小为256*256的图像

c54baa638fec40812f2e6303a7bf4527.png

图3-2 双线性插值技术缩小为1024*1024的图像

2fac1f67e3e0ba640da9a3b11f517492.png

图2-3 像素复制方式缩小和放大图像的对比

294309683afb717a2e286e7189a4cef4.png

图3-3 双线性插值技术缩小和放大后图像的对比

通过实验结果的对比分析可知像素复制法运算速度较快,适用于一些只有少量细节的图片缩放技术,但由于缩放后的图像失真严重则无法胜任具有大量细节的图像缩放工作。双线性插值法通过使用4个或以上的临近点来估计新位置的灰度值,它的缩放结果更接近原图像的细节,失真较少。但是通过观察MATLAB上运行代码时便可明显感觉到它的运算速度较慢。不过使用双线性插值法所得到的结果比像素复制法有重大的改进。在实际操作过程中需要考虑考虑计算负担与效率问题。

附录:程序清单

%1.1 以2的幂次方将给定图像的灰度级数从256减少到2的程序grayreduce.m
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值