详细描述
参考附图对本发明进行以下描述,附图形成本发明的描述的一部分,并且它作为示例示出用于实现本发明的具体示例。应该理解的是,可使用其它实施例并可做出结构性变化,而不脱离本发明的范围。
I.介绍
图像伪影通常在高分辨率图像中更显著。最常见和最令人不悦的图像伪影之一是“紫边”,它作为围绕物体的紫晕而出现在图像的某些部分中。紫边在胶卷和数码照相机两者中都会出现。大多数紫边移除技术是手动技术,它要求用户检测图像中的紫边区域。此外,许多这些技术采用具有另一种预先指定的颜色的像素替换紫边像素,从而造成原始颜色经常被改变。另外,颜色替换的处理通常在区域边界处是突变的。由于这两个特征,最终的效果在视觉上可能会不令人满意。
自动紫边移除系统和方法是一种既能自动检测又能修正紫边的完全自动的技术(不需要手动的用户介入)。该技术基于一些观察经验,即紫边往往邻近饱和或接近饱和的区域,并且出现紫边的区域的特征是像素的红色和蓝色强度值远远大于绿色强度值。基于这些观察经验,该系统和方法检测在其中包含紫边的紫边区域。接着,用单色像素替换紫边区域中的彩色像素以便完全地消除紫边。或者,用原始观察的颜色以及强度大为减少的略带紫色的色调替换紫边像素。
II.总体概要
图1示出紫边现象。如图1所示,高分辨率图像100包含背景中带有明亮天空120的棕榈叶110的图像。紫边呈现为棕榈叶110周围和之间的略带紫色的色调130。紫边不仅减少了图像100的美感,而且还遮蔽了那部分图像的真实颜色。
图2是示出此处公开的自动紫边移除器200的示例性实现的框图。应该注意的是,图2仅仅是可实现和使用自动紫边移除器200的多种方法之一。如图2所示,自动紫边移除器200通常驻留在计算机设备210中。在该示例性实现中,自动紫边移除器200是一个使用单按钮解决方案来移除紫边的独立于操作系统的应用程序。单按钮解决方案令用户点击一个按钮就能使应用程序自动移除紫边。如果用户喜欢该自动的图像处理,则保留该处理;否则,可撤销该处理。
在图2示出的示例性实现中,自动紫边移除器200的输入是图1所示的包含紫边的高分辨率图像100。自动紫边移除器200处理图像100以便移除任何紫边。输出被修正的图像220。被修正的图像220通过自动紫边移除器200移除紫边。
III.结构概要
现在将讨论此处公开的自动紫边移除器200的结构。为了更完面地理解自动紫边移除器200的结构,展示示例性实施例的一些细节。然而,应该注意的是,该示例性实施例仅仅是实现和使用自动紫边移除器200的多种方法之一。
图3是示出图2所示的自动紫边移除器200的各组件的概观的总体框图。总体而言,自动紫边移除器200处理具有紫边的输入图像并输出紫边被移除的处理后的图像。具体而言,自动紫边移除器200的输入是包含紫边区域的高分辨率数字图像300(高分辨率图像100是此类的输入的一个示例)。经过处理,输出是包含被修正的紫边区域的高分辨率数字图像305。
驻留在计算设备210上的自动紫边移除器200包括接近饱和检测器310,该检测器310寻找图像300中具有饱和或接近饱和的像素的区域。该接近饱和检测器提供一接近饱和的区域的列表320。自动紫边移除器200还包括确定图像305中的每个像素的诸强度值的RGB分析器330。尤其是,RGB分析器330确定图像305中的像素的红(R)、绿(G)和蓝(B)颜色的强度值。该RGB分析器330提供一候选区域列表340。
接近饱和的区域列表320以及候选区域列表340是区域比较器350的输入。区域比较器350分析该接近饱和区域和候选区域,并基于该分析(其细节将在以下讨论)生成一紫边区域列表360。紫边修正模块370处理紫边区域360,并如下面详细解释的,修正并移除紫边区域360中的紫边。经过处理,输出为包含修正后的紫边区域的高分辨率数字图像305。
IV.示例性操作环境
此处使用的自动紫边移除器200和方法被设计成在计算环境中操作。以下讨论意在提供对在其中可实现自动紫边移除系统和方法的合适的计算环境的简要的一般性的描述。
图4示出在其中可实现自动紫边移除系统和方法的合适的计算系统环境的示例。该计算系统环境400仅仅是合适的计算环境的一个示例且并不意在暗示对本发明的使用或功能的范围的任何限制。也不应将计算环境400解释为对于示例性操作环境所示出的组件中的任何一个或其组合具有任何依赖或要求。
自动紫边移除系统和方法可采用众多其它通用或专用计算系统环境或配置来操作。适用于间接纹理放大(indirection texture magnification)系统和方法的熟知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、诸如蜂窝电话和PDA等手持式、膝上型或移动计算机或通信设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费类电子产品、网络PC、小型计算机、大型计算机、包括任何以上系统或设备的分布式计算环境等。
可在由计算机执行的诸如程序模块等计算机可执行指令的一般上下文中描述自动紫边移除系统和方法。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。该间接纹理放大系统和方法还可在分布式计算环境中来实现,在该环境中,任务可由通过通信网络链接的远程处理设备来执行。在分布式计算环境中,程序模块可位于包括存储器存储设备的本地和远程计算机存储介质两者上。参考图4,一种用于实现自动紫边移除系统和方法的示例性系统包括以计算机210为形式的通用计算设备。
计算机210的各组件可包括,但不限于,处理单元420(诸如中央处理单元,CPU)、系统存储器430以及将包括系统存储器的各种系统组件耦合至处理单元420的系统总线421。系统总线421可以是几种类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线、和采用各种总线体系结构中的任一种的局部总线。作为示例,而并非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线、以及也被称为夹层(Mezzanine)总线的外围部件互联(PCI)总线。
计算机210通常包括各种计算机可读介质。计算机可读介质可以是能被计算机210访问的任何可用介质,包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而并非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机储存介质包括以用来存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性的、可移动的和不可移动的介质。
计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或可用来储存所期望的信息并能被计算机210访问的任何其它介质。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任何信息传递介质。
注意,术语“已调制数据信号”指的是将其一个或多个特性以在该信号中编码信息的方式来设置或改变的信号。作为示例而非限制,通信介质包括有线介质,例如有线网络或直接线连接,以及无线介质,例如声学、RF、红外线和其它无线介质。上述的任何一种的组合也应该被包括在计算机可读介质的范围之内。
系统存储器430包括诸如只读存储器(ROM)431和随机存取存储器(RAM)432等易失性和/或非易失性存储器形式的计算机存储介质。包含(例如在启动期间)帮助在计算机210内的元件之间传输信息的基本例程的基本输入/输出系统433(BIOS)通常存储在ROM 431中。RAM 432通常包含处理单元420直接可访问和/或当前正在操作的数据和/或程序模块。作为示例,而不是限制,图4示出了操作系统434、应用程序435、其它程序模块436以及程序数据437。
计算机210还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图4示出了读取和写入不可移动、非易失性磁介质的硬盘驱动器441,读取和写入可移动、非易失性磁盘452的磁盘驱动器451,以及读取和/或写入诸如CD ROM或其它光介质等可移动、非易失性光盘456的光盘驱动器455。
能用于该示例性操作环境的其它可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器441通常通过诸如接口440的不可移动存储器接口与系统总线421相连,磁盘驱动器451和光盘驱动器455通常由诸如接口450等可移动存储器接口与系统总线421相连。
上面讨论的并在图4中示出的驱动器及其相关联的计算机存储介质为计算机210提供了对计算机可读指令、数据结构、程序模块及其它数据的存储。在图4中,例如,硬盘驱动器441被示为存储操作系统444、应用程序445、其它程序模块446、及程序数据447。注意,这些组件可以与操作系统434、应用程序435、其它程序模块436、及程序数据437相同或不同。操作系统444、应用程序445、其它程序模块446、及程序数据447在此处被赋予不同的标号用来说明至少它们是不同的副本。用户可以通过诸如键盘462和定点设备461(通常指鼠标、跟踪球或触摸垫)等输入设备将命令和信息输入到计算机210中。
其它输入设备(未示出)可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、雷达接收器或电视或广播视频接收器等等。这些及其它输入设备通常通过耦合至系统总线421的用户输入接口460连接至处理单元420,但也可通过其它接口和总线结构,例如并行端口、游戏端口、或通用串行总线(USB)来连接。监视器491或其它类型的显示设备也通过诸如视频接口490的接口连接至系统总线421。除了监视器之外,计算机还可包括诸如扬声器497和打印机496等其它外围输出设备,它们可通过输出外围接口495被连接。
计算机210可采用与诸如远程计算机480等一个或多个远程计算机的逻辑连接在联网环境中操作。远程计算机480可以是个人计算机、服务器、路由器、网络PC、对等设备、或其它常见的网络节点,并且通常包括许多或全部以上关于计算机210所描述的元件,尽管图4中只示出存储器存储设备481。图4所示的逻辑连接包括局域网(LAN)471和广域网(WAN)473,但还可包括其它网络。这样的网络连接环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN网络连接环境中使用时,计算机210通过网络接口或适配器470连接至LAN 471。当在WAN网络连接环境中使用时,计算机210通常包括调制解调器472,或用于通过诸如因特网等WAN 473建立通信的其它装置。可内置或外置的调制解调器472可通过用户输入接口460或其它合适的机制连接至系统总线421。在联网环境中,关于计算机210所描绘的程序模块或其部分可以存储在远程存储器存储设备中。作为示例,而非限制,图4将远程应用程序485示为驻留在存储器设备481中。将意识到,所示出的网络连接是示例性的,并且可以采用在计算机之间建立通信链路的其它手段。
V.操作概要
图5是示出图2和图3中所示的自动紫边移除器200的一般性操作的总体流程图。如图5所示,自动紫边移除方法从接收作为输入的包含紫边区域的原始高分辨率图像(框500)开始。该紫边区域包含紫边。接着,自动检测该图像中的紫边区域(框510)。检测之后,自动修正紫边区域(框520)。通过将紫边区域用单色或紫色减少的区域替换来进行该修正。输出是包含修正后的紫边区域的修正后的高分辨率图像(框530)。
VI.操作细节、工作示例以及结果
图5所示的自动紫边移除方法基于两个观察经验。第一个观察经验是,紫边区域往往邻近特别亮(即接近饱和)的区域。第二个观察经验是紫边区域中的像素包含远大于绿色强度值的蓝色和红色强度值。在典型的例子中,蓝色强度值(B)大于红色强度值(R),且它们两者都远大于绿色强度值(G)(即,蓝色(B)>红色(R)>绿色(G))。这些观察经验是比较稳健的,因此,自动紫边移除方法对大多数包含紫边的图像有效。
红色和蓝色强度的颜色增加还会引起原始颜色的丢失。这使得确定图像的原始颜色是什么变得较为困难。自动紫边移除方法减轻红色和蓝色强度值并将紫边区域中的像素从彩色改变为单色。如果紫边效应不是很显著,则该方法还可减少紫色以生成被该方法确定为较接近原始颜色的颜色。
图6是示出图5所示的自动紫边移除方法的细节的流程图。该过程从输入包含紫边区域的高分辨率数字图像300开始。自动检测图像300中的接近饱和的区域(框600)。另外,自动检测图像300中其像素的蓝色和红色强度值远大于绿色强度值的区域(框610)。这些区域被称为候选区域。
然后,该方法确定哪些候选区域邻近接近饱和的区域并将这些区域指定为紫边区域(框620)。按这个方式,自动检测出图像300中的紫边区域。一旦检测出来,则通过用单色(即黑或白)像素替换紫边区域中的像素来自动修正紫边区域(框630)。或者,该替换颜色可以是其中紫色量大为减少的颜色。输出是包含代替紫边区域的单色区域的高分辨率数字图像305。
自动紫边移除方法的一个优点是它不盲目地修正图像的原始颜色是真的紫色的区域。如果一个区域是紫色并且不接近任何饱和区域,则不修正该区域。另一个优点是该紫边区域包含至少某些在视觉上远没有那么反感的全单色像素。这意味着完全消除了该紫边,而不像某些仅使用另一种预先指定的颜色替换紫色像素的移除技术。
工作示例
现在将讨论自动紫边移除系统和方法的示例性工作示例的详细内容。应该注意的是,该工作示例仅仅是实现自动紫边移除系统和方法的多种方法之一。
接近饱和的区域
通过将像素的强度值与一饱和阈值作比较来确定一像素是否饱和。如果该强度值大于或等于该饱和阈值,则该像素被认为是接近饱和的像素。在一幅数码照片被拍摄时,像素颜色由红(R)、绿(G)和蓝(B)三色组成。这些颜色按0(黑色)到255(最亮值)被离散化。因此,值255表示完全饱和。在工作示例中,如果强度值(或RGB值)大于或等于230(接近饱和阈值),则该像素被指定为接近饱和的像素。或者,可使用任何合理高的饱和阈值。
候选区域
为了确定作为候选区域的区域(即可能的紫边区域),工作示例要求同时满足以下条件:
1.(蓝色强度值(B))—(红色强度值(R))>25;以及
2.(蓝色强度值(B))—(绿色强度值(G))>25。
如果这些条件都满足,则该区域被指定为候选区域。此外,如上面所解释的,如果候选区域邻近接近饱和的区域,则该候选区域升级为该图像中的紫边区域。
紫边区域的大小限制
如果候选区域是大的并且邻近接近饱和的区域,则它不一定表示整个候选区域都被紫边化。在一个工作示例中,对紫边区域的大小设限。
图7是示出限制紫边区域大小的框图/流程图。图3所示,区域比较器350执行该过程。区域比较器350的输入是接近饱和的区域列表320和候选区域列表340。紫边区域大小限制过程从在该接近饱和的区域列表中选择一个接近饱和的区域(框700)开始。接着,由一定数目的像素扩大或缩小所选的接近饱和的区域的边界(框710)。然后,确定哪个候选区域是邻近所选的接近饱和的区域并且该区域被指定为所选的候选区域(框720)。
然后,确定一交集区域(框730),该区域是由所选的接近饱和的区域和所选的候选区域的交集所形成的区域。该交集区域被指定为紫边区域(框740)。该交集区是被认为是彩边区域的那部分区域并且被转换成单色或紫色较少的颜色。然后,对接近饱和的区域列表中剩余的接近饱和的区域中的每一个区域重复该过程(框750)。输出是紫边区域列表360。
紫边修正的第一实施例
现在将展示图3所示的紫边修正模块370的三个实施例中的第一个。该第一实施例采用单色羽化技术,该技术羽化或混合紫边区域中的像素,使得彩色像素逐渐转变成单色(即黑和白)像素。
使用羽化的原因是将彩色图像中的一个颜色突然地改变成另一个颜色的结果对于观看者而言是令人不悦的。事实上,它对于观看者来说看起来很奇怪。羽化,即将一个颜色逐渐转变成另一个(很可能是单色),避免了这个问题。
羽化过程一次生长一个像素。在每一个步骤中,平均像素值与其原始值混合。图8是示出图3所示的紫边修正模块370的第一实施例的流程图。紫边模块370的输入是紫边区域列表360。该第一实施例从选择一个紫边区域来进行处理(框800)开始。然后,在所选的紫边区域中选择一个像素(框810)。接着,L被指定为离纯单色区域的距离,N是从全单色到达全彩色所需的像素数目,并且加权的平均强度I由下式给出:
I=(λRR+(1-λR-λB)G+λBB)
其中λR和λB是0到1之间的数(框820)。在λR=λB=1/3的情况下,它恰恰是直接平均。然而,在极限的情况下,由于紫边夸大了R和B的值,所以只有通过令λR=λB=0来选择并依赖绿色通道。在一个实施例中,使用λR=λB=0。
所选像素的红色强度值由下式给出(框830):
R=((N-L)I+LR)/N
所选像素的绿色强度值由下式给出(框840):
G=((N-L)I+LG)/N
所选像素的蓝色强度值由下式给出(框850):
B=((N-L)I+LB)/N
在该工作示例中,N=10个像素,其中N在0到10中变化。
注意到,当L=0时,R=1,换言之,这恰恰等于单色值。羽化实现纯彩色和纯单色之间的线性变化。纯单色像素位于紫边区域,而纯彩色像素位于饱和区域。为所选的紫边区域中的每个像素重复上述过程(框860)。输出是包含使用第一实施例修正后的紫边区域的高分辨率数字图像(框870)。
紫边修正的第二实施例
现在展示图3所示的紫边修正模块370的第二实施例。第二实施例采用单色平均技术,该技术将紫边区域转换成单色(即黑和白)区域。特别地,新的RGB值是旧的RGB值的均值。这意味着新的RGB值都是相同的。该处理使得彩色变为黑和白。该技术中所缺少的是第一实施例的羽化处理,以致没有从彩色像素向单色像素的逐渐转变。
图9是示出图3所示的紫边修正模块370的第二实施例的流程图。紫边模块370的输入是紫边区域列表360。该第二实施例从选择一紫边区域来进行处理开始(框900)。然后,从所选的紫边区域中选择一个像素(框910)。
所选像素的红色强度值由下式给出(框920):
R=(λRR+(1-λR-λB)G+λBB)
所选像素的绿色强度值由下式给出(框930):
G=(λRR+(1-λR-λB)G+λBB)
以及所选像素的蓝色强度值由下式给出(框940):
B=(λRR+(1-λR-λB)G+λBB)
同样,λR和λB是0到1之间的数,并且最好为小,因为R和B值较为不可信(被紫边化过程不真实地夸大)。
为所选的紫边区域中的每个像素重复这个过程(框950)。输出是包含使用该第二实施例修正后的紫边区域的高分辨率数字图像(框960)。
紫边修正的第三实施例
现在将展示图3所示的紫边修正模块370的第三实施例。第三实施例是使用绿色强度值来设置红色和蓝色强度值的技术。这样做是因为绿色是最信得过的颜色。该技术中所缺少的是第一实施例的羽化处理,以致于没有渐变过程。然而,该实施例可容易地适应于包括羽化处理。然而,在大多数情况下,由于第二实施例的单色平均处理保留了强度,所以它看上去更好。
图10是示出图3所示的紫边修正模块370的第三实施例的流程图。紫边模块370的输入是紫边区域列表360。该第三实施例从选择一紫边区域来进行处理(框1000)开始。然后,从所选的紫边区域中选择一个像素(框1010)。
所选像素的红色强度值由下式给出(框1020):
R=βRR+(1-βR)G
以及所选像素的蓝色强度值由下式给出(框1030):
B=βBB+(1-βB)G
βR和βB两者是0到1之间的数,并且应设置为一个小的数,因为G是最信得过的值。通过将βR和βB设置为小的非零值,如果紫边程度不是很厉害,那么我们基本上遗留下来一些残余的原始颜色。如果令βR和βB均为0,则所选像素的这些原始的绿色强度值被保留。
为所选的紫边区域中的每个像素重复上述过程(框1040)。输出是包含使用第三实施例修正后的紫边区域的高分辨率数字图像(框1050)。
结果
现在将展示根据自动紫边移除系统和方法获得的结果。具体而言,将展示两组结果,这样可以看出自动紫边移除系统和方法是如何有效地从图像中移除紫边的。
图11是在自动紫边移除系统和方法对其进行处理之前包含紫边的第一图像1100。插图1110示出有明显紫边的一个区域1120。图12A是作为第一图像1100的一部分的第二图像1200,该第二图像更细致详细地示出车上的紫边。
图12B示出对图12A所示的第二图像1200的分析。具体而言,第三图像1210示出第二图像1200经自动紫边移除系统和方法部分处理后的图像。RS表示第二图像1200中的接近饱和的区域,RPC表示紫边区域。
图13是示出由自动紫边移除系统和方法处理图11所示的第一图像1100的结果的第四图像1300。在第四图像1300的插图1310中可以看出,明显的紫边1120中的一个区域(由修正后的区域1320所示出)被完全移除。应该注意的是,当与第一图像1100相比较时,该第四图像1300对用户来说更悦目。
图14示出由自动紫边移除系统和方法处理图1所示的高分辨率图像100的结果。该高分辨率图像100的处理结果是第五图像1400。应该注意的是,该第五图像1400在原始图像100中可见的紫边在第五图像1400被移除(见1410)。紫边的移除使图像1400对观看者的眼睛而言更舒服。
为说明和描述目的展示了本发明的以上描述。并不意在穷尽性描述也不意在将本发明限制为所公开的精确形式。鉴于上述教示,可存在许多修改和变型。希望本发明的范围不是由本发明的详细描述来限制,而是由此处所附的权利要求来限制。