基于区域填充的二值数字图像放大算法

合集下载

图像缩放算法及速度优化——(二)双线性插值

图像缩放算法及速度优化——(二)双线性插值

图像缩放算法及速度优化——(⼆)双线性插值 双线性插值作为OpenCV中默认使⽤的图像缩放算法,其效果和速度都是不错的。

并且效果也⽐较稳定,计算复杂度并不算太⾼。

我看了很多⽹上的算法,⾃⼰也没看太懂,下⾯是从⽹上找的双线性插值算法的讲解。

“图像的双线性插值放⼤算法中,⽬标图像中新创造的象素值,是由源图像位置在它附近的2*2区域4个邻近象素的值通过加权平均计算得出的。

双线性内插值算法放⼤后的图像质量较⾼,不会出现像素值不连续的的情况。

然⽽次算法具有低通滤波器的性质,使⾼频分量受损,所以可能会使图像轮廓在⼀定程度上变得模糊。

” 下⾯还是根据我⾃⼰的理解来继续讲述吧,相信读者中有很多⾼⼿,希望读者能给予我指点⼀下,让我也能更明⽩⼀些。

双线性插值算法和最近邻插值算法⽐较类似。

在最近邻插值算法中,⽬标图像中的某个点(x,y)是去源图像中找最邻近的⼀个点(x0, y0)即可。

⽬标图像中的点(x, y)对应于源图像中的点(x0',y0'),x0'、y0'很可能不是整数,⽽是⼩数,⽽最近邻插值算法是找其邻近整型值(int(x0'+0.5f),int(y0'+0.5f))(上篇⽂章中没有进⾏四舍五⼊)。

我们现在找x0', y0'所在位置旁边的四个点,根据这四个点与(x0',y0')距离的关系计算⽬标图像中(x,y)⼀点的像素值。

算法描述如下:(1)计算源图像与⽬标图像宽与⾼的⽐例w0 : 表⽰源图像的宽度h0 : 表⽰源图像的⾼度w1 : 表⽰⽬标图像的宽度h1 : 表⽰⽬标图像的⾼度float fw = float(w0-1)/(w1-1);float fh = float(h0-1)/(h1-1);(2)针对⽬标图像的⼀个点(x, y),计算在源图像中的对应坐标,结果为浮点数。

float x0 = x * fw;float y0 = y * fh;int x1 = int(x0);int x2 = x1 + 1;int y1 = int(y0);int y2 = y1+1;所求的源图像中的四个点坐标为(x1, y1) (x1, y2) (x2, y1) (x2,y2)(3)求周围四个点所占的权重⽐值如上图,fx1 = x0 - x1;fx2 = 1.0f - fx1;fy1 = y0 - y1;fy2 = 1.0f - fy1;float s1 = fx1*fy1;float s2 = fx2*fy1;float s3 = fx2*fy2;float s4 = fx1*fy2;我们以value(坐标)来代表取得此点的坐标值,则:value(x0,y0) = value(x2,y2)*s1+value(x1,y2)*s2+value(x1,y1)*s3+value(x2,y1)*s4;如果对上述运算不够明⽩的话,可以这样来求。

数字图像处理课程设计基于Matlab的数字图像处理

数字图像处理课程设计基于Matlab的数字图像处理

数字图像处理课程设计--基于Matlab的数字图像处理数字图像处理课程设计基于Matlab的数字图像处理——图像的运算院系信息技术学院专业班级电气6班学号 201107111282姓名何英娜指导教师章瑞平课程设计时间 2012年11月目录一、摘要 (3)二、图像代数运算1、1图像的加法运算 (4)1、2图像的减法运算 (4)1、3图像的除法运算 (4)1、4绝对差值运算 (7)1、 5 图像的求补运算 (7)3三、图像的几何运算2、1 图像插值 (7)2、2图像的旋转 (8)2、3图像的缩放 (9)2、4图像的投影变换 (10)2、4图像的剪切 (11)四、课程设计总结与体会 (13)五、参考文献 (14)摘要图像运算涵盖程序设计、图像点运算、代数运算、几何运算等多种运算;设计目的和任务:1、熟悉图像点运算、代数运算、几何运算的基本定义和常见方法;2、掌握在MTLAB中对图像进行点运算、代数运算、几何运算的方法3、掌握在MATLAB中进行插值的方法4、运用MATLAB语言进行图像的插值缩放和插值旋转5、学会运用图像的投影变换和图像的剪切46、进一步熟悉了解MATLAB语言的应用,将数字图像处理更好的应用于实际7、通过各类算法加强图像各种属性、一、图像的几何运算何运算图像代数运算是指对两幅或两幅以上输入图像对应的像素逐个进行和差积商运算以产生增强效果的图像。

图像运算是一种比较简单有效的增强处理手段是图像处理中常用方法。

四种图像处理代数运算的数学表达式如下:C(x,y)=A(x,y)+B(x,y)C(x,y)=A(x,y)-B(x,y)C(x,y)=A(x,y)*B(x,y)C(x,y)=A(x,y)/B(x,y)1图像加法运算一般用于多幅图像求平均效果,以便有效降低具有叠加性的随机噪声,在matlab中imadd用于图像相加,其调用格式为z=imadd(X,Y);程序演示如下:I=imread('rice.png');subplot(2,2,1),imshow(I),title('原图像1'); J=imread('cameraman.tif');subplot(2,2,2),imshow(J),title('原图像52');K=imadd(I,J,'uint16'););subplot(2,2,3),imshow(K,[]),title('相加后图像'2、图像减法运算也称差分运算,是用于检测图像变化及运动物体的方法;用imsubtract函数实现。

利用双线性插值法实现图像放大

利用双线性插值法实现图像放大

利用双线性插值算法实现图像放大
一、双线性插值算法的原理
双线性插值是指利用映射点在输入图像的4 个邻点的灰度值对映射点进行插值,即待插点处的数值用离待插点最近的四个点的值加权求得。

在同一行内根据待插值像素点与其前后的原图像像素点的位置距离进行加权线性插值,即离原图像像素点越近的待插值像素点,原图像像素的加权系数就越大;行间根据待插值行与其上下的原图像行间的距离进行加权线性插值,即离原图像行越近的待插值行,原图像行的加权系数就越大。

其原理图如下图所示。

双线性插值算法原理示意图
二、算法(MATLAB)
A=imread('1234.jpg');%读取图片
imshow(A);%显示图片
title('放大前原图像');%图片名字
C=imresize(A,5,'bilinear'); %双线性插值法
figure;%打开图片显示窗口
imshow(C);%重新显示放大后的图片
title('双线性插值法放大5倍');
三、程序运行结果截图。

基于偏微分的图像放大算法研究

基于偏微分的图像放大算法研究

(c o lf o ue( 0tae, i u nU i ri , h n d 6 0 5C i ) S h o o C mp tr f r)Sc a n es y C e g u 1 6 ,h a S w h v t 0 n
Abs r c :n t o s he r s a c o i a e z om i ,we a l z h d a b c xitn me h s on i a e t a tI he c ur e oft e e rh n m g o ng nay e t e r w a k ofe si g t od m g z om i o ng. k n dv ntgeoft e i tbl dg nf r a in n t epr e sofi ag oo i Ta i g a a a pr d c a eoft e e i o m to i h oc s he he m ez m ng, hi ril r p e t sa tc ep o os d a i a o i g l rt n m ge zo m n ago ihm s d n a il fe e ta qu ton .The l rt ba e o p r a di r n i le a i s t ago ihm fr t on c e ge e e tn i s c du t d d t ci g,i a e m g s o hi t e p o ry oo e he e e US h e i e plne i t r olton a g i m ot ng h n r pe l z m d t dg e t r e tm s s i n e p ai l ort .By d l i t s i e hm eai w t he po sbl ng h

(完整版)数字图像处理:部分课后习题参考答案

(完整版)数字图像处理:部分课后习题参考答案

第一章1.连续图像中,图像为一个二维平面,(x,y)图像中的任意一点,f(x,y)为图像于(x,y)于处的值。

连续图像中,(x,y)的取值是连续的,f(x,y)也是连续的数字图像中,图像为一个由有限行有限列组成的二维平面,(i,j)为平面中的任意一点,g(i,j)则为图像在(i,j)处的灰度值,数字图像中,(i,j) 的取值是不连续的,只能取整数,对应第i行j列,g(i,j) 也是不连续的,表示图像i行j列处图像灰度值。

联系:数字图像g(i,j)是对连续图像f(x,y)经过采样和量化这两个步骤得到的。

其中g(i,j)=f(x,y)|x=i,y=j2. 图像工程的内容可分为图像处理、图像分析和图像理解三个层次,这三个层次既有联系又有区别,如下图所示。

图像处理的重点是图像之间进行的变换。

尽管人们常用图像处理泛指各种图像技术,但比较狭义的图像处理主要是对图像进行各种加工,以改善图像的视觉效果并为自动识别奠定基础,或对图像进行压缩编码以减少所需存储空间图像分析主要是对图像中感兴趣的目标进行检测和测量,以获得它们的客观信息,从而建立对图像的描述。

如果说图像处理是一个从图像到图像的过程,则图像分析是一个从图像到数据的过程。

这里的数据可以是目标特征的测量结果,或是基于测量的符号表示,它们描述了目标的特点和性质。

图像理解的重点是在图像分析的基础上,进一步研究图像中各目标的性质和它们之间的相互联系,并得出对图像内容含义的理解以及对原来客观场景的解释,从而指导和规划行动。

如果说图像分析主要以观察者为中心来研究客观世界,那么图像理解在一定程度上是以客观世界为中心,借助知识、经验等来把握整个客观世界(包括没有直接观察到的事物)的。

联系:图像处理、图像分析和图像理解处在三个抽象程度和数据量各有特点的不同层次上。

图像处理是比较低层的操作,它主要在图像像素级上进行处理,处理的数据量非常大。

图像分析则进入了中层,分割和特征提取把原来以像素描述的图像转变成比较简洁的非图形式的描述。

基于水平集重构B样条的图像放大算法研究

基于水平集重构B样条的图像放大算法研究
w r p i z d B s d o e lv ls tag r h ,t e i g s s oh d a d te i g o z n a u v swe e r - eeo t mi . a e n t e e e o t m h ma e wa mo t e n h ma e h r o tlc r e r e e h l i i
本文针对 图像在 放 大过 程 中 , 易 出现 局部 模 糊 不清 容 晰, 产生锯齿状轮廓 的图像 , 而传 统 的 图像 处理放 大插 值算
法 方 法 难 以有 效 解 决 该 问 题 . 了 解 决 上 述 问 题 . 出 了一 为 提
其 中 ( )=卢 ( ) 非常有意义的是可 以利用 样条 ,
中 图 分 类 号 :P 9 T31 文 献 标 识 码 : B
I a e M a n fc t n Usn v l S t m g g i a i i g Le e - e i o
Re 0 sr t0 nd B — ln nci n c n t uci n a Sp i e Fu to
c n tu td w i it i ig te i g d l y o sr ce h l man an n h ma e f e i .F n l e i t i a y,t e Ba e i e tr t n t c n q e s u e o r p i h l h y sa r s ai e h i u s wa s d t e a rt e n o o
第2 卷 第5 9 期
文章编号 :0 6 9 4 (0 2)5 0 6 — 4 10 — 3 8 2 1 0 — 2 9 0



仿

22 月 0 年5 1

天津理工大学《数字图像处理》数字图像处理复习题 2

第一章引言一.填空题1. 数字图像是用一个数字阵列来表示的图像。

数字阵列中的每个数字,表示数字图像的一个最小单位,称为像素2. 数字图像处理可以理解为两个方面的操作:一是从图像到图像的处理,如图像增强等;二是从图像到非图像的一种表示,如图像测量等。

5. 数字图像处理包含很多方面的研究内容。

其中,图像重建的目的是根据二维平面图像数据构造出三维物体的图像。

二.简答题1. 数字图像处理的主要研究内容包含很多方面,请列出并简述其中的4种。

①图像数字化:将一幅图像以数字的形式表示。

主要包括采样和量化两个过程。

②图像增强:将一幅图像中的有用信息进行增强,同时对其无用信息进行抑制,提高图像的可观察性。

③图像的几何变换:改变图像的大小或形状。

④图像变换:通过数学映射的方法,将空域的图像信息转换到频域、时频域等空间上进行分析。

如傅利叶变换等。

⑤图像识别与理解:通过对图像中各种不同的物体特征进行定量化描述后,将其所期望获得的目标物进行提取,并且对所提取的目标物进行一定的定量分析。

2. 什么是图像识别与理解?图像识别与理解是指通过对图像中各种不同的物体特征进行定量化描述后,将其所期望获得的目标物进行提取,并且对所提取的目标物进行一定的定量分析。

比如要从一幅照片上确定是否包含某个犯罪分子的人脸信息,就需要先将照片上的人脸检测出来,进而将检测出来的人脸区域进行分析,确定其是否是该犯罪分子。

5. 简述图像几何变换与图像变换的区别。

①图像的几何变换:改变图像的大小或形状。

比如图像的平移、旋转、放大、缩小等,这些方法在图像配准中使用较多。

②图像变换:通过数学映射的方法,将空域的图像信息转换到频域、时频域等空间上进行分析。

比如傅里叶变换、小波变换等。

第二章图像的基本概念一.填空题1. 量化可以分为均匀量化和非均匀量化两大类。

2. 采样频率是指一秒钟内的采样次数。

3. 图像因其表现方式的不同,可以分为连续图像和离散图像两大类。

3.5. 对应于不同的场景内容,一般数字图像可以分为二值图像、灰度图像和彩色图像三类。

sd放大算法 分块接缝

sd放大算法分块接缝以SD放大算法为标题,我们将介绍分块接缝算法的原理和应用。

一、引言SD放大算法(Seam Carving)是一种图像缩放算法,通过删除或插入最佳路径上的像素来调整图像的尺寸,而不会导致图像内容的失真。

分块接缝(Seam Carving with Blocks)是SD放大算法的一种变体,它将图像分成多个块,并在块之间进行接缝处理,以实现更加平滑的缩放效果。

二、SD放大算法原理1. 能量计算SD放大算法首先通过计算每个像素的能量值来确定最佳路径。

能量值衡量了像素与周围像素的差异,可以用于确定哪些像素应该被删除或插入。

2. 最佳路径选择根据能量值,算法选择一条从上到下或从左到右的最佳路径,该路径上的像素将被删除或插入。

最佳路径选择时,算法考虑到像素的能量以及路径上相邻像素的能量。

3. 路径调整为了保持图像的内容完整,算法会对最佳路径进行调整,以避免删除或插入重要的图像内容。

调整路径时,算法考虑到像素能量和路径上的像素差异。

4. 像素删除或插入算法根据最佳路径删除或插入像素。

删除像素时,算法将路径上的像素删除,并将路径上相邻像素连接起来。

插入像素时,算法将路径上的像素复制,并将其插入到路径中。

三、分块接缝算法原理分块接缝算法在SD放大算法的基础上引入了块的概念,将图像分成多个块,并在块之间进行接缝处理。

1. 块的划分分块接缝算法将图像划分成多个块,每个块包含若干个像素。

划分块的大小可以根据需要进行调整。

较大的块可以保留更多的图像细节,但可能导致图像内容的扭曲。

2. 接缝处理在块之间进行接缝处理时,算法考虑到块的边缘像素和接缝线上相邻像素的能量。

接缝处理可以通过删除或插入像素来调整块的大小,以实现更加平滑的缩放效果。

3. 块的调整为了保持图像的内容完整,算法会对块的大小进行调整。

调整块的大小时,算法考虑到块的能量以及块边缘像素和接缝线上相邻像素的差异。

四、分块接缝算法应用分块接缝算法在图像编辑和图像压缩等领域有着广泛的应用。

图像缩放的双线性内插值算法的原理解析

图像缩放的双线性内插值算法的原理解析图像的缩放很好理解,就是图像的放大和缩小。

传统的绘画工具中,有一种叫做“放大尺”的绘画工具,画家常用它来放大图画。

当然,在计算机上,我们不再需要用放大尺去放大或缩小图像了,把这个工作交给程序来完成就可以了。

下面就来讲讲计算机怎么来放大缩小图象;在本文中,我们所说的图像都是指点阵图,也就是用一个像素矩阵来描述图像的方法,对于另一种图像:用函数来描述图像的矢量图,不在本文讨论之列。

越是简单的模型越适合用来举例子,我们就举个简单的图像:3X3 的256级灰度图,也就是高为3个象素,宽也是3个象素的图像,每个象素的取值可以是0-255,代表该像素的亮度,255代表最亮,也就是白色,0代表最暗,即黑色。

假如图像的象素矩阵如下图所示(这个原始图把它叫做源图,Source):234 38 2267 44 1289 65 63这个矩阵中,元素坐标(x,y)是这样确定的,x从左到右,从0开始,y从上到下,也是从零开始,这是图象处理中最常用的坐标系,就是这样一个坐标:---------------------->X|||||∨Y如果想把这副图放大为4X4大小的图像,那么该怎么做呢?那么第一步肯定想到的是先把4X4的矩阵先画出来再说,好了矩阵画出来了,如下所示,当然,矩阵的每个像素都是未知数,等待着我们去填充(这个将要被填充的图的叫做目标图,Destination):? ? ? ?? ? ? ?? ? ? ?? ? ? ?然后要往这个空的矩阵里面填值了,要填的值从哪里来来呢?是从源图中来,好,先填写目标图最左上角的象素,坐标为(0,0),那么该坐标对应源图中的坐标可以由如下公式得出:srcX=dstX* (srcWidth/dstWidth) , srcY = dstY * (srcHeight/dstHeight)好了,套用公式,就可以找到对应的原图的坐标了(0*(3/4),0*(3/4))=>(0*0.75,0*0.75)=>(0,0),找到了源图的对应坐标,就可以把源图中坐标为(0,0)处的234象素值填进去目标图的(0,0)这个位置了。

双线性插值放大算法在视频图像实时放大处理系统中的应用

双线性插值放大算法在视频图像实时放大处理系统中的应用作者:唐爱民来源:《电子世界》2013年第09期【摘要】文章设计并实现了基于FPGA的视频图像实时双线性插值放大。

针对双线性插值算法的特点,对算法的硬件实现框架进行了深入研究,提出了一种合理的双一维线性插值模块框架,完成算法的硬件实现,并将其设计应用在视频图像实时处理系统。

仿真结果表明,应用该方法进行插值计算不仅结构简单、实时性好,而且可实现变倍率的视频图像实时放大。

【关键词】视频图像;图像放大;FPGA;双线性插值算法1.引言随着计算机、电子和数据通信技术的高速发展,实时图像放大技术在夜间辅助驾驶、医学图像分析、工业生产监控等领域得到越来越广泛的应用。

大量的图像处理工作需要依靠高实时性且画面清晰的局部动态图像信息来完成,这就对图像放大处理系统的实时性及其放大后的图像品质提出了较高的要求。

图像的放大通常是通过插值完成,在图像放大插值算法中,双线性插值算法放大后的图像比较平滑,具有很好的视觉效果,但由于算法本身计算数据的复杂性,该算法主要通过软件编程实现。

然而传统的冯·诺依曼结构的计算机属于标准串行机,编程语言单指令单数据的串行处理过程,将耗用大量的CPU时间,只能应用于一些实时性要求不高的场合。

随着可编程逻辑技术的不断进步和创新,现场可编程门阵列FPGA(Field Programmable Gate Array)具有数以万计的逻辑单元,性能高达500MHz,可通过硬件描述语言,灵活实现各种不同的硬件结构。

而其突出的并行处理能力,打破了顺序执行的模式,在每个时钟周期内完成更多的处理任务,其超高强度运算能力,为用硬件实现数字图像处理创造了条件。

本文设计将双线性插值算法应用在以FPGA作为核心处理器的视频图像实时处理系统,使得该系统可在开启放大显示功能后,可以根据外界输入的控制信号,实现对视频图像中不同区域变倍率放大显示的功能。

在这样的背景下,本文综合考虑了图像处理速度和图像质量,针对视频图像的特点,提出了一种基于FPGA的双线性插值算法的硬件实现方案,并通过相关控制模块的设计将其应用于视频图像实时处理系统,完成对视频图像中不同区域实时放大显示的功能。

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

第29卷第5期 2006年5月合肥工业大学学报(自然科学版)JOURNALOFHEFEIUNIVERSITYOFTECHNOLOGYVol.29No.5 May2006

收稿日期:2005-04-07

基金项目:国家自然科学基金资助项目(50379003);安徽省教育厅自然科学基金资助项目(2005kj096)和合肥工业大学科学研究发展基金资助项目(060504F)

作者简介:江巨浪(1967-),男,安徽潜山人,合肥工业大学博士生,安庆师范学院副教授;张佑生(1941-),男,湖南浏阳人,合肥工业大学教授,博士生导师.

基于区域填充的二值数字图像放大算法江巨浪1,2, 张佑生1, 薛 峰1

(1.合肥工业大学计算机与信息学院,安徽合肥 230009;2.安庆师范学院物理与电气工程学院,安徽安庆 246011)

摘 要:二值数字图像是指仅由2种颜色组成的离散图像。采用一般方法放大二值数字图像,会导致图像的边缘出现模糊与锯齿现象,为此提出一种适合于放大二值数字图像的新算法;采用近邻取样法将图像放大到指定的倍数,通过搜索输入图像确定所有锯齿区域,将其映射到输出图像并进行区域填充;实验结果表明,该

算法用于二值数字图像的放大能使图像边缘保持清晰与光滑,与其他方法相比具有明显的优势。关键词:图像放大;二值数字图像;锯齿;边缘清晰中图分类号:TP391.41 文献标识码:A 文章编号:1003-5060(2006)

05-0525-04

Algorithmforbinarydigitalimagemagnifyingbasedonareafilling

JIANGJu-lang1,2, ZHANGYou-sheng1, XUEFeng

1

(1.SchoolofComputerandInformation,HefeiUniversityofTechnology,Hefei230009,China;2.SchoolofPhysicsandElectricalEngi-

neering,AnqingTeachersCollege,Anqing246011,China)

Abstract:Whenabinarydigitalimage,whichincludesonlytwokindsofcolor,ismagnifiedwiththeex-istingmethods,theobjectbordersalwayslookblurredandsawtooth,soanewmethodisproposedwhichisfitforthebinarydigitalimage.First,theneighbor-samplingmethodisadaptedtomagnifythe

imagetothemultipleappointed.Then,allthesawtoothareasintheinputimagearesearchedinturnandmappedontotheoutputimagewherethecorrespondingareasarefilledup.Theexperimentresultsshowthatthenewmethodcankeepthebordersintheoutputimagesmoothandsharpandissuperiortotheothertechniques.Keywords:imagemagnifying;binarydigitalimage;sawtooth;smoothandsharpcontour

二值图像是指仅由2种颜色组成的离散图像,是一种常见的图像形式。如工业生产中使用的某些工程图,各种电子版的稿件、签名等。为了使已有的图像满足一些特殊场合要求,需要一种有效的方法改变图像的大小,并保证改变后的图像有较好的质量。目前,图像放大主要采取基于插值的方法。近邻取样法(又称为0阶插值方法)较为简单,其缺点是图像放大通常产生明显的“块状”痕迹;双线性插值方法较为常用,不会出现像素值不连续情况[1],可产生较为满意的效果;样条插值与B样条插值方法[2#4]是高分辨率的插值方法,可进一步提高图像质量。此外,人们还将小波

尺度理论引入到B样条插值方法中,实现不同精度的放大效果[5,6]。虽然以上方法用于一般数字图像能够取得较好的放大效果,但用于二值数字图像的放大,效果并不能令人满意。这是因为以上的各种插值方法所具有的滤波器性质会退化图像中的高频部分,导致图像边缘模糊,并且不能消除因图像高倍数放大在边界上形成的锯齿。文献[7,8]根据图像中相邻像素灰度值的变化梯度,将整幅图像划分为多个子区域,使插值操作限定在区域内进行。这种方法放大灰度图像能保证图像内各物体之间的层次感更加清晰,用于二值图像的放大也能在一定程度上使边缘模糊与锯齿效应有所降低。本文提出一种基于区域填充的二值图像放大算法,可以消除放大图像边缘锯齿,使图像轮廓保持光滑与清晰。实验结果表明,新算法是有效的,且具有优越性。1 基于区域填充的二值图像放大算法1.1 图像放大算法对二值图像的放大,无需改变图像非边界区域的颜色值,因此研究二值数字图像放大问题的关键是解决图像边缘的模糊与锯齿现象。在各种基于插值的图像放大算法中,只有近邻取样法没有改变图像边界像素的颜色,尽管边界上出现明显的锯齿,但图像边界没有模糊现象。为此本文选择近邻取样法作为图像放大基本方法,在此基础上对放大的图像边界上的锯齿状区域进行适当填充,使图像边缘达到清晰与光滑的视觉效果。规定二值图像颜色值为1,背景颜色值为0,并设图像在水平与垂直方向分别放大M与N倍,则图像放大的具体算法可描述如下:(1)对于输出图像中的每一个像素P,将其像素中心横坐标值与纵坐标值分别乘以1/M与1/N倍映射到输入图像中,令其在输入图像中映射点的颜色值作为像素P的颜色值。(2)按照纵坐标从小到大的扫描线顺序,依次取输入图像中的每一个像素,按照1.2节中的方法判断其是否和相邻像素构成第1#4类锯齿三角形中的任何一种。若不构成锯齿三角形则无输出,否则确定该锯齿三角形的顶点在输入图像中的坐标值,并进行存储。(3)对输入图像中的每一个锯齿三角形,将其各顶点的横坐标值与纵坐标值分别乘以M倍与N倍映射到输出图像中,并进一步找出输出图像中像素中心位于该映射三角形内的所有像素,将它们的颜色值置为1。(4)显示输出图像。1.2 图像边界锯齿的搜索与定位边缘锯齿分析,如图1所示。图1a是用近邻

取样法将二值图像放大5倍的效果,从中看出并不是图像的所有边界上都出现锯齿。当图像的边界为水平或垂直走向时并不会发生锯齿现象,锯

齿只出现在边界倾斜的情况。对于边界上的任一像素,当其相邻的边界像素不处于同一水平位置或垂直位置时,它们相邻的两条边所夹的区域就有可能成为所谓的锯齿区域。在未进行放大的原

图像中由于锯齿的边长通常为一个屏幕像素,从而图像的边界在视觉上仍然显得是“光滑”的。当图像放大若干倍时,边界的锯齿效应就变得较为

明显。对于非失真输入图像的边界有如下认识:%图像边界为倾斜时,其上的相邻像素的边会形成一个个直角三角形的区域。&若该直角三角

形的最小边长等于1个像素宽度,则认为该三角形区域在放大后必然形成锯齿区域,需要对其进行填充;否则该区域可看成是一条水平边界线与另一条垂直边界线的相交区域(如图1a中图像左

上角凹进去的直角区域),该区域采用近邻取样法放大并没有出现变形,不需对其进行填充处理。

图1 边缘锯齿分析

为了完成对边界锯齿区域的填充,首先需对其所在位置进行搜索与定位。从理论上讲,对于

625

合肥工业大学学报(自然科学版)第29卷 任一像素P(i,j),其相邻的其他像素有可能在8

种不同的位置上与该像素共同形成锯齿区域,图

1b中用数字1#8对不同的锯齿类型进行了编号。由于按照纵坐标从小到大的扫描线顺序处理每一个像素,因而只须考虑第1#4类锯齿即可。首先以第1类锯齿为例,讨论该锯齿的判别与定位方法。基于以上对图像边界的认识,能够满足第1类锯齿条件的情况表示在图1c中,其对应的

锯齿三角形最小边长都为1个像素宽度。第1类锯齿三角形判别及定位的程序框图,如图2所示。其中(i,j)为所处理的当前像素坐标值,C[i,j]为

该像素的颜色,width与height分别为输入图像的宽度与高度。该程序遍历输入图像中的每一个像素,首先判断该像素是否与相邻像素形成第1

类锯齿,然后对锯齿三角形的顶点坐标进行计算并输出加以保存。

图2 第1类锯齿三角形判别及定位的程序框图

由于第2类#第4类锯齿构成方式在空间上具有对称性,显然可采用相类似的方法判断任意像素是否和其相邻像素形成其他各种类型的锯齿,并对相应的锯齿三角形进行定位计算与输出

保存,在此不做赘述。

2 实验结果与比较为了检测本文方法放大二值数字图像的效果,同时采用一些典型的传统算法进行了对比实验。图3a为用于待放大的文本图像,它是将

MSWord2000中一号“隶书”字体经屏幕硬拷贝,然后通过设定灰度阈值转换得到的二值图像。采用近邻取样法对输入图像放大3.8×3.8倍后得

到的结果,如图3b所示,从中可以看到输出仍然为二值图像,但其边缘存在明显的锯齿现象。三次样条插值是一种具有较高精度的放大图像的方法,其结果如图3c所示。该方法使文字边界上的锯齿效应有所降低,但边缘模糊现象较为明显。采用本文算法的放大效果,如图3d所示,它是在图3b的基础上对锯齿区域进行填充所得的结果。

经放大后的文字边界上锯齿消除了,边界显得光滑清晰。

图3 二值图像(文本)的放大效果

图4a为民间剪纸的二值图像;图4b采用了三次样条插值的放大方法;图4c采用了基于区域填充的二值图像放大方法。显然,与基于插值的放大方法相比,本文算法放大二值图像能够使图像边缘清晰与光滑,实现了用传统图像放大方法难以取得的视觉效果。

图4 二值图像(民间剪纸图案)的放大效果

725 第5期江巨浪,等:基于区域填充的二值数字图像放大算法

相关文档
最新文档