位图的处理算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
承诺书
我们仔细阅读了四川理工学院大学生数学建模竞赛的竞赛规则。
我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。
我们知道,抄袭别人的成果实违反竞赛规则的,如果引用别人的成果后其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。
我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公平、公正性。如有违反竞赛规则的行为,我们将受到严肃处理。
我们参赛选择的题号是(从A/B/C/D中选择一项填写):
我们的参赛队(组)号为:
所属学校(请填写完整的全名):
参赛队员(打印并签名) :1.
2.
3.
日期:年月日评阅编号(由评委团评阅前进行编号,学生不填):
编号专用页评阅编号(由评委团评阅前进行编号):评阅记录表
C题位图的处理算法
摘要
本文主要对位图的一系列的处理问题进行了分析,建立了多种模型,较好的解决了题目所提出的问题。
针对问题一,我们首先对位图矢量化课题进行了深入研究,然后针对位图矢量化过程中的几个关键点问题与技术, 特别针对图像轮廓的提取, 跟踪及关键特征点提取和曲线拟合, 提出行之有效的解决算法,比如为准确地提取出图案的边界线条,并将其用方程表示出来的曲线拟合算法;接着在matlab环境下对算法进行处理,得出了边界线条的拟合曲线函数;最后我们运用罗曼诺夫斯基R一检验方法对本问算法进行了模型的检验,得出了这种思路与方法,其处理速度快、曲线拟合光滑、失真小, 验证了算法的可行性, 为其在位图与矢量图转化邻域的初步应用奠定了基础。
针对问题二,首先,我们对位图的具体背景进行了详细的分析,总的来说,即:“在用户眼里,位图是形成视觉图象的象素矩形;然而,对于开发者来说,位图则是指定或包含下列元素的一组结构”这种理论;然后,我们通过采用一种将BMP位图图片进行平滑放大的技术,该技术即利用埃特金插值算法,用此法建立模型;最后,我们将埃特金插值算法得出的数据在matlab中处理,并在最后用改进埃特金插值法进行模型的检验,得出了该方法能够使BMP位图图片缩放后的颜色或灰度变化过程较为平缓,同时有效地清除了边界锯齿及交接处模糊不清的结论。
本文在最后对结果进行分析,结果较好的符合题中所给数据,并对模型进行推广。关键字:图像轮廓;曲线拟合;矢量化;埃特金插值算法
一、问题重述
1.1问题背景
计算机中显示的图形一般分为矢量图和位图。矢量图使用直线和曲线来描述图形,这些图形的元素是一些点、线、矩形、多边形、圆和弧线等等,它们都是通过数学公式计算获得的,所以矢量图形文件体积一般较小,无论怎样放大、缩小或者旋转等都不会失真;但是难以表现色彩层次丰富的逼真图形效果。位图又称为像素图或点阵图像,是有多个点组成的,这些点被称为像素。位图可以模仿照片的真实效果,具有表现力强、细腻、层次多和细节多等等,同时位图是由多个像素点组成的,位图图像放大到一定倍数时可看到这些像素点,因此位图图像在缩放时会产生失真。
1.2问题提出
针对矢量图与位图的区别,提出以下2个问题:
1、矢量图从本质上只是使用曲线方程对图形进行的精确描述,在以像素为基本显示单
元的显示器或打印机上是无法直接表现的。将矢量图转换成以像素点阵来表示的信息,再加以显示或打印,这个过程称之为栅格化(Rasterization),见图1。
栅格化的逆过程相对比较困难。假设有一个形状较为简单的图标,保存成一定分辨率的位图文件。我们希望将其矢量化,请你建立合理的数学模型,尽量准确地提取出图案的边界线条,并将其用方程表示出来。
2、位图在放大时,图像质量常会有所下降,如容易产生较为明显的模糊或马赛克等现象(见图2)。请你建立合理的数学模型,来设计一个放大位图的算法,使图像在被放大后仍能尽量保持较好的图像质量。
二、问题分析
针对问题一:通过对基于栅格边缘的栅格数据矢量化的分析,试用3种方法解决问题。
(1)通过增加判断信息和动态打断等方法避免生成自交多边形;
(2)通过用粗网格法对生成的多边形建立索引机制,再根据索引快速确定多边形之间的包含关系或完全重合关系,重建相关多边形的拓扑关系,从而解决矢量化中“岛”的问题;
(3)以拓扑关系原理为指导,同时提取栅格图像中结点和坐标点以及所有的水平和垂直线段,依据结点和线段两者信息共同来生成弧段,再由弧段生成多边形。矢量图有利于处理边界噪声,修正量化误差,以提高编辑效率和实际效果。矢量化可以用多种形式实现,如直线,圆弧,贝塞尔曲线等等,选用相应的矢量化形式,以求达到最佳的利用效果。由于要对特征点集进行优化,得到的线条要非常均匀和光滑,即采用贝塞尔曲线法。
假设有一个形状较为简单的图标,保存成一定分辨率的位图文件,将其矢量化,建立合理的数学模型,尽可能准确地提取出图案的边界线条,用方程表示出来。
针对问题二:位图在放大时,图像质量常会有所下降,则用BMP位图图片进行平滑放大的技术,该技术利用埃特金插值算法,这种算法的思路是在原始图片中相邻的两象素点在放大后,通过对这两点的颜色或灰度级进行埃特金插值计算,得到放大后图象中这两点间的颜色或灰色。
使BMP位图图片缩放后的颜色或灰度变化过程较为平缓,同时有效地清除了边界锯齿及交接模糊不清的现象。
建立合理的数学模型,设计一个放大位图的算法,使图像在被放大后仍能尽量保持较好的图像质量。
三、模型假设
1、假设曲线拟合的次数足够一致,对最后的拟合函数没有多大的影响;
2、假设根据不同的应用(诸如直线, 圆弧, B 样条曲线, 贝赛尔曲线等)矢量化可以用多种形式实现,选用相应的矢量化形式时, 达到最佳的利用效果基本一致;
3、假设得到的曲线拟合线条已经非常非常均匀和光滑;
4、假设图像预处理时,对于扫描输入的图幅, 其原稿基本上干净,也就是对矢量化的过程的影响认为很小;
5、假设二问中位图几次放大倍数基本相同,则被放大图象的边缘出现明显的锯齿现象基本一致;
6、假设线性插值重复的次数足够大,对结果的数据产生的影响小;
7、假设文件中象素点的值等于图象的灰度值,这样利用埃特金插值方法,可使放大后图象的颜色或灰度变化过程较为平缓,同时图象质量也可较令人满意;
8、假设经过问题二模型的求解,图片放大后的效果足以达到标准要求。
四、模型的建立和求解
4.1问题一的模型的建立
4.1.1象素的8 邻域
对象素( x, y) 将其上下左右4 个象素点及其对角线上的4 个象素点构成的集合称为象素( x , y) 8 邻域:
在位图处理时,由于位图图像是点阵结构, 寻找轮廓线是从当前点出发寻找其相邻轮廓点,如上图1 所示,每一个点周围都有8 个点,事先准备好8 个方向,在搜索过程中, 在8 个方向上试探可否前进, 用矩阵元素下标( , ) 表示当前轮廓点坐标, 对每一个象素点用3
3⨯的模板,也叫8邻域图进行处理。
4.1.2位图的矢量化过程