CN101777175A - 对具有颜色加权优先级的图像进行基于缝隙的缩小和扩大 - Google Patents
对具有颜色加权优先级的图像进行基于缝隙的缩小和扩大 Download PDFInfo
- Publication number
- CN101777175A CN101777175A CN200910205797A CN200910205797A CN101777175A CN 101777175 A CN101777175 A CN 101777175A CN 200910205797 A CN200910205797 A CN 200910205797A CN 200910205797 A CN200910205797 A CN 200910205797A CN 101777175 A CN101777175 A CN 101777175A
- Authority
- CN
- China
- Prior art keywords
- image
- value
- slit
- pixel
- adjusted size
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000009467 reduction Effects 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 183
- 238000005516 engineering process Methods 0.000 claims description 91
- 238000003860 storage Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 9
- 239000003086 colorant Substances 0.000 abstract description 12
- 230000010076 replication Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 39
- 230000008569 process Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 23
- 238000012952 Resampling Methods 0.000 description 18
- 238000013507 mapping Methods 0.000 description 10
- 230000003416 augmentation Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000009795 derivation Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 230000008447 perception Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- HUTDUHSNJYTCAR-UHFFFAOYSA-N ancymidol Chemical compound C1=CC(OC)=CC=C1C(O)(C=1C=NC=NC=1)C1CC1 HUTDUHSNJYTCAR-UHFFFAOYSA-N 0.000 description 2
- 238000013016 damping Methods 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 108010022579 ATP dependent 26S protease Proteins 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 244000287680 Garcinia dulcis Species 0.000 description 1
- 101700004678 SLIT3 Proteins 0.000 description 1
- 102100027339 Slit homolog 3 protein Human genes 0.000 description 1
- 241001441724 Tetraodontidae Species 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010612 desalination reaction Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- NTHWMYGWWRZVTN-UHFFFAOYSA-N sodium silicate Chemical compound [Na+].[Na+].[O-][Si]([O-])=O NTHWMYGWWRZVTN-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/387—Composing, repositioning or otherwise geometrically modifying originals
- H04N1/3872—Repositioning or masking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/04—Context-preserving transformations, e.g. by using an importance map
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/387—Composing, repositioning or otherwise geometrically modifying originals
- H04N1/393—Enlarging or reducing
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本申请涉及对具有颜色加权优先级的图像进行基于缝隙的缩小和扩大。具体地,公开了一种用于扩大和缩小图像的系统和方法,其使用与输入图像的每个像素相关联的绝对值(例如,颜色和/或强度值)来确定每个像素的相应能量值。例如,可以为给定的颜色或颜色范围(例如,肤色或其他高优先级颜色)分配高于其他颜色和/或颜色范围的能量值,并在图形缩小和/或扩大期间对其进行保护。这些能量值可以用于确定与图像的各条缝隙相关联的成本,其可以表示图像中缝隙的优先级。标识一条或多条低成本缝隙用于移除或复制以产生经尺寸调整的图像。该方法可以与自动肤色检测器,或允许选择一种或多种高优先级的颜色或颜色范围的用户接口一起使用。
Description
技术领域
本申请总体上涉及图像处理领域。更具体地,本申请涉及对具有颜色加权优先级的图像进行基于缝隙的缩小和扩大的系统和方法。
背景技术
今天,显示设备的差异性以及多功能性导致了有关数字媒体的新需求。例如,设计者必须为网页内容创建不同的可选内容并为不同设备设计不同的版面。此外,HTML以及其它标准能够支持页面版面和文本的动态改变。虽然图像构成了数字媒体中的一些关键元素,但其典型地保持固定尺寸,不能自动变化以适应不同的版面。然而,为了适应不同的显示器(例如蜂窝电话或PDA)或在给定纸张尺寸上或在特定分辨率下进行打印,必须改变图像的尺寸和/或长宽比。
使用标准图像缩放来对图像进行尺寸调整通常是不够的,因为其感知不到图像内容,并且通常只能统一应用,这会导致输出图像的各种伪像或失真。图像裁剪的使用也是受限的,因为其只能从图像外围移除像素。更有效的尺寸调整只能通过考虑图像内容而不仅仅是考虑几何约束来实现。缝隙拼接(seam carving)技术已被研发出来,其通过从图像中移除或向图像中添加那些被认为不如图像中其他像素重要的像素来改变图像的尺寸,例如,基于将像素值与相邻像素值相比较。然而,标准的缝隙拼接技术在计算上很昂贵,并会产生不希望出现的伪像或失真。
发明内容
用于扩大以及缩小图像的系统、方法以及计算机可读存储介质的各个实施方式可以使用与输入图像的每个像素相关联的绝对值(例如,颜色和/或强度值),而不是相对成本(例如,强度梯度幅值或其他像素派生值),来确定每个像素的相应能量值。例如,可以赋予给定的颜色或颜色范围比其他颜色或颜色范围更高的能量值。在一些实施方式中,这样的方法可以用于在图像缩小操作(例如,使用缝隙拼接方法)期间,保护具有特定颜色或颜色范围(例如,肤色或其他标识为在输入图像中具有高优先级的颜色)的像素,和/或在图像扩大操作期间,标识低优先级像素和/或要复制的缝隙。
在一些实施方式中,映射到输入图像的每个像素值的能量值可以用于确定与该图像各种缝隙相关联的成本(cost),其中缝隙表示从图像的一个边缘到图像的对面边缘的单调路径(monotonic path)。每条缝隙的成本取决于该缝隙所有像素的能量值,或取决于该缝隙像素的最大能量值,其可以表示图像中缝隙的优先级。在一些实施方式中,可以标识一个或多个低成本缝隙(low-cost seam)(例如,那些在图像中具有最低优先级的缝隙)进行移除(例如,用于图像缩小操作)或复制(例如,用于图像扩大操作),以产生经尺寸调整的图像(resized image)。例如,在图像缩小操作中,可以从图像中移除已标识低成本缝隙的所有像素。类似地,在图像扩大操作中,可以复制已标识低成本缝隙的所有像素,并将该复制拷贝插入到图像中(例如,邻接已标识缝隙的地方)。可以移除和/或复制多条缝隙以使经尺寸调整的图像达到所需的目标尺寸和/或比例。
在各个实施方式中,这里所描述的方法可以以由CPU和/或GPU执行的程序指令(例如,存储于计算机可读存储介质上)来实现。例如,它们可以通过程序指令来实现,当执行该指令时,响应于用户输入在图像编辑应用中实现尺寸调整操作。在各个实施方式中,这里所述的方法可以与自动肤色检测器一起使用,或与允许选择一种或多种高优先级颜色或颜色范围的用户接口一起使用。例如,在各个实施方式中,图像编辑应用的用户能够使用颜色选择工具,下拉菜单,单选按钮,或字符输入域,来指定给定图像的一种或多种高优先级的颜色和/或颜色范围。
附图说明
图1A示出了根据一个实施方式的将进行尺寸调整的图像的两条缝隙。
图1B示出了根据一个实施方式的尺寸调整后的输出图像。
图2是示出了根据各个实施方式的用于沿着缝隙对图像进行尺寸调整的方法的流程图。
图3是示出了根据一个实施方式的根据查找表确定缝隙的方法的流程图。
图4A示出了包括肤色的输入图像。
图4B-图4C示出了根据不同实施方式的包括随尺寸调整后肤色的输出图像。
图5是示出根据一个实施方式的确定取决于像素颜色权重的缝隙的方法的流程图。
图6A示出了根据一个实施方式的输入图像的像素表示。
图6B示出了根据一个实施方式的输入图像的一部分的像素值表示。
图7是示出根据一个实施方式的确定取决于像素值频率的缝隙的方法的流程图。
图8是示出根据一个实施方式的沿着缝隙对图像进行尺寸调整和/或使用缩放技术的混合方法的流程图。
图9是示出根据一个实施方式的沿着缝隙对图像进行尺寸调整和/或使用取决于缝隙成本的阈值的缩放技术的混合方法的流程图。
图10是示出根据一个实施方式的沿着缝隙对图像进行尺寸调整和/或使用取决于缝隙数或缝隙百分比阈值的缩放技术的混合方法的流程图。
图11是示出根据一个实施方式的使用缩放技术沿着缝隙对图像进行尺寸调整的混合方法的流程图。
图12是示出根据一个实施方式的沿着具有可变复制系数的缝隙扩大图像的方法的流程图。
图13是示出根据一个实施方式的对图像进行尺寸调整的方法的流程图,该方法取决于依赖局部内容对一个或多个的图像区域进行尺寸调整。
图14是示出根据一个实施方式的图像金字塔中像素值的概念图。
图15是示出根据一个实施方式的尺寸调整输入图像的方法的流程图,该方法取决于对低分辨率版本图像中的低成本缝隙的标识。
图16是示出适用于实现输入图像尺寸调整的图形处理单元(GPU)的一个实施方式的框图。
虽然这里包括了几个实施方式和示意性附图,但本领域技术人员会意识到,具体实现并不限于所述的实施方式或附图。可以理解,附图和具体描述并不试图将具体实现限制于所公开的特定形式中,正相反,其试图覆盖落入由所附权利要求限定的精神和范围中的所有修改,等价物和备选方案。这里使用的所有标题仅为了组织的目的,并非旨在限定说明书或权利要求的范围。如这里所使用的,单词“可以”用于表示容许的意思(即,意指可能),而非表示强制的意思(即,意指必须)。类似地,单词“包括”表示包括但不限于。
具体实施方式
图形应用包括越来越多的图像编辑功能部件,例如各种滤波选项和尺寸调整操作(例如,用于裁剪,扩大或缩小图像)。当前可用的图像尺寸调整技术包括缩放(scaling)技术和基于缝隙的技术,也称为缝隙拼接技术。在各个实施方式中,这里所述的缝隙拼接可以用于增大或减小图像的尺寸。例如,给定图像,为了减少宽度,可以通过缝隙拼接技术标识图像中的一条或多条缝隙,并从图像中将其移除,而为了增大宽度,可以在图像中标识并复制一条或多条缝隙。如这里所使用的,术语“缝隙”是指沿着从图像的一个边缘(例如,图像顶部)到该图像的对面边缘(例如,图像底部)的路径的一组像素,其满足下面两个约束条件:
1)该缝隙是单调的,这意味着(在这个示例中),其路径仅以一个方向穿过图像(例如,向下),且当穿过图像时并不转向(例如,向下行进一段然后又向上,反之亦然)。
2)该缝隙包括互相“连接”的像素。换句话说,对于任何给定的缝隙像素(在这个示例中),下一行上的像素必须正好低于给定像素或者与给定像素斜向邻接(例如,在下一行上处于给定像素左边或右边的一个像素)。例如,从任意给定的缝隙像素到该缝隙的下一像素,路径不能跳到下一行中距离20个像素之远的像素。
在各个实施方式中,缝隙拼接技术可以是内容敏感的或上下文感知的。例如,给定输入图像,可以对表示该图像的数据进行处理以生成该图像的替代表示,其可被称为能量图(energy map),该能量图指示了就对图像进行尺寸调整方面而言每个像素的重要程度。在内容感知的缝隙拼接技术的一些实施方式中,可以通过这个能量图,依赖于邻近区域中的像素来生成映射到输入图像中每个像素的值,例如,使用导函数(derivative function)。例如,如果一个白色像素被其他白色像素包围,那么可以认为(就尺寸调整操作而言)它不是重要的像素。这是因为如果将其移除,就如同其没有丢失一样。另一方面,如果一个白色像素被黑色像素包围,那么移除它就会非常明显并且会改变图像的内容。因此,该像素可以由能量图映射到较高的值。
内容感知缝隙拼接技术可以在各个实施方式中为每个像素分配能量或权重,并可以使用那些值来标识就尺寸调整操作而言具有最小成本的一条或多条缝隙。换句话说,内容感知缝隙拼接技术可以使用每个像素的能量值来标识从图像的一个边缘到图像的对面边缘的像素路径,该路径的能量值的总和最小。在一些实施方式中,使用称为动态规划或最短路径的技术可以有效解决确定该像素路径的问题。一旦标识了最低成本的缝隙,可以沿着该缝隙对图像进行尺寸调整。例如,如果尺寸调整操作是缩小操作,可以移除与最低成本缝隙相关联的像素。在这个示例中,缝隙拼接操作将从每行移除一个像素(因为缝隙是单调的),缝隙右边的所有像素向左移动一个像素,以获得比输入图像窄一个像素的图像。通过反复应用这种技术,将图像减小以达到目标尺寸和/或长宽比。类似地,如果尺寸调整操作是扩大操作,可以复制与最低成本缝隙相关联的像素,将每个像素的拷贝插入到缝隙右边的图像中。在这个示例中,缝隙拼接操作将在每行增加一个像素,缝隙右边的所有像素向右移动一个像素,以获得比输入图像宽一个像素的图像。通过迭代地应用这种技术,将图像扩大以达到目标尺寸和/或长宽比。注意,在其他实施方式中,不是在扩大操作期间反复计算最低成本的缝隙并进行复制(例如,一次一条缝隙),而是预先计算所有缝隙的成本,然后复制一条或多条最低成本的缝隙直到达到尺寸调整目标。在一些实施方式中,每次迭代之后(例如,在单个缝隙被移除或复制之后),图像像素的能量值和/或最低成本缝隙可能会被重新计算。在其他实施方式中,只在图像经尺寸调整到其目标尺寸和/或长宽比之后才重新计算能量值,或者可能根本不重新计算。
通过图1A和图1B中的示例可以进一步说明缝隙拼接技术。图1A示出了将要进行尺寸调整的输入图像100。在图1A中的这个示例中,要将其尺寸调整到具有比输入图像100更短(即,垂直维度上更小)更宽(即,水平维度上更长)的长宽比的目标尺寸。在这个示例中,缝隙拼接技术可以应用两次,每个维度一次。
为了扩大输入图像100的宽度,标识一条或多条从顶部到底部的低成本(或最低成本)像素缝隙,例如垂直缝隙101。接着,通过复制已标识为垂直缝隙的每个像素(例如,通过拷贝缝隙的每个像素并将其插入到图像中的缝隙右边)来扩大输入图像100。在一些实施方式中,这可能会产生作为中间结果的经尺寸调整的图像。为了减少输入图像的高度,标识一条或多条低成本(或最低成本)水平缝隙,例如水平缝隙102。接着,通过移除已标识为水平缝隙的像素来缩小经尺寸调整的输入图像100。图1B示出了由这两个尺寸调整操作产生的输出图像110。注意,在其他实施方式中,可以在扩大操作之前执行缩小操作,可以并行地执行缩小及扩大操作,或者在复制缝隙(例如,每次一条)和移除缝隙(例如,每次一条)中交替进行尺寸调整操作,直到输出图像达到目标尺寸和/或长宽比为止。
图2中的流程图示出了一种缝隙拼接的方法。在这个示例中,在步骤200,访问表示将进行尺寸调整的图像的数据。这种数据可以响应被输入到配置为图像编辑的应用中而被访问,或者作为先前输入的结果或在所需的尺寸调整操作之前由应用创建或修改的结果,驻留在可由这样的应用访问的存储器中。注意,如这里所使用的,根据各个实施方式,术语“图像编辑应用”可以指特定地专用于图像编辑的图形应用,或包括图像编辑组件的任意应用。在不同实施方式中,被访问的数据可以表示整个图像或要标识图像的一部分。例如,在一个实施方式中,用户可以使用图像编辑应用的选择工具或裁剪工具选择要在其上执行尺寸调整操作的图像一部分。在各个实施方式中,用户也可以使用各种用户界面元素(例如,下拉菜单,单选按钮或字符输入域),来选择尺寸调整操作的目标尺寸,扩大/缩小目标(例如,在一个或多个维度中增加或缩小的百分比)和/或目标长宽比。
在这个示例中,在步骤210,确定图像的每个像素的相应能量值。可以如上所述确定能量值(例如,使用导出函数或另外的参数函数),或通过各种其它方法中的任意方法,包括下面将要详细描述的方法来确定。在步骤220,取决于这些能量值,可以确定图像的各个缝隙的相对成本。例如,在一些实施方式中,可以针对图像的所有可能缝隙计算成本,或可以针对图像的每个边缘像素的最低可能缝隙计算成本,而在其他实施方式中,对表示图像的数据进行处理,以便仅标识缝隙的一部分(例如,这些缝隙中从最低成本缝隙直到给定数量或给定百分比的缝隙),并计算它们的成本。注意,在不同的实施方式中可以以各种方法确定每个缝隙的值成本,例如通过计算组成该缝隙的像素的能量值的和、平均值、或加权平均值。在另一个示例中,每个缝隙的成本取决于缝隙像素的最大能量值。换句话说,甚至仅由于缝隙中一个高能量像素的出现,缝隙被赋予较高成本,因为移除那个像素可能会生成不希望的视觉伪像。
在图2所示的示例中,该方法可以包括沿着已确定具有最低成本的一条或多条缝隙对图像进行尺寸调整的步骤230。如上所述,如果要缩小图像,可以移除已标识为低成本缝隙(例如,最低成本缝隙)的像素,而如果要扩大图像,可以复制已标识为低成本缝隙(例如,最低成本缝隙)的像素并将其插入到邻接已标识缝隙处。下面详细描述可以作为尺寸调整操作一部分的附加或可选的动作。
如果230中执行的尺寸调整操作没有得到达到其尺寸调整目标(例如,尺寸,增加/减少百分比,和/或长宽比的目标)的尺寸调整的图像,如240的否定分支所示,对图像执行附加的尺寸调整操作(例如,在每个后续的下一最低成本缝隙上)。这被显示为从240到230的回路。如果230中执行的尺寸调整操作得到了达到其尺寸调整目标的尺寸调整的图像,如240的肯定分支所示,方法可以在步骤250输出表示经尺寸调整的图像的数据。例如,可以将数据提供给应用的显示组件以向用户显示经尺寸调整的图像和/或,由图像编辑应用将该数据作为中间图像进行存储以便由该应用(或另一个应用)进一步处理或作为最终的图像进行存储(例如,写入到主存储器,文件,档案等等)。注意,图2中所示的方法在各个实施方式中可以用于缩小图像,扩大图像,或缩小以及扩大操作的组合,以便将图像尺寸调整到它的目标尺寸和/或长宽比(如图1A-1B)。
在一些实施方式中,可以使用查找表而不是参数函数来确定图像数据到能量值的任意映射。然后这些能量值可以用于确定要移除(用于缝隙拼接)或复制(用于图像扩大)的缝隙。在一些实施方式中,可以使用查找表在能量值上应用上限(cap)。查找表也可以提供重新配置缝隙拼接阈值的机制,下面将对此进行详细描述。
如上所述,现有的缝隙拼接算法可以确定每个像素的能量值为每个像素的绝对梯度的和。换句话说,每个像素的能量值作为其临近像素的导数(即,作为与其邻接的像素的局部能量函数)来进行计算。这个能量函数可以定义像素和其临近像素的强度值的差值与像素重要性(或能量)之间的线性关系。例如,对于给定像素,如果其左边和右边像素的强度值之间的差值为17,那么给定像素的能量就被映射为值17。
在一些实施方式中,对每个像素能量的确定可以使用查找表概括得出。在上面的示例中,令g=abs(dx)+abs(dy)表示给定像素的梯度幅值。使用参数能量函数,能量可被设为E=g。但是,在包括查找表的实施方式中,能量代之以被设为E=T(g),其中T为查找表。使用查找表,在一些实施方式中,每个强度差值(即梯度)可被映射到不具有线性关系的能量值。这可能比较适合图像编辑应用,因为人类视觉系统具有不同的敏感度。例如,如果像素周围的强度梯度在0到255之间,梯度是150对175对人类观察者可能无关紧要(即,可能不会被注意到)。但是,人类观察者可能对梯度是否为20对30很敏感。因此,如果存在弱边缘,其将被捕获(即,就尺寸调整操作而言被标识以及映射为具有高优先级)。如果是强边缘,其有多强(例如,100,200,或255)可能并不要紧。因此,在一些实施方式中,查找表可以用于从能量中分离梯度(和/或实际强度值)。
在一个实例中,查找表可以用于定义映射,其中对于一些像素值(或者,在这个示例中的梯度幅值)来说E=g,但是可以限制能量值不高于特定的最大值。这样的查找表的一个示例可以如下定义:
T(0)=0,...T(50)=50,T(51)=50,...,T(255)=50
在这个示例中,该查找表可能不关心一个强边缘相对于另一个强边缘(例如,具有超过50的梯度幅值的像素的边缘),因为对于所有50或更高的梯度幅值,能量值都被限制为50了。这样的限制可以适合于确定图像尺寸调整的缝隙优先级,因为,虽然人类视觉系统对边缘是敏感的,但是一旦边缘“足够强”,它究竟有多强也就不再重要。如上所述的能量值限制,在一些实施方式中可以用于保护所有这样“足够强”的边缘不会被缝隙拼接操作所影响。
图3中的流程图示出了使用表将能量值映射到像素的方法的一个实施方式。在这个示例中,如同图2所示的方法,该方法可以包括访问表示将进行尺寸调整的图像的数据,如步骤300所示。在这个示例中,该方法包括访问查找表以便确定像素值与能量值之间的映射关系,如步骤310所示。如这里所述,在一些实施方式中,这样的查找表的输入(或索引)可以是图像本身的像素的值。在其他实施方式中,表的输入/索引可以是导出值,这取决于那些像素值。例如,输入/索引值可以表示一组邻近像素的像素值的平均值,最大值或最小值,或者可以表示邻近像素的像素值的和或差。在此外的其他实施方式中,表中的每个条目可以对应像素值的范围或者基于像素值的导出值的范围。例如,具有低于指定最小值(例如,少于5)的像素值的所有像素,或者具有在范围6-10,11-15,16-20中的像素值的所有像素,等等,可以被映射到相同的能量值。在此外的其它实施方式中,查找表可以用于定义像素值(或导出值)和能量值之间的任意映射函数,并可以包括像素值(或导出值)的上限或阈值,在其之上,可以映射最大值或其他默认能量值。在一些实施方式中,查找表可以用于定义映射,其将曲线函数应用到这里映射的能量值。在各个实施方式中,这样的函数可由用户直接配置,或可通过图像编辑应用的用户界面(例如,滤波工具,曲线调整工具,或阈值调整工具)来配置。
在图3中所示的示例中,该方法的流程基本上与图2中所示的方法流程相同。其可以包括根据已确定的能量值来确定图像的一条或多条缝隙的相对成本(步骤320),沿着被确定为最低成本的一条或多条缝隙执行图像尺寸调整(步骤330),以及,如果未达到图像的尺寸调整目标,执行附加的尺寸调整操作(例如,在每个后续的下一最低成本缝隙上)(步骤340,并回退到步骤330)。一旦图像已经被尺寸调整到目标尺寸,如步骤340的肯定分支所示,在步骤350输出表示经尺寸调整的图像的数据。如上所述,向用户显示经尺寸调整的图像,和/或存储输出数据用于进一步处理或其他目的。注意,如图2所示的示例,图3所示的方法可以在各个实施方式中应用于图像的缩小,图像的扩大,或缩小以及扩大操作的组合,以便将图像尺寸调整到其目标尺寸,和/或长宽比(如在图1A-1B中所示)。
在上面的示例中,查找表被用于设定与图像相关联的能量值的上限。例如,如果强度梯度幅值高于给定的阈值,其被映射为上限能量值。在其他实施方式中,相反地,图形应用可被配置为淡化弱边缘而强调强边缘,或使用任何其他的任意强调策略。在这样的实施方式中,使用可配置的查找表,且该查找表可被修改用于不同的应用和/或在应用中用于支持不同的效果(例如,由用户选择或定义)。例如,使用三次多项式或二次多项式而不是线性关系来参数化地确定梯度(或能量值),但是这样可能会限制在值中采用非线性,上限,和/或突变不连续性(sharp discontinuities)的能力。但是,在一些实施方式中,使用查找表可以采用这些非线性,上限,或不连续性。在另一个示例中,可以采用熵度量来确定能量值。例如,对于围绕像素的7×7窗口,可以计算窗口中强度值的熵来确定该像素的重要性。此外,这在一些实施方式中可以使用查找表来实现,其允许采用非线性,上限,和/或不连续性。
上面所述的缝隙拼接方法可以不依赖于像素的绝对值(例如,强度或颜色),而仅依赖关于其邻近像素的相对成本。例如,这样的缝隙拼接技术可能不能辨别穿过整块红色区域或整块黑色区域的缝隙。但是,在其他实施方式中,缝隙拼接技术可以依赖于颜色。在一些这样的实施方式中,使用像素数据的绝对值(例如,颜色值和/或强度值)而不是相对成本(例如,强度梯度幅值)来确定每个像素的能量值。例如,给定的颜色或颜色范围会被分配较高的能量值。在一些实施方式中,可以使用这种方法在缝隙拼接期间保护具有特定颜色或颜色范围的像素,和/或标识用于图像扩大的要复制的像素。在各个实施方式中,这种技术可以连同自动肤色检测器一起使用,或连同允许选择一个或多个高优先级的颜色或颜色范围的用户接口一起使用。
在一个示例中,可以对图4A所示的输入图像执行尺寸调整操作(例如,缩小操作),该图绘出了孩子和雪人。传统的缝隙拼接(例如使用梯度函数)可以移除一条或多条具有低成本(根据应用于那些缝隙的像素的梯度函数)的水平缝隙,得到如图4B中所示的图像。在这个示例中,传统的缝隙拼接会产生具有不希望结果的经尺寸调整的图像,尽管该操作可能已经移除了被确定为“不太重要”的像素(例如,由于附近类似像素的出现)。在其他实施方式中,缝隙拼接的替代方法可以将对应于特定颜色或颜色区域(例如,肤色)的像素值看得比其他像素值更加重要,而不是将所有像素值看作同等重要。换句话说,即使给定缝隙像素的强度(或梯度)低于其他缝隙像素的强度,也不希望移除该缝隙。相反,对这些像素的能量值(即,重要性)进行加权,以便它们高于其仅基于梯度的值(例如,基于邻近的其他像素的值)。这样的方法可以产生图4C中所示的经尺寸调整的图像。在这个示例中,通过赋予其比图像中所绘出的其他元素更重的权重,组成孩子的脸的像素被保护起来以免被移除。
在这个示例中,可以将对应于肤色颜色的像素值进行加权,以使低成本缝隙通过包括这些肤色的区域的可能性相对较小。在一个实施方式中,增加像素的权重可以如下实现:令D(p)表示从一些规范肤色(例如,在一些颜色空间中,例如RGB或Lab)到像素颜色的距离。在这个示例中,如下所示创建权重表征码(mask):W(p)=exp(-D(p)/v),其中W(p)是像素p的权重,v是控制高斯宽度的西格马值。在这个示例中,像素值越接近肤色颜色,则赋予其越高的权重值。
图5中的流程图示出了方法的一个实施方式,该方法用于当映射能量值到像素时,对特定像素值或像素值的范围进行加权。在这个示例中,如同在图2中所示的方法,该方法包括访问表示将进行尺寸调整的图像的数据,如步骤500所示。在这个示例中,该方法包括将加权函数应用于表示一个或多个用户指定的或预定义的颜色或颜色范围(例如,肤色或其他要“保护”的颜色)的像素值,如步骤510所示。注意,在一些实例中,如果图像编辑应用的相应特征是可用的或者已由用户选择,那么对肤色的保护可以是自动的。在其他实施方式中,通过经由图像编辑应用的用户界面(例如,使用选择工具,下拉菜单,单选按钮,或字符输入域)标识颜色,用户可以从基于缝隙的尺寸调整操作中选择一种或多种要保护的颜色或颜色范围。然后,依赖于应用于所选颜色的权重,可以确定(例如,使用映射函数,查找表,或其他机制)图像像素的能量值,如在步骤520所示。如前面示例中所述,在一些实施方式中,可以基于这些加权像素颜色的导出值(例如,像素以及其邻近像素的加权值的平均值,最大值,和或差)来确定能量值。
在图5所示的示例中,该方法流程基本上与图2中所示的方法流程相同。其可以包括基于已确定的能量值确定图像的一条或多条缝隙的相对成本(步骤530),沿着被确定为具有最低成本的一条或多条缝隙执行对图像的尺寸调整(步骤540),以及如果未达到图像的尺寸调整目标(如在步骤550中并回退到540所示)就执行附加的尺寸调整操作(例如,在每个后续的下一最低成本缝隙上)。一旦图像已经被尺寸调整到目标尺寸,如550中的肯定分支所示,可以输出表示经尺寸调整的图像的数据,如步骤560所示。如上所述,可以向用户显示经尺寸调整的图像,和/或存储该输出数据用于进一步处理或其他目的。注意,如图2所示的示例,图5所示的方法在各个实施方式中可以用于图像的缩小,图像的扩大,或缩小和扩大操作的组合,以便将图像尺寸调整到其目标尺寸和/或长宽比(如图1A-1B)。
虽然上面的几个示例涉及保护肤色,通过向能量函数添加偏差(bias),以便向落入给定颜色的给定增量中的颜色赋予较高能量,该方法可以更一般地适用于保护任何给定的颜色或颜色范围/族。例如,用户可以选择强调输入图像中的蓝色或绿色而不是肤色。在各个实施方式中,可以创建表征码来偏置能量函数,或者可以使用应用中的工具选择图像中的一部分(例如,对象或颜色),以便标识要保护的颜色的像素。例如,在各个实施方式中,可以使用快速选择工具或颜色选择工具来指定一种或多种要保护的颜色,或者图像编辑应用可以包括明确的“颜色范围”指令。
可选的内容感知缝隙拼接技术可以使用不同像素值的频率来确定图像尺寸调整的优先级。例如,在一些实施方式中,使用像素数据绝对值(例如,颜色和/或强度值)的直方图,而不是相对成本(例如,强度梯度),来确定每个像素的能量值。例如,具有图像中少见的颜色或落入图像中少见的颜色范围的像素被赋予比具有图像中广泛使用的颜色的像素更高的能量值。换句话说,像素的相应能量值可以与他们像素值的频率反方向变化。在一些实施方式中,这种技术可以用于在缝隙移除期间保护具有较少使用的颜色的像素,和/或在图像扩大期间标识要移除或复制的广泛使用的像素。例如,如果图像包括具有同样总能量值的两条候选缝隙,其中一条穿过红色区域而另一条穿过蓝色区域,标准的缝隙拼接技术可能无法挑选出一条。但是,在一个实施方式中,可以创建表示图像的数据的直方图,并使用该直方图确定仅存在很少的红色像素。在这个示例中,保留红色像素(它是稀少的)而选择穿过蓝色区域的缝隙作为尺寸调整操作的目标可能是较为可取的。
在各个实施方式中,这样的直方图可以表示为格子(bucket)的阵列,格子的值取决于图像中给定区域的像素值。例如,每个格子的值可以对应于具有给定值或值的范围的源种群(source population)(即,像素的区域)中的像素的计数数量。在一些这样的实施方式中,在格子索引和被计数的像素值之间可以存在线性映射。例如,就8比特的图像而言,从0到255的像素值可以映射到具有从0到255的对应值的格子索引。在一些实施方式中,使用分散操作(scatteroperation)生成直方图(即,根据感兴趣区域中像素的像素值来“装满”直方图的格子)。例如,对于从(i0,j0)到(in,jm)的矩形源区域,可以使用下面的伪代码示例来定义分散操作S(i0,in,j0,jm):
For i from i0to in
{
For each j from j0 to jm
{
H[I(i,j)]+=1
}
}
换句话说,对于区域中的每个像素,分散操作会递增对应于那个像素值的格子的值。图6A示出了包括7行601、每行十个像素的源图像600,其其包括了感兴趣区域610,该区域610在列602a-602c和行601e-601g中包括了像素E1,F1,G1,E2,F2,G2,E3,F3,G3。在一些实施方式中,这个感兴趣区域可以是将进行尺寸调整的图像的区域,在这个示例中可以用于进一步解释在基于缝隙的尺寸调整操作中直方图的使用。在这个示例中,如图6B所示,这些像素的值(例如,表示输入图像600中那些像素的颜色和/或强度的值)在图像区域610中被示出。在这个示例中,像素G1的值是4,像素F1的值是2,像素E1的值是3,等等。
在这个示例中,在一些实施方式中图像600的直方图可以包括对应于8比特的颜色值范围从0-255的256个格子,其中每个格子可以由对应的索引值来索引。每个格子的值可以对应于具有与索引值相同值的像素的计数数量。注意,在其他实施方式中,列和/或区域直方图可以具有对应于权重之和或像素加权计数的值,或以其他方式依赖于像素值。在这个示例中,具有索引0的格子可以用于对区域中具有颜色值0的像素数量进行计数,具有索引1的格子可以用于对区域中具有颜色值1的像素数量进行计数,等等。在这个示例中,图像区域610的直方图可以包括具有值为1的格子2(因为只有一个像素值为2),具有值为2的格子3(因为两个像素值为2),具有值为1的格子4,具有值为1的格子6,具有值为3的格子7,具有值为1的格子8,所有其他具有0-255(除了这些已列出来的)之间索引的格子的值为0(因为区域中没有像素具有那些值)。在这个示例中,直方图阵列的值如下表所示:
格子0 | 0 |
格子1 | 0 |
格子2 | 1 |
格子3 | 2 |
格子4 | 1 |
格子5 | 0 |
格子6 | 1 |
格子7 | 3 |
格子8 | 1 |
格子9 | 0 |
... | 0 |
格子254 | 0 |
格子0 | 0 |
格子255 | 0 |
表1示例性直方图阵列
在另一个实施方式中,直方图可以表示图像的像素值的标准化频率。例如,在一个实施方式中,如果H表示图像的标准化直方图,而C(p)表示像素p的颜色值,那么H(C(p))可以表示图像中具有颜色值C(p)的像素的百分比。那么,该像素的权重可以被设定为W(p)=1/(H(C(p))+c),其中c是避免被0除的预定义的常数。在这个示例中,图像中包括特定颜色的像素越少,每个这样的像素就变得越重要。例如,如果图像只有非常少的几个白色像素,那么即使存在成群的白色像素,特定白色像素的能量函数也会非常低(基于直方图),即使它被其他白色像素包围。以这种方式,包含白色像素的区域被保护起来。
图7中的流程图示出了方法的一个实施方式,该方法用于当映射能量值到像素时,将很少使用的像素值或像素值的范围加权。在这个示例中,如同在图2中所示的方法,该方法可以包括访问表示将进行尺寸调整的图像的数据,如步骤700所示。在这个示例中,该方法包括确定表示两种或更多种颜色或颜色范围的像素值的频率,如步骤710所示。例如,该方法可以包括生成直方图,该直方图指示图像中具有给定像素值的像素的数量,如上所述,或指示具有在给定范围中的像素值的像素数量(例如,一个格子用于像素值0-15,另一个用于像素值16-31,等等,或一个格子用于表示各种红色色调的像素值,另一个用于表示各种蓝色色调的像素值,等等)。在一些实施方式中,分配给每个格子的像素值或像素值的范围可以由用户配置(例如,通过图像编辑应用的用户界面),如同格子值分配的间隔粒度和/或在其中聚集值的格子的数量也可以由用户配置一样。然后,可以依赖于图像中像素值的频率确定图像像素的能量值,如步骤720所示。注意,在一些实施方式中,这种频率加权技术可以连同其他加权技术一起使用。例如,在一个实施方式中,这种技术可以与肤色保护技术一同使用,如上面所描述的,以保护肤色(无论他们是否较少使用)和图像中一种或多种较少使用的颜色或颜色范围。
在图7所示的示例中,该方法流程基本上与图2中所示的方法流程相同。其可以包括依赖于已确定的能量值来确定图像的一条或多条缝隙的相对成本(步骤730),沿着一条或多条被确定为具有最低成本的缝隙对图像进行尺寸调整(步骤740),如果未达到图像的尺寸调整目标(如在步骤750中,并回退到740所示)则执行附加的尺寸调整操作(例如,在每个后续的下一最低成本缝隙上)。一旦图像已经被尺寸调整到目标尺寸,如750中的肯定分支所示,可以输出表示经尺寸调整的图像的数据,如步骤760所示。如上所述,可以向用户显示经尺寸调整的图像,和/或存储该输出数据用于进一步处理或其他目的。注意,如图2所示的示例,图7所示的方法在各个实施方式中可以用于图像的缩小,图像的扩大,或缩小和扩大操作的组合,以便将图像尺寸调整到其目标尺寸和/或长宽比(如图1A-图1B)。
如上所述,缝隙拼接(例如,对图像进行基于缝隙的缩小或扩大)是离散操作。换句话说,任何给定的像素都可以以要么全有要么全无的(all-or-nothing)操作方式从图像中移除,复制,或保持。但是,在其他实施方式中,这样的基于缝隙的技术可以与缩放技术组合起来,成为混合尺寸调整操作。混合尺寸调整技术可以使用缝隙拼接和标准图像缩放技术的组合来缩小或扩大图像。在一个实施方式中,如这里所述,缝隙拼接技术可以用于移除或添加一条或多条低成本缝隙。如果通过移除或添加这些缝隙没有达到输入图像的目标尺寸和/或长宽比,那么该混合技术可以使用缩放技术进一步缩小或扩大图像以达到新的目标尺寸和/或长宽比。
图8示出了根据一个实施方式,用于图像尺寸调整的混合方法。在这个示例中,如同在前面几个示例中,该方法可以包括访问表示将进行尺寸调整的图像的数据,如步骤800所示。在这个示例中,该方法包括确定图像中像素值的能量值,如步骤810所示。在各个实施方式中,可以使用这里所述的任意方法或不同的方法来确定这些能量值。该方法包括依赖于已确定的能量值,确定图像的一条或多条缝隙的相对成本(步骤820),同样,使用任何合适的方法确定缝隙值,包括这里所述的那些方法。
在图8中所示的示例中,如这里所述,该方法包括使用基于缝隙的缩小和/或扩大操作来执行所希望的图像尺寸调整的至少一部分。例如,在不同的实施方式中(例如,以最低成本缝隙开始,接着以一条或多条下一最低成本缝隙继续),可以从图像中移除一条或多条低成本缝隙的像素,和/或,可以在图像中复制一条或多条低成本缝隙的像素。如果使用这些基于缝隙的技术未达到图像的尺寸调整目标,如840的否定分支所示,该方法可以包括使用一种或多种缩放技术执行附加尺寸调整,如步骤850所示。在一些实施方式中,在图像上应用缩放技术之后,已缩放的图像可以被重新采样以重新排列图像的像素为规则网格,如步骤860所示。在其他实施方式中,在缩放操作之后可以不对图像进行重新采样,或者仅在达到尺寸调整目标之后才重新采样图像,例如,在对图像应用两次或更多次缩放操作之后(未示出)。下面将详细描述这样的重新采样。
在这个示例中,如果步骤850中应用的缩放不足以达到尺寸调整操作的目标尺寸和/或长宽比,那么对图像应用附加的缩放操作。这在从860到840的反馈循环中示出。一旦图像被尺寸调整到目标尺寸(如840的肯定分支所示),就可以输出表示经尺寸调整的图像的数据,如步骤870所示。如上所述,可以向用户显示经尺寸调整的图像,和/或存储该输出数据用于进一步处理或其他目的。注意,如图2所示的示例,图8所示的方法在各个实施方式中可以用于图像的缩小,图像的扩大,或缩小和扩大操作的组合,以便将图像尺寸调整到其目标尺寸和/或长宽比(如图1A-1B)。
在一个示例中,如果图像的宽度要缩小50个像素,每次从图像中移除缝隙,可以确定沿着该缝隙的平均能量。在这个示例中,用户能够指定移除缝隙的阈值(例如,通过图像编辑应用的用户界面)。如果候选缝隙的值(即,总的能量)超过阈值,移除该缝隙可能会导致图像中的视觉伪像。在这种情况下,混合技术可以切换到缩放技术(例如,标准图像缩放技术或定制的缩放技术)以结束尺寸调整操作。在一些实施方式中,该方法可配置为(自动地)发现要移除(或复制,在扩大操作中)的目标缝隙何时高于阈值,并自动地切换到缩放技术。在上面的示例中,使用缝隙拼接技术只能移除20个像素,余下的30个像素的图像缩小可以通过重新缩放图像以适合更小尺寸的占用区(footprint)来实现。
图9示出了根据一个实施方式,用于图像尺寸调整的混合方法。在这个示例中,如同前面的几个示例,该方法可以包括访问表示将进行尺寸调整的图像图像的数据,如步骤900所示。在这个示例中,该方法包括确定图像中像素值的能量值,如步骤910所示。在各个实施方式中,可以使用这里所述的任意方法或不同的方法来确定这些能量值。该方法可以包括依赖于已确定的能量值,确定图像的一条或多条缝隙的相对成本(步骤920),同样,使用任何合适的方法确定缝隙值,包括这里所述的那些方法。
在图9所示的示例中,如这里所述,该方法包括使用基于缝隙的缩小和/或扩大操作,来执行所希望图像尺寸调整的至少一部分。例如,在不同的实施方式中(例如,以最低成本缝隙开始,接着以一条或多条下一最低成本缝隙继续),可以从图像中移除一条或多条低成本缝隙的像素,和/或,可以在图像中复制一条或多条低成本缝隙的像素。如果使用这些基于缝隙的技术未达到图像的尺寸调整目标,如940的否定分支所示,并且如果未达到比其更高时缝隙就不会被移除或复制的预定义的阈值,如950的肯定分支所示,则对图像执行附加的基于缝隙的操作。这在从950到930的反馈循环中示出。例如,在一个实施方式中,该方法可以只移除和/或复制非常低成本的缝隙,即,那些具有上至预定义阈值的值的缝隙。具有高于该阈值的值的缝隙不会被移除或复制。如果通过移除和/或复制一条或多条最低成本缝隙达到了尺寸调整目标,如940的肯定分支所示,那么就结束了尺寸调整操作,并可以输出表示经尺寸调整的图像的数据,如步骤980所示。
在这个示例中,在所有具有低于阈值的值的缝隙都被移除(用于缩小操作)或复制(用于扩大操作)之后,如果未达到尺寸调整目标,该方法可以包括使用一种或多种缩放技术执行附加的尺寸调整。如框图950的否定分支以及框图960所示。如上所述,可以应用多种缩放技术中的任何一种来进一步缩小或扩大图像。在一些实施方式中,对图像应用缩放技术之后,已缩放的图像可以被重新采样以重新排列图像的像素为规则网格,如步骤970所示。在其他实施方式中,在缩放操作之后可以不对图像进行重新采样,或者仅在达到尺寸调整目标之后才重新采样,例如,对图像应用两次或更多次缩放操作之后(未示出)。下面将详细描述这样的重新采样。
在这个示例中,如果步骤960中应用的缩放不足以达到尺寸调整操作的目标尺寸和/或长宽比,那么对图像使用附加的缩放操作。这在从970到940的反馈循环中示出。一旦图像被尺寸调整到目标尺寸,如940的肯定分支所示,可以输出表示经尺寸调整的图像的数据,如步骤980所示。如上所述,可以向用户显示经尺寸调整的图像,和/或存储该输出数据用于进一步处理或其他目的。注意,如图2所示的示例,图9所示的方法在各个实施方式中可以用于图像的缩小,图像的扩大,或缩小和扩大操作的组合,以便将图像尺寸调整到其目标尺寸和/或长宽比(如图1A-1B)。
混合尺寸调整技术的另一个实施方式还可以使用缝隙拼接和标准图像缩放技术的组合来缩小或扩大图像。但是,在这个实施方式中,可以使用缝隙拼接技术根据缝隙拼接的可配置的容差来移除或添加缝隙。例如,如果容差被设定为60%,该方法可以使用缝隙拼接技术标识低能量缝隙,并移除或复制它们以达到所希望缩放的60%。然后,混合方法可以应用缩放技术(例如,标准图像缩放技术或定制缩放技术)进一步缩小或扩大图像以达到目标尺寸和/或长宽比。
图10示出了根据一个实施方式,用于图像尺寸调整的混合方法。在这个示例中,如同前面的示例,该方法可以包括访问表示将进行尺寸调整的图像的数据,如步骤1000所示。在这个示例中,该方法包括确定图像中像素值的能量值,如步骤1010所示。在各个实施方式中,可以使用这里所述的任意方法或不同的方法来确定这些能量值。该方法可以包括依赖于已确定的能量值,确定图像的一条或多条缝隙的相对成本(步骤1020),同样,使用任何合适的方法确定缝隙值,包括这里所述的那些方法。
在图10所示的示例中,如这里所述,该方法包括使用基于缝隙的缩小和/或扩大操作,来执行所希望图像尺寸调整的一部分。例如,在不同的实施方式中,可以从图像中移除一条或多条低成本缝隙(例如,最低成本缝隙)的像素,和/或可以复制一条或多条低成本缝隙的像素到图像中。
如果没有达到基于缝隙的图像尺寸调整的预定义容差水平,如1040的否定分支所示,那么可以对图像执行附加的基于缝隙的操作(例如,继续沿着一条或多条下一最低成本缝隙执行操作)。这在从1040到1030的反馈循环中示出。例如,在一个实施方式中,该方法可以只移除和/或复制预定义数量或百分比的最低成本缝隙,或可以只移除或复制达到尺寸调整目标特定百分比所需数量的低成本缝隙。例如,用户能够以总的尺寸调整操作的百分比来指定基于缝隙的尺寸调整的容差水平,例如,指定水平和/或垂直尺寸调整的60%为缝隙移除或复制的结果,且剩下的尺寸调整必须使用其他方法例如缩放来实现。在另一个实施方式中,用户能够以图像中水平和/或垂直缝隙的数量百分比来指定缝隙拼接容差(例如,指定在给定的尺寸调整操作中,不超过20%的垂直缝隙将会被移除)。在另外的又一个实施方式中,用户能够以在给定尺寸调整操作中可被移除或复制的缝隙的最大数量来指定缝隙拼接容差(例如,不超过25条缝隙)。
在这个示例中,一旦达到基于缝隙拼接的尺寸调整的容差水平,如1040的肯定分支所示,该方法包括使用一种或多种缩放技术执行附加的尺寸调整。这在图10的1050中示出。如上所述,可以应用多种缩放技术中的任意一种来进一步缩小或扩大图像。在一些实施方式中,对图像应用缩放技术之后,已缩放的图像可以被重新采样以重新排列图像的像素为规则网格,如所示的那样。在其他实施方式中,在缩放操作之后可以不对图像进行重新采样,或者仅在达到尺寸调整目标之后才重新采样,例如,对图像应用两次或更多次缩放操作之后(未示出)。下面将详细描述这样的重新采样。
在这个示例中,如果步骤1050中应用的缩放不足以达到尺寸调整操作的目标尺寸和/或长宽比,那么对图像使用附加的缩放操作。这在从1060到1050的反馈循环中示出。一旦图像被尺寸调整到目标尺寸,如1060的肯定分支所示,就可以输出表示经尺寸调整的图像的数据,如步骤1070所示。如上所述,可以向用户显示经尺寸调整的图像,和/或存储该输出数据用于进一步处理或其他目的。注意,如图2所示的示例,图10所示的方法在各个实施方式中可以用于图像的缩小,图像的扩大,或缩小和扩大操作的组合,以便将图像尺寸调整到其目标尺寸和/或长宽比(如图1A-1B)。
如上面特别提到的,在一些实施方式中,用户可以通过图像编辑应用的用户界面来指定缝隙拼接容差水平。例如,在一个实施方式中,用户界面可以包括容差滑动条,其可以用来指定从0-100的值(%)。在这个示例中,值100表示缝隙拼接的高容差,通过如此指定,可以单独使用缝隙拼接来实现尺寸调整操作;0表示缝隙拼接的不足容差,通过如此指定,不会指定任何缝隙拼接操作作为尺寸调整操作的一部分。二者之间的任意值指示将使用上述的混合方法。例如,如果图像要缩小50个像素,而容差滑动条设置为50%,那么混合方法会使用缝隙拼接移除25个像素,并使用缩放技术将图像缩小另25个像素。在一些实施方式中,用户可以在调整滑动条的值的同时看到尺寸调整操作的效果,以便确定尺寸调整结果在视觉上可以接受的水平。在其他实施方式中,可以通过不同类型的用户界面元件(例如,下拉菜单,单选按钮,或字符输入域)来指定缝隙拼接容差。
如上所述,当前的缝隙拼接技术使用赢者通吃(或输者全失)方法。例如,可以移除最先的50条缝隙(50条最低能量的缝隙),但并不能跨越图像分享这种处理。在使用缝隙拼接和标准图像缩放技术的组合来缩小或扩大图像的可选实施方式中,可以计算图像中的所有缝隙,并基于每条缝隙的能量应用非线性的缩放。换句话说,缝隙拼接技术可用于标识要缩放(向上或向下)的低能量缝隙。然后,依赖于(例如)每条已标识缝隙的平均或总能量值,对每条已标识缝隙应用可变缩放系数。例如,在一个实施方式中,以两倍于下一最低能量缝隙的缩放量,来对最低能量缝隙进行向上或向下缩放,以及诸如此类。在一些实施方式中,如上所述,这种技术可以与查找表一同使用,以便确定应用于具有给定能量值或具有落入给定能量值范围中的能量值的缝隙的缩放量。在其他实施方式中,可以使用指数式衰减(exponential decay)或不同的函数来确定应用于每条已标识缝隙上的缩放系数。
在一个示例中,如果第一条缝隙(即,最低成本的缝隙)的能量是1,而第100条缝隙的能量是75,可以依照权重成比例地重新缩放这些缝隙,以使总缩小量为50个像素。这种混合尺寸调整操作组合了基于缝隙的技术和在每条缝隙的基础上进行缩放的技术。例如,如果图像的宽度要缩小10个像素,可以使用缝隙缩放确定n条最低成本缝隙,并且该方法可以确定缩放每条已标识缝隙到何种程度才会达到图像宽度缩小10个像素的整体效果。在这样的实施方式中,缩放缝隙的数量n,可以是用户定义的参数(例如,可以通过图像编辑应用的用户界面来指定),且n可以大于或等于要从图像中移除的像素/缝隙的数量(或在扩大操作中要添加到图像中的像素/缝隙的数量)。例如,如果Z(i)表示缝隙i的能量,给定缝隙Z_1,...Z_n,以及k(图像要被尺寸调整的像素数量),那么每条缝隙的宽度如下缩放:scale(i)=(k*Z_i)/sum(Z_i)
图11示出了根据一个实施方式,一种这样的用于图像尺寸调整的混合方法。在这个示例中,如同前面的示例,该方法包括访问表示将进行尺寸调整的图像的数据,如步骤1100所示。在这个示例中,该方法包括确定图像中像素值的能量值,如步骤1110所示。在各个实施方式中,可以使用这里所述的任意方法或不同的方法来确定这些能量值。该方法还可以包括依赖于已确定的能量值,确定图像的一条或多条缝隙的相对成本(步骤1120),同样,使用任何合适的方法确定缝隙值,包括这里所述的那些方法。
在图11所示的示例中,该方法包括以预定义的缩放量缩放已标识为具有最低成本的缝隙的像素,如步骤1130所示。例如,在一个实施方式中,以预定义的最大百分比(例如,缩小操作的50%或100%,扩大操作的75%,100%或150%)对最低成本的缝隙进行向上或向下缩放。注意,在这个示例中,指定100%的缩小等价于移除缝隙,而指定100%的扩大等价于复制缝隙(例如,为每个像素复制一个拷贝)。
如果通过缩放最低成本的缝隙,还达不到尺寸调整操作的目标尺寸和/或长宽比,如1140的否定分支所示,该方法可以包括对下一最低成本缝隙执行附加的缩放操作,如步骤1150所示。在一些实施方式中,该缩放操作可以使用不同于之前缩放操作的缩放系数。例如,在一个实施方式中,应用于第二次缩放操作(即,应用于第二最低成本缝隙的缩放操作)中的缩放系数可以是最大缩放系数的一半,或者可以针对第二次以及后续的缩放操作以给定的百分比降低最大缩放系数。在其他实施方式中,在针对一个或多个后续的缩放操作降低缩放系数之前,可以在两次或更多次缩放操作中使用同样的缩放系数(例如,最先的十次缩放操作可以使用最大值缩放系数,下一十次缩放操作可以使用最大值的一半的缩放系数,等等)。还此外的其他实施方式中,可以使用查找表按照值的顺序指定要应用于缝隙的缩放系数(例如,以它们在值的顺序中的位置进行索引),或指定应用于给定值或给定值的范围中的缝隙的缩放系数。在一些实施方式中,最大缩放系数或要使用的缩放系数的范围可以由用户配置(例如,通过图像编辑应用的用户界面)。注意,在一些实施方式中,要缩放的缝隙的数量可以指定为与图像中缝隙的数量相等。换句话说,可以缩放图像的所有缝隙,以将其作为混合尺寸调整操作的一部分,但是他们可能不会以同样的量被缩放。
在这个示例中,可以将附加的缩放操作以逐渐上升的值的顺序应用于各个缝隙,直到达到尺寸调整目标。这在从1150到1140的反馈循环中示出。一旦图像被尺寸调整到目标尺寸,如1140的肯定分支所示,可以对已缩放的图像重新采样以重新排列图像的像素为规则网格,如步骤1160所示。在其他实施方式中,在每次缩放操作之后(未示出)对图像进行重新采样。在这个示例中,可以输出表示经尺寸调整的图像的数据,如步骤1170所示。如上所述,可以向用户显示经尺寸调整的图像,和/或存储该输出数据用于进一步处理或其他目的。注意,图11所示的方法在各个实施方式中可以用于图像的缩小,图像的扩大,或缩小和扩大操作的组合,以便将图像尺寸调整到其目标尺寸和/或长宽比(如图1A-1B)。
这里所述的图像尺寸调整的几个示例包括重新采样操作。下面描述这种重新采样的一个示例。图像可以被看作像素的网格,其中任意一对相邻像素之间的距离是1。如上所述,缝隙拼接操作可以从图像中移除列或缝隙,且所有其他的像素在网格中移动一个位置。如果使用包括在给定缝隙上实施缩放操作的混合技术,那些缝隙上的每个像素都会向左或向右移动小数个像素(例如,0.2个像素)。因此,使用这种缩放技术尺寸调整的图像可能会具有像素的不规则网格,而不是能够构成图像的像素的规则网格。为了获得可以由图像编辑应用显示的图像,可能需要对这些像素进行重新采样。可以使用各种数字信号处理技术对这样的不规则网格进行采样,以获得置于规则网格上的值。在一个示例中,可以将图像传给使用查找表实施尺寸调整的非线性函数。该查找表可以指定,所有能量值小于7的缝隙都将被完全移除,所有具有7到25之间能量值的缝隙将被重新缩放一半,所有具有高于25的能量值的缝隙将被重新缩放0.75(或者根本不重新缩放)。一旦应用了这些缩放系数且新的像素集合没有处于规则网格,就可以对它们重新采样以便将它们置于规则网格上而产生经尺寸调整的图像。
在基于缝隙拼接技术的图像扩大操作中,通过取决于已标识缝隙的平均或总能量值的可变的量,另一个实施方式可以提供对多条已标识低能量值缝隙中的每一条进行复制。在一些实施方式中,可以通过针对每条最低缝隙添加按指数衰减的数量的拷贝,来对缝隙进行复制。这可以在整个图像中引入较少能量而无需仅仅过分使用最低缝隙。在一个实施方式中,可以将每条缝隙与对数权重相联系以确定缝隙应被复制的次数。例如,最低能量的缝隙可以复制的次数两倍于下一最低能量的缝隙的复制次数,等等。在另一个示例中,为了添加9条缝隙,可以复制最低成本缝隙4次,复制第二最低成本缝隙3次,复制第三最低成本缝隙两次,复制第四最低成本缝隙一次。
在一些实施方式中,通过向最低能量的缝隙分配较高复制优先级(以及相对应的较高复制系数),这种技术可以提供添加缝隙的非线性方法。在一个实施方式中,可以使用基数(r)如下确定每条缝隙要被复制的次数:N_i=ceil(log_r(S_i)),其中N_i是缝隙i将被复制的次数,且S_i=(Total-S_(i-1)),S_0=0。如这里所述的其他尺寸调整方法,在其他实施方式中,可以使用指数衰减或其他函数,或查找表来针对每条缝隙确定相应的复制系数(例如,取决于每条缝隙的值或缝隙值的两个或更多个范围)。
图12示出了用于图像扩大的一个这样的方法。在这个示例中,该方法可以包括访问表示将进行尺寸调整的图像的数据,如步骤1200所示,确定图像中像素值的能量值,如步骤1210所,以及依赖于已确定的能量值,确定图像中一条或多条缝隙的相对成本(步骤1220),同样,使用任何合适的方法确定能量值和/或缝隙值,包括这里所述的那些方法。
在这个示例中,该方法包括,将已确定具有最低成本的缝隙复制预定义的次数,其可以对应于指定的最大复制系数。例如,在一个实施方式中,最低成本缝隙可以复制8次。如果通过复制最低成本缝隙未达到图像的尺寸调整目标,如1240的否定分支所示,该方法可以包括复制已确定具有下一最低成本的缝隙(步骤1250)等等,直到达到尺寸调整目标为止。这在从1250到1240的反馈循环中示出。在这个示例中,对第二次和/或后续的复制操作可以使用不同的复制系数。例如,已确定具有第二最低成本的缝隙可以复制四次,已确定具有第三最低成本的缝隙可以复制两次。在其他实施方式中,在针对一个或多个随后的缩放操作降低复制系数之前,可以在两个或更多复制操作中使用同样的复制系数(例如,最先的十次复制操作可以使用最大复制系数,下个十次复制操作可以使用最大值的一半的复制系数,等等)。在其他实施方式中,可以使用查找表按照值的顺序指定要应用于缝隙的复制系数(例如,按照它们在值的顺序中的位置进行索引),或指定应用于给定值或给定值的范围中的缝隙的复制系数。在其他实施方式中,最大复制系数或要使用的复制系数的范围可以由用户配置(例如,通过图像编辑应用的用户界面)。
一旦图像被扩大到目标尺寸,如1240的肯定分支所示可以输出表示经尺寸调整的图像的数据,如步骤1260所示。如上所述,可以向用户显示经尺寸调整的图像,和/或存储该输出数据用于进一步处理或其他目的。注意,图12所示的方法在各个实施方式中可以用于图像的扩大,或用于执行作为缩小和扩大操作的组合的一部分的扩大操作,以便将图像尺寸调整到其目标尺寸和/或长宽比(如图1A-1B)。
在各种图像编辑应用中,用户可能希望定义图像中的不同区域(例如,通过使用GUI工具创建围绕区域的方框),并独立于每个区域来应用内容感知尺寸调整操作(例如,缝隙拼接或混合尺寸调整技术)。在这样的实施方式中,只在每个区域的边界框中计算缝隙(即,确定值并标识用于移除或复制的候选缝隙)。例如,在一个实施方式中,可以将整个图像重新缩放以使由特定边界框确定的区域减小20个像素,但是边界框中的内容可以进行缝隙拼接(或使用混合技术进行尺寸调整)以适应新的尺寸。这种技术可以用于图像中的两个或更多个区域以创建用户可以控制的更加复杂的效果。在一些实施方式中,每个方框确定的区域可以以同样的量(基于整个图像的缩小目标)进行缩放,但是在每个区域中,图像可以特定地依赖于其局部内容进行缝隙拼接(或使用混合技术尺寸调整)。在各个实施方式中,可以将同样的尺寸调整技术用于每个区域,或者,可以将不同的方法或混合方法用于每个区域。
在一个实施方式中,用户可以选择图像中的繁忙区域(busy area)(或特别感兴趣区域),在其上使用缩放操作或干脆使其免于尺寸调整,并可以选择不同(例如,次繁忙或次感兴趣的)的区域,在其中使用缝隙拼接或缝隙拼接和缩放的混合技术,如上面所述。在各个实施方式中,用户可以使用选择工具或图像编辑应用的其他用户界面机制来确定边界框或区域。在这样的实施方式中,应用于区域或边界框的缝隙拼接或混合技术可以不受区域之外的图像内容(例如,边界框之外的甚高或甚低能量区域)的影响。这种技术可以允许指定图像的不同区域,并可以对每个区域应用缝隙拼接技术、缩放技术和/或混合技术,这独立于对其它区域的应用。在一些实施方式中,取决于整个图像的整体缩小或扩大目标,每个区域都可以被缩小或扩大同样的量,但是该技术可以基于其局部内容应用于每个区域。在其他实施方式中,不同的区域可以缩小或扩大不同的量,以使当从每个经尺寸调整的区域重建图像时,整个经尺寸调整的图像达到指定的目标尺寸和/或长宽比。在一些实施方式中,可以将附加的尺寸调整操作(例如,缝隙拼接,缩放或混合尺寸调整操作)应用于已从两个或更多个经尺寸调整区域重建的图像以实施进一步的尺寸调整。在一些这样的实施方式中,可以保护已被局部尺寸调整的区域免除整个图像上的这种尺寸调整操作。换句话说,这种“整个图像”尺寸调整操作可以仅应用于未被局部尺寸调整的区域中,或没有被用户指定为关注区域的区域中。在此外的其他实施方式中,可以独立地尺寸调整一个或多个所选区域(例如,使用缝隙拼接扩大或移除给定颜色或颜色范围的像素,或在图像区域中强化特别重要的元素或淡化不太重要的元素)而图像的其余部分可以保持不变。在一些这样的实施方式中,任何经尺寸调整的部分都可以缩放回它们的原始尺寸以填充之前由输入图像的对应区域所占据的空间。例如,可以使用缝隙拼接技术从图像区域中移除一条或多条缝隙,并将作为结果生成的经尺寸调整区域进行缩放以将其扩大回其原始尺寸。相反地,可以将缝隙拼接技术应用于图像区域以对其进行扩大(例如,通过复制一条或多条缝隙),并对作为结果生成的经尺寸调整区域进行缩放以将其缩小回其原始尺寸。
图13中的流程图示出了对图像的不同区域应用尺寸调整的一种方法。在这个示例中,如同前面的示例,该方法可以包括访问表示将进行尺寸调整的图像的数据,如步骤1300所示。在这个示例中,该方法包括将图像分为两个或更多个感兴趣区域,如步骤1310所示。例如,可以基于局部内容分别确定和/或指定将进行尺寸调整的图像的一个或多个区域,作为将整个图像尺寸调整到达到指定尺寸调整目标(例如,目标尺寸和/或长宽比)的一部分。在一些实施方式中,可以不尺寸调整一个或多个感兴趣区域,例如,即使在尺寸调整整个图像,也可以保护这些区域免于尺寸调整。在不同的实施方式中,用户确定的关注区域可以是不重叠的。在一些实施方式中,指定的区域可以共同构成整个输入图像,而在其他实施方式中,可以不由指定区域的集合来构成整个图像(即,图像的一些部分可能没有被指定为要基于局部内容实施尺寸调整的关注区域)。
在图13中所示的示例中,该方法可以包括,对于每个要实施尺寸调整的区域,确定该区域的尺寸调整目标,如步骤1320所示。例如,可以以同样的比例,同样的宽度,同样的高度,或同样的长宽比来尺寸调整所有指定的区域,或者,每个区域可以有其自己的尺寸调整目标,该目标基于由区域覆盖的图像的比例或区域的重要性,这样,整个图像被尺寸调整到目标尺寸和/或长宽比,而不会在特别重要的区域失去过量的内容。
在这个示例中,每个将进行尺寸调整的区域可以基于其局部内容单独进行尺寸调整,如步骤1340所示。例如,可以基于局部内容将这里所述的任意尺寸调整操作(例如,使用基于缝隙的技术,缩放技术,或混合技术的操作)用于每个区域。在一些实施方式中,可以将同样的尺寸调整技术用于所有区域。在其他实施方式中,对于不同区域可以使用不同的尺寸调整技术。也要注意,在一些实施方式中,图像的一个区域可以被缩小或扩大,或者可以使用缩小以及扩大操作的组合来进行尺寸调整,而不管其他区域被缩小还是扩大。如上面特别提到的,一些区域可以根本不进行尺寸调整。
一旦所有将进行尺寸调整的区域已被尺寸调整到它们的目标,那么就可以从两个或更多个区域中重建整个图像,如步骤1350所示。然后可以输出表示经尺寸调整的图像的数据,如步骤1360所示。如同前面的示例,如上所述,可以向用户显示经尺寸调整的图像,和/或存储输出数据用于进一步处理或其他目的。
在一些实施方式中,通过使用金字塔型的重定目标(pyramidalretargeting)方法可以加速执行图像尺寸调整(例如,这里所述的缝隙拼接和/或混合尺寸调整技术)所需的计算。金字塔型的重定目标可以用于生成可在其上应用各种技术的低分辨率图像,从而要比在全分辨率图像上应用而更有效率。例如,对于具有超过2000×2000像素的图像,使用标准的缝隙拼接算法很难实现交互性能。因此,在一些实施方式中,可以生成图像金字塔来表示该图像,并在较高金字塔图像(即,表示较低分辨率版本的图像的那一个)上计算解决方案。然后,为了获得相比于在全分辨率图像上计算更快的解决方案,将解决方案投射到较低的金字塔层级(例如,比在其上计算解决方案的版本具有更高分辨率的全分辨率图像或不同版本的图像)。例如,对于4000×4000的图像(层级0),可以生成金字塔,其中第二层级(层级1)是2000×2000像素,第三层级(层级2)是1000×1000像素,第四层级(层级3)是500×500像素,等等。可以选择在其上工作的金字塔层级,这样就可以有效地交互计算解决方案,然后将该解决方案投射到要显示给用户的另一个层级。在一个实施方式中,对于金字塔的每个层级,可以使用高斯滤波器。在其他实施方式中,可以使用其他函数(例如,平均值,和,双立方(bi-cubic),最大值,最近邻接值等等)生成图像金字塔,以便将图像尺寸减小到可以在其上交互操作的水平。
可以由图14中所示的示例进一步描述图像金字塔。图14根据一个实施方式描述了图像金字塔的概念性框图。在这个示例中,水平轴(像素坐标1420)的点表示图像单个行(例如,单个扫描线)中的像素,以他们在行中的位置为序。每个点均有像素值,指示了像素的颜色,强度,和/或其他性质。一些点被做了标记,每个点可以被称为Pn 1,其中1表示该点的层级(即,对应于相应的金字塔层级1410),n表示该点在行中的位置。例如,在P0 0处的像素值表示行中最左边点的颜色,强度和/或其他性质。在这个示例中,水平轴上的所有点表示输入图像的实际(例如,原始的)的像素。因此,他们在相应的金字塔数据结构中的层级是0。P1层级上的每个点(即,那些直接位于P0点之上的点)表示两个像素组成的块的加速数据值。例如,P7 1的值是对在P14 0和P15 0处的像素值关联操作的结果。类似地,P20 1的值是对在P40 0和P41 0处的像素值关联操作的结果。在这个示例中,P2层级上的每个点表示四个像素组成的块的加速数据值。例如,P4 2的值是像素值对在P16 0,P17 0,P18 0,P19 0处的像素值关联操作的结果。在各个实施方式中,可以通过对输入图像的像素值执行关联操作,来生成给定层级上每个点的加速值,或在不同的实施方式中,对加速数据结构较低层级的加速值执行关联操作。
在各个实施方式中,可以用任何适合的数据结构存储一个或多个已加速图像(即,图像金字塔数据)的像素值,这些数据结构包括但不限于,一个或多个表,数据库,列表,链表或阵列。下面的表格,即表2,示出了可被存储于用于附加操作的图像金字塔第二层级(P1)的数据的一个示例。在这个示例中,第一列表示在这一层级与已加速图像的每个像素相关联的索引值,第二列表示计算在这一层级已加速图像的每个像素的值。例如,与索引值2相关联的像素值可以由原始图像的第四个和第五个像素值的和来计算。在一些实施方式中,每次计算的结果可以依索引值存储于表,数据库,或其他适合的数据结构中。在一些实施方式中,附加的信息也可以与每个索引值一起存储,例如加速层级的标识符,关联运算符的标识符,或由每个值(如第三列所示)单独表示的对应于原始图像中像素块的一列像素。
P1索引 | 加速像素值 | 原始图像对应块中的像素 |
0 | P0 1=P0 0+P1 0 | P0 0,P1 0 |
1 | P1 1=P2 0+P3 0 | P2 0,P3 0 |
2 | P2 1=P4 0+P5 0 | P4 0,P5 0 |
… | … | … |
n | Pn 1=P2n 0+P2n+1 0 | P2n 0,P2n+1 0 |
表2
在第二个示例中,表3示出了可以使用最小滤波操作存储于图像金字塔的第三层级(P2)的数据。在这个示例中,第一列表示在这一层级与已加速图像的每个像素相关联的索引值,第二列表示计算在这一层级已加速图像的每个像素的值,第三列表示计算加速图像中每个像素值的可选方法。例如,与索引值2相关联的像素值可以由原始图像的第八,第九,第十和第十一个像素值的最小值计算得出,或者可以由图像金字塔的第二层级(P1)的第四个和第五个像素值的最小值计算得出。在一些实施方式中,以这些计算方式得到的每个索引值的任一结果可以依索引值存储于表,数据库,或其他适合的数据结构中。在一些实施方式中,附加的信息也可以与每个索引值一起存储,例如加速层级的标识符,关联运算符的标识符,或由每个值(如第四列所示)单独表示的对应于原始图像中像素块的一列像素。
P2 索 引 | 加速像素值 | 加速像素值的可 选计算方法 | 原始图像块中的像 素 |
0 | P0 2=min(P0 0,P1 0,P2 0,P3 0) | P0 2=min(P0 1,P1 1) | P0 0,P1 0,P2 0,P3 0 |
1 | P1 2=min(P4 0,P5 0,P6 0,P7 0) | P1 2=min(P2 1,P3 1) | P4 0,P5 0,P6 0,P7 0 |
2 | P2 2=min(P8 0,P9 0,P10 0,P11 0 ) | P2 2=min(P4 1,P5 1) | P8 0,P9 0,P10 0,P11 0 |
… | … | … | … |
n | Pn 2=min(P4n 0,P4n+1 0,P4n+2 0,P4n+3 0) | Pn 2=min(P2n 1,P2n+1 1 ) | P4n 0,P4n+1 0,P4n+2 0,P4n+3 0 |
表3
在一些实施方式中,上述块寻址机制可以便于有效地对算法进行软件编码,该算法用于在由那些数据结构表示的较低分辨率图像上生成加速数据结构和/或计算缝隙拼接和/或尺寸调整解决方案。
在不同的实施方式中,每个加速数据结构可以只包括加速数据的一个层级,或可以包括加速数据的两个或更多个层级。例如,可以使用附加的列来标识每个表条目(table entry)的特定加速层级。类似地,在不同的实施方式中,加速数据结构可以包括仅用于一次关联操作或用于多于一次关联操作的数据。例如,可以使用附加的列来标识被执行以计算每个表条目的关联操作。在各个实施方式中,当图像在图形应用中打开时,当第一次选择滤波器在图像上操作时,或在执行图形应用期间的任意时间,都可以针对整个图像或图像的任意一部分预先计算上述任意加速数据或所有加速数据。
在一些实施方式中,可以由在两个或更多个GPU上并行执行的软件应用来计算加速数据。例如,在一个图形处理器上为一个加速层级生成加速表,而在第二个图形处理器上为另一个加速层级生成加速表。在另一个示例中,在一个图形处理器上为一个关联操作生成加速表,而在第二个图形处理器上为另一个关联操作生成加速表。在另外的又一个示例中,在一个图形处理器上为图像的一部分生成加速数据,而在第二个图形处理器上为图像的另一部分生成加速数据。在这些示例中的任一个中,或者在其他实施方式中,如上所述,由多个处理器生成的加速数据可以全部存储于一个加速数据结构中或者可以被分为多个加速数据结构。
如上所述,可以在金字塔的较高层级计算而不是显示尺寸调整解决方案(例如,对低成本缝隙的标识),并可以投射到金字塔的较低层级。在某些情形下,这会在较低层级生成矮胖的伪像,因为金字塔较高层级中的每条缝隙对应于金字塔较低层级中的像素带或像素区。换句话说,如果从较高分辨率版本(对应于金字塔的较低层级)中移除整个带,就会出现矮胖的伪像,这是因为,例如,一次就移除了8个像素。因此,在一些实施方式中,基于图像较高分辨率版本中的局部内容,尺寸调整操作可以在由在较高金字塔层级确立的解决方案所确定的像素带中执行缝隙拼接。换句话说,可以使用高层级金字塔确定在较低层级应用缝隙拼接的像素带(例如,标识像素带的最低能量值部分)。
在一些实施方式中,这种技术可以使用金字塔型的重定目标方法来降低缝隙拼接计算的复杂度。如上所述,可以基于多种适当的像素数据(例如,颜色和/或强度)函数或每个像素的能量值函数中的任意一种,来生成图像金字塔。通过在图像的低分辨率版本上使用缝隙拼接技术,以标识在高分辨率图像中用于缩小/扩大的像素带,可以开发出缩小或扩大的解决方案。然后,可以基于其局部内容将缝隙拼接技术用于较高分辨率图像中已标识的像素带。在各个实施方式中,这样标识的像素带的数量可以由用户配置(例如,通过图像编辑应用的用户界面)。
在各个实施方式中,对于图像的较低分辨率版本中已标识为将要移除的每条缝隙,较高分辨率版本中要移除的缝隙数量等于,较低分辨率版本中标识的缝隙数量乘以较高分辨率图像的层级差的2倍。例如,如果较低分辨率的解决方案在图像金字塔的层级2上计算,并投射到层级0,较低分辨率的解决方案中的每个像素表示层级0的解决方案中4×4的一组像素。因此,图像较低分辨率版本中的每条像素对应于较高分辨率版本中的4条缝隙。在这个示例中,如果较低分辨率版本上计算的解决方案指出要移除2条缝隙,那么就必须从较高分辨率图像中移除8条缝隙。
在一些实施方式中,可以扩大较高分辨率图像中应用尺寸调整的像素带以便获得更平滑的解决方案。如果不这样,要移除的像素数量例如就可能与像素带中的像素数量相同,从而会获得与较低分辨率的解决方案直接投射到较高分辨率图像上一样的结果。这样会导致不太令人满意的输出图像,因为所有移除的图像都会互相邻接(例如,移除图像一定宽度的一长条内容)。扩大像素带(例如,人工地将其扩宽为包括较高分辨率图像中的一条或多条附加的缝隙,这些缝隙与直接对应于较低分辨率图像的缝隙的缝隙相邻接)可以使得该方法有机会确定更平滑和/或视觉上更吸引人的解决方案。在一些实施方式中,每个像素带可被扩大固定数量的像素。在另一个实施方式中,该扩大可以取决于在其上计算解决方案的图像与在其上投射的图像之间的缩放差。例如,如果较低分辨率图像与较高分辨率图像之间的缩放差是8个像素,那么该像素带可以是8个像素宽。这些像素带可以被补充2分之缩放差(scaleDifference/2)个像素,在这种情况下,每边补入4个像素,以便通过移除经扩大像素带的16个像素中的8个像素,而不是刚好移除已标识像素带的8个像素,来在像素带内计算更平滑的解决方案。在各个实施方式中,每个已标识的像素带可以扩大不同的数量,例如,基于局部内容进行扩大。例如,扩大像素带可以考虑在垂直于执行缩小或扩大操作的方向上的能量差。
在一个实施方式中,可以使用垂直梯度来确定垂直缝隙的宽度。在一些实施方式中,这可以在图像中长的图像宽度的边缘避免锯齿线或矮胖的结果。例如,洞穴图像在图像的大部分区域可以包括圆形,就像观察者面向洞穴看着里面的场景一样(例如,图像围绕在弧线外的部分几乎全部是黑色,场景则描绘于弧线内)。如果对这种图像应用缝隙拼接,不管分辨率如何,如果缩小图像,结果可能会包括沿着洞穴的锯齿状边缘,因为像素带可能没有与其他像素带交流能量。如上所述,扩宽像素带可能会有助于跨越像素带的能量传送。换句话说,如上面特别提到的,该方法可以涉及查明垂直于应用缝隙拼接的方向上的能量,并使用该信息指导像素带的宽度。在一些实施方式中,根据图像的内容(例如,在其他方向上的内容),像素带的宽度可能不同。注意,在一些实施方式中,可能希望已标识的像素带多覆盖(overlap)具有较高能量的区域。例如,如果在水平方向上缩小图像,该方法可能需要考虑图像中的垂直能量。在一些实施方式中,可以预先在较低分辨率的图像中标识所有要进行处理的像素带,并在图像的较高分辨率版本中对其进行扩大(例如,覆盖或不覆盖)。在这样的实施方式中,可以对两条或更多条已扩大的缝隙执行尺寸调整操作,而无需返回较低分辨率的图像寻找下一条像素带。在其他实施方式中,可以每次只标识一条像素带,并在标识下一条像素带之前在图像的较高分辨率版本上进行操作。
图15中的流程图示出了使用带状的缝隙拼接进行尺寸调整的方法的一个实施方式。在这个示例中,访问表示将进行尺寸调整的图像的数据,如步骤1500所示,生成表示图像的较低分辨率版本的加速数据结构或图像金字塔,如步骤1510所示。在不同的实施方式中,可以基于输入图像中像素值的和、差、平均值、最小值或最大值来生成图像金字塔,或使用任何其他合适的函数(例如,双立方,最近邻接值或高斯滤波器)来生成加速数据结构。该图像金字塔可以具有任意数量的加速层级,并且可以使用任意这些层级来确定在其中应用各种尺寸调整操作(例如,缝隙拼接或复制)的像素带。在一些实施方式中,可以确定加速数据结构中每个值的相应能量值。在其他实施方式中,可以确定输入图像的像素值的相应能量值,并且可以在图像金字塔中传播这些能量值。换句话说,可以对对应于输入图像像素的能量值应用函数,以确定加速数据结构中的值,而非向加速数据结构中填入作为输入图像的像素值的函数的导出值,然后再从那些导出值确定能量值。
在这个示例中,该方法可以包括,确定由图像金字塔的一个层级所表示的图像的低分辨率版本的一条或多条最低成本缝隙,如步骤1520所示。在不同的实施方式中,可以使用这里所述的任一方法或任何其他合适的方法确定每条缝隙的值。
在这个示例中,一旦标识了最低成本缝隙,便在对应于图像的较低分辨率版本中标识为最低成本缝隙的一条或多条缝隙像素带中,对输入图像进行尺寸调整,如步骤1530所示。在各个实施方式中,可以使用这里所述任一方法或其他适合的方法,在每条像素带(例如,取决于局部内容)中进行尺寸调整。例如,可以使用基于缝隙的方法(例如,通过移除或复制与较低分辨率图像中的低成本缝隙相对应的输入图像的一条或多条缝隙),使用缩放技术(例如,应用于与较低分辨率图像中的低成本缝隙相对应的输入图像的一条或多条缝隙)或使用这些和/或其他方法的组合来进行尺寸调整。如图15所示以及这里所述,在一些实施方式中,为了执行更平滑的尺寸调整操作,应用尺寸调整的像素带和/或缝隙可以被扩大,以包括与对应于低分辨率图像的低成本缝隙的那些缝隙相邻接的附加的像素和/或缝隙。注意,在不同的实施方式中,应用尺寸调整的像素带可以被扩大相同或不同的数量(例如,基于局部内容和/或用户的喜好或选择)。类似地,在不同的实施方式中,可以使用相同或不同的尺寸调整技术对每条像素带进行尺寸调整。还要注意,在一些实施方式中,可以每次只标识以及尺寸调整一个图像像素带,在每次尺寸调整后重新计算以标识下一条将进行尺寸调整的像素带(未示出),而非从输入图像标识多条将进行尺寸调整的像素带,如图15所示。
在这个示例中,一旦图像被尺寸调整到目标尺寸,可以输出表示经尺寸调整的图像的数据,如步骤1540所示。如上所述,可以向用户显示经尺寸调整的图像,和/或存储该输出数据用于进一步处理或其他目的。注意,图15所示的方法在各个实施方式中可以用于图像的缩小,图像的扩大,或缩小和扩大操作的组合,以便将图像尺寸调整到其目标尺寸和/或长宽比(如图1A-1B)。
注意,尽管这里所述的示例主要涉及基于像素值的图像金字塔,在一些实施方式中,与那些像素(而不是图像数据本身)相关联的能量值可以被传播到金字塔的较高层级。在一些实施方式中,在较高等级的图像中直接使用这些信息(例如能量值)可以减少由使用到目前为止从原始图像(例如,在金字塔的高层级上)中移除的图像数据所带来的伪像。在这样的实施方式中,可以产生图像金字塔的值,例如,作为每个2×2或4×4的像素块的最大能量值,在构建金字塔的较高层级时产生,而非使用像素值的平均值或高斯值(其可能“因混杂而损失掉”许多细节)来产生它们。以这种方法,较高分辨率版本中的最高值较低分辨率版本中仍可以保留。换句话说,图像金字塔的较高层级中不会丢失太多细节。
这里所述的用于对图像进行尺寸调整(例如,在图形应用中)的方法可以由配置为提供所述功能的计算机系统来实现。图16是示出了适用于实现这样的图像尺寸调整操作的计算机系统1600的一个实施方式的框图。图形应用例如图形应用1620可以被配置为作为各种编辑功能的一部分,对图像数据执行尺寸调整,并根据该尺寸调整提供新的图像。例如,根据各个实施方式,通过使用任意这里所述的基于缝隙的技术,缩放技术,和/或混合技术图形来尺寸调整输入图像,应用1620可以执行各种图像的缩小和/或扩大。在不同的实施方式中,图形应用1620可以配置为向独立的窗口提供经尺寸调整的图像,或直接将其提供给包含输入图像的同一个帧缓存器。
图形应用1620可以表示各种类型的图形应用,例如画图,出版,摄影,游戏,动画以及其他应用。另外,根据各个实施方式,当绘制或显示图像时,图形应用1620可以利用图形处理器1640。图形处理单元或GPU可以被看作用于个人计算机,工作站,游戏控制台,或其他计算机系统的专用图形绘制设备。现代的GPU在操作以及显示计算机图形方面极有效率,它们高度并行的结构使得他们在执行一系列复杂图形算法时比典型的CPU更有效率。例如,图形处理器1640可以以一种比利用主机中央处理单元(CPU)如CPU 1630直接在屏幕上绘制快得多的执行方式,来实现多种图形原语操作(primitive operation)。在各个实施方式中,这里公开的生成加速数据结构的方法和/或这里公开的执行图像尺寸调整的方法都可以由配置为在两个或更多个这样的GPU上并行执行的程序指令来实现。GPU 1600可以实现一个或多个允许程序员调用GPU功能的应用接口(APIs)。合适的GPU是可以在商业上从厂家获得的,例如从NVIDIA公司,ATI公司以及其他公司。
请注意,这里所述的作为图形应用1620一部分的,或由图形应用1620执行的功能和/或特征,在一些实施方式中,可以是一个或多个图形处理器的一部分,或由一个或多个图形处理器来执行,例如图形处理器1640。如上所述,在一些实施方式中,图形应用1620可以配置为在不同于输入图像的窗口绘制经尺寸调整的图像。
如这里所述,图像尺寸调整可以在各种类型的计算机系统上实现。再参见图16,计算机系统1600可以是各类设备中的任意一种,包括但不限于,个人计算机系统,桌面计算机,膝上型或笔记本计算机,大型计算机系统,手持计算机,工作站,网络计算机,消费设备,视频游戏控制台,手持视频游戏设备,应用服务器,存储设备,外围设备如交换机,调制解调器,路由器,或一般而言任意类型的计算设备。
可配置为实现这里所述的尺寸调整技术的图形应用1620可以作为计算机程序产品或软件来提供,该计算机程序产品或软件可以包括其上存储了用于使计算机系统(或其他电子设备)实现这里所述的图像尺寸调整的指令的计算机可读存储介质。计算机可读存储介质可以包括以机器(例如,计算机)可读形式(例如,软件,处理应用)存储信息的任何装置。机器可读存储介质可以包括但不限于,磁存储介质(例如,软盘);光存储介质(例如CD-ROM);磁光存储介质;只读存储器(ROM);随机存取存储器(RAM);可擦除可编程存储器(例如,EPROM和EEPROM);闪存;适用于存储程序指令的电介质或其他类型的介质。此外,程序指令可以使用光的,声的,或其他形式的传播信号(例如,载波,红外信号,数字信号或其他类型的信号或媒介)进行通信。
如图16中所示,计算机系统1600可以包括一个或多个处理器单元(CPUs)1630。可以使用任何所需的架构或芯片组,例如,SPARCTM架构,即来自Intel公司或AMD公司的x86兼容架构,或能够处理数据的不同的架构或芯片组来实现处理器1630,并且在各个实施方式中,处理器1630可以包括多处理器,单线程处理器,多线程处理器,多核处理器或任何其他类型的通用或专用处理器。计算机系统1600上可以运行任何所需的操作系统,例如各种版本的Unix,Linux,来自微软公司的WindowsTM,来自苹果公司的MacOSTM,或能够在硬件平台上操作软件的任何其他操作系统。
计算机系统1600还可以包括通过互连总线(interconnect)1660与计算机系统1600的其他部件耦接的一个或多个系统存储器1610(例如,一个或多个高速缓存,SRAM,DRAM,RDRAM,EDO RAM,DDR RAM,SDRAM,Rambus RAM,EEPROM,或其他存储器类型,或其他类型的RAM或ROM)。存储器1610也可以包括其他类型的存储器,或其组合。一个或多个存储器1610可以包括程序指令1615,其可由一个或多个处理器1630执行以实现这里所述的图像尺寸调整技术的各个方面。程序指令1615,其可以包括配置为实现图形应用1620的程序指令,可以在任何时间点部分或全部驻留在计算机系统1600的存储器1610之中。可选的,可以将程序指令1615提供给GPU1640以使用这里所述的一种或多种技术在GPU1640上执行尺寸调整操作(或其一部分)。在一些实施方式中,这里所述的技术可以由分别在一个或多个处理器1630和一个或多个GPU1640上执行的程序指令1615的组合来实现。在一些实施方式中,程序指令1615也可以存储在可由处理器1630和/或GPU1640访问的外部存储设备(未示出)上。在不同的实施方式中,这种存储装置的任何变体都可以用于存储程序指令1615,包括任何所需类型的持久的和/或易失的存储装置,例如,单个磁盘,磁盘阵列,光学设备(例如,CD-ROMs,CD-RW驱动器,DVD-ROMs,DVD-RW驱动器),闪存设备,各种类型的RAM,全息照相存储器,等等。如这里所述,通过一个或多个存储或I/O接口,包括但不限于互连总线1660或网络接口1650,存储设备可以耦接到处理器1630和/或GPU1640。在一些实施方式中,程序指令1615可以经由任何适合的计算机可读存储介质提供给计算机系统1600,这些计算机可读存储介质包括存储器1610和/或上述的外部存储设备。存储器1610也可以配置为实现一个或多个数据结构1625,例如一个或多个加速数据结构和/或配置为存储表示一个或多个输入图像、输出图像、或中间结果图像的数据的结构。当执行图形应用1620或其他程序指令1615时,数据结构1625可由处理器1630和/或GPU1640访问。
如图16所示,通过至少一条通信总线,例如互连总线1660(例如,系统总线,LDT,PCI,ISA,或其他通信总线类型)以及网络接口1650(例如,ATM接口,以太网接口,帧中继接口或其他接口),处理器可以耦接到一个或多个其他所示部件。CPU1630,网络接口1650,以及存储器1610可以耦接到互连总线1660。也应注意到,系统1600的一个或多个部件可以处于远处并通过网络进行访问。
如上面特别提到的,在一些实施方式中,存储器1610可以包括程序指令1615,其包括如这里所述的配置为实现图形应用1620的程序指令。在各个实施方式中,图形应用1620可以使用任何所需的编程语言,脚本语言,或编程语言和/或脚本语言的组合来实现,例如C,C++,C#,JavaTM,Perl等等。例如,在一个实施方式中,图形应用1620是基于JAVA的,而在另一个实施方式中,可能使用C或C++编程语言来实现它。在其他实施方式中,可以使用专用于开发由专用图形硬件如GPU1640执行的程序的专用图形语言来实现图形应用1620。此外,图形应用1620可以在专门分配给图形处理器1640使用的存储器上具体实现,例如包括图形处理器1640的图形板上的存储器。因此,在各个实施方式中,存储器1610可以表示专用图形存储器和通用系统RAM。在各种实施方式中,存储器1610也可以在一些实施方式中包括配置为存储用于一个或多个输入图像和/或输出图像的图像数据的数据存储。这里没有描述的其他信息也可以包括于存储器1610中,并可用于实现这里所述的方法和/或计算机系统1600的其他功能。
网络接口1650可配置为使计算机系统1600与其他计算机,系统或机器通信,如跨网络进行通信。网络接口1650可以使用标准通信技术和/或协议,并可以利用使用技术如以太网、802.11、综合业务数字网络(ISDN)、数字式用户线路(DSL)、和异步传输模式(ATM)以及其他通信技术的连接。类似地,在计算机系统1600进行互连的网络上使用的网络协议可以包括多协议标签交换(MPLS),传输控制协议/网际协议(TCP/IP),用户数据报协议(UDP),超文本传输协议(HTTP),简单邮件传输协议(SMTP),和文件传输协议(FTP),以及其他网络协议。通过网络接口1650在这样的网络上进行交换的数据可以使用技术,语言和/或格式来表示,例如超文本标记语言(HTML),可扩展标记语言(XML),和简单对象访问协议(SOAP),以及其他数据表示技术。此外,可以使用任何适当的加密技术对全部或部分连接或数据进行加密,加密技术例如加密套接字协议层(SSL),安全HTTP和/或虚拟专用网络(VPNs),国际数据加密标准(DES或IDEA),三重DES,Blowfish算法,RC2,RC4,RC5,RC6,以及其他数据加密标准和协议。在其他实施方式中,可以在上述特定技术之外,或代替上述特定技术,使用常规的和/或专用的数据通信,表示,以及加密技术和/或协议。
GPU例如GPU1640可以以多种不同的物理形式实现。例如,GPU1640可以采用专用图形卡,集成图形解决方案和/或混合解决方案的形式。GPU1640可以通过扩展槽例如PCI快速图形(PCI ExpressGraphic)或图形加速接口(AGP)与主板连接,因此其可以相对简单的被替换或升级,如果主板能够支持升级的话。但是,专用的GPU不必是可移除的,也不必以标准方式和主板连接。术语“专用的”是指硬件图形解决方案可以具有专用于图形的RAM,而不管该图形解决方案是否是可移除或可替换的。由于尺寸和重量的限制,便携式计算机的专用GPU可以通过非标准的通常是私有的插槽进行连接。这样的通信口仍可以认为是AGP或PCI快速接口,即使它们与其相似部件在物理上是不可交换的。如图16中所示,存储器1610可以表示各种类型和配置的存储器中的任意一种,包括通用系统RAM和/或专用图形或视频存储器。
集成图形解决方案或共享图形解决方案是利用计算机的系统RAM的一部分而不是专用图形存储器的图形处理器。例如,现代的桌面主板通常包括集成图形解决方案,并具有可用于以后添加专用图形卡的扩展槽。GPU可以是极度存储器密集型的,而由于集成解决方案没有专用的视频存储器,集成解决方案要与CPU竞争已经很慢的系统RAM。例如,系统RAM可以享受2GB/秒到8GB/秒之间的带宽,而大多数专用GPU享受从15GB/秒到30GB/秒的带宽。混合解决方案也可以与系统存储器共享存储器,但是其具有的板上(on-board)存储器数量要小于独立或专用图形卡,以照顾系统RAM的高等待时间。图形处理单元1640与计算机系统1600的其余部分之间的通信数据可以通过图形卡插槽或其他接口,例如图1600的互连总线1660来传送。
计算机系统1600也可以包括一个或多个附加的I/O接口,例如用于一个或多个用户输入设备1670的接口,或者这样的设备可以通过网络接口1650耦接到计算机系统1600。例如,在不同实施方式中,计算机系统1600可以包括到键盘,鼠标或其他光标控制设备,操纵杆,或其他用户输入设备1670的接口。此外,计算机系统1600可以包括一个或多个显示器(未示出),其通过互连总线1660或网络接口1650耦接到处理器1630和/或其他部件。这样的输入/输出设备可以配置为当执行图形应用1620编辑图像时,允许用户与图形应用1620交互以请求各种尺寸调整操作和/或指定各种参数,阈值,和/或其他可配置的用户可用的选项。计算机系统1600也可以包括图16中未示出的多个其他组件,这对于本领域的普通技术人员来说是显而易见的。
注意,在各个实施方式中,程序指令1615可以配置为以独立运行的应用,或者以另一个图形应用的模块或图形库的形式来实现图形应用1620。例如,在一个实施方式中,程序指令1615可以配置为实现图形应用,如画图,出版,摄影,游戏,动画和/或其他应用,并可配置为作为一个或多个这些图形应用的一部分来对图像进行尺寸调整。在另一个实施方式中,程序指令1615可配置为,在由另一个在GPU1640或处理器1630上执行的图形应用调用的一个或多个函数中,实现这里所述的尺寸调整技术。在各个实施方式中,程序指令1615还可以配置为作为尺寸调整操作的输出而绘制图像并将其呈现在一个或多个显示器上,和/或在存储器1610和/或外部存储设备中存储经尺寸调整的图像的图像数据。例如,在一些实施方式中,当尺寸调整,绘制,或显示图像时,包含于图形应用1620中的程序指令1615可以使用GPU1640。
虽然这里参照各个实施方式对各种尺寸调整技术作了描述,但可以理解的是,这些实施方式是示例性而非限制性的。许多变体,修改,添加以及改进都是可能的。更一般地,在特定实施方式的环境中描述了各种技术。例如,说明书中定义的方框和逻辑单元是为了易于理解而不是对任何特定的实施方式进行限制。在各种实现中,可以在方框中以不同的方式对功能进行拆分或组合,或者以不同的术语进行描述。在各个实施方式中,这里所述的动作或函数可以以不同于所示例或说明的顺序执行。可以程序化地执行所述的任何操作(即,由计算机根据计算机程序执行)。可以自动执行所述任何操作(即,无需用户干预)。
这里所述的实施方式是示例性而非限制性的。相应地,可以为这里以单个示例加以说明的部件提供多个示例。各个部件,操作和数据存储之间的界限在某种程度上是随意的,并且在具体的示例性配置的环境中对特定操作作了说明。其他功能分配是可以预见的,并落入随后的权利要求的范围内。最后,在示范性配置中作为独立部件出现的结构和功能也可以用组合的结构或组件来实现。这些以及其他变体,修改,添加以及改进都将落入由后续权利要求所定义的范围内。
虽然详细描述了上面的实施方式,但是只要充分理解了上面所公开的内容,很多变体和修改对于本领域的技术人员来说是显而易见的。以下权利要求被解释为包括所有这样的变体和修改。
Claims (26)
1.一种系统,包括:
一个或多个处理器;以及
耦接到该一个或多个处理器的存储器,其存储由该一个或多个处理器执行的程序指令,以实现:
访问表示图像的数据;
对该图像的一个或多个像素值应用加权;
至少部分地依赖于所述加权来确定该图像的每个像素的相应能量值;
标识具有最低成本的图像缝隙,其中该缝隙的成本取决于该缝隙的像素的相应能量值;以及
沿着所标识的缝隙对该图像执行尺寸调整操作,以产生该图像的经尺寸调整的版本。
2.如权利要求1的系统,进一步包括用于针对下一最低成本缝隙重复所述的标识和所述的执行直到该图像的经尺寸调整的版本达到指定的目标尺寸或指定的目标长宽比的装置。
3.如权利要求1的系统,其中该尺寸调整操作包括缩小操作;以及
其中所述执行包括移除该缝隙的像素。
4.如权利要求1的系统,其中该尺寸调整操作包括扩大操作;以及
其中所述执行包括复制该缝隙的像素并将所复制的像素插入到该图像中。
5.如权利要求1的系统,其中该缝隙值取决于以下一项或多项:该缝隙的所有像素的相应能量值之和,该缝隙的所有像素的相应能量值的平均值,该缝隙的所有像素的相应能量值的加权平均值,以及该缝隙的所有像素的相应能量值的最大值。
6.如权利要求1的系统,其中所述标识具有最低成本的图像缝隙包括标识跨越该图像的最短路径。
7.如权利要求1的系统,其中所述标识具有最低成本的图像缝隙包括应用动态规划技术。
8.如权利要求1的系统,其中所述应用加权包括对其值在指定的值的范围内的像素应用大于一的加权系数。
9.如权利要求8的系统,其中该指定的值的范围包括表示一种或多种定义为肤色的颜色的像素值。
10.如权利要求8的系统,其中该指定的值的范围包括自动确定为表示肤色的像素值。
11.如权利要求8的系统,其中该指定的值的范围包括,由用户指定为比其他像素值的优先级更高的范围中的像素值。
12.如权利要求8的系统,其中该指定的值的范围包括,由用户指定为具有较高优先级的像素值与其他像素值的给定差值中的像素值。
13.如权利要求1的系统,其中每个像素值表示以下一项或多项:绝对颜色值,以及绝对强度值。
14.如权利要求1的系统,其中该一个或多个处理器至少包括以下其一:通用中央处理单元(CPU),图形处理单元(GPU)。
15.一种计算机实现的方法,包括:
访问表示图像的数据;
对该图像的一个或多个像素值应用加权;
至少部分地依赖于所述加权来确定该图像的每个像素的相应能量值;
标识具有最低成本的图像缝隙,其中该缝隙的成本取决于该缝隙的像素的相应能量值;以及
沿着所标识的缝隙对该图像执行尺寸调整操作,以产生该图像的经尺寸调整的版本。
16.如权利要求15的方法,进一步包括,针对下一最低成本缝隙重复所述的标识和所述的执行,直到该图像的经尺寸调整的版本达到指定的目标尺寸或指定的目标长宽比。
17.如权利要求15的方法,其中该尺寸调整操作包括缩小操作;以及
其中所述执行包括移除该缝隙的像素。
18.如权利要求15的方法,其中该尺寸调整操作包括扩大操作;以及
其中所述执行包括复制该缝隙的像素,并将所复制的像素插入到该图像中。
19.如权利要求15的方法,其中该缝隙值取决于以下一项或多项:该缝隙的所有像素的相应能量值之和,该缝隙的所有像素的相应能量值的平均值,该缝隙的所有像素的相应能量值的加权平均值,以及该缝隙的所有像素的相应能量值的最大值。
20.如权利要求15的方法,其中所述标识具有最低成本的图像缝隙包括以下一项或多项:标识跨越该图像的最短路径,以及应用动态规划技术。
21.如权利要求15的方法,其中所述应用加权包括对其值在指定的值的范围内的像素应用大于一的加权系数。
22.如权利要求21的方法,其中该指定的值的范围包括表示一种或多种定义为肤色的颜色的像素值。
23.如权利要求21的方法,其中该指定的值的范围包括自动确定为表示肤色的像素值。
24.如权利要求21的方法,其中该指定的值的范围包括,由用户指定为比其他像素值的优先级更高的范围中的像素值。
25.如权利要求21的方法,其中该指定的值的范围包括,由用户指定为具有较高优先级的像素值与其他像素值的给定差值中的像素值。
26.如权利要求15的方法,其中每个像素值表示以下一项或多项:绝对颜色值,以及绝对强度值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/184,060 | 2008-07-31 | ||
US12/184,060 US8290300B2 (en) | 2008-07-31 | 2008-07-31 | Seam-based reduction and expansion of images with color-weighted priority |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101777175A true CN101777175A (zh) | 2010-07-14 |
CN101777175B CN101777175B (zh) | 2016-03-23 |
Family
ID=41608421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910205797.8A Active CN101777175B (zh) | 2008-07-31 | 2009-07-31 | 对具有颜色加权优先级的图像进行基于缝隙的缩小和扩大 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8290300B2 (zh) |
CN (1) | CN101777175B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103188520A (zh) * | 2011-12-28 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 一种图像调整方法和装置 |
WO2014094203A1 (en) * | 2012-12-17 | 2014-06-26 | Intel Corporation | Content aware video resizing |
CN107408401A (zh) * | 2015-03-27 | 2017-11-28 | 谷歌公司 | 用于图像的简化调整的用户滑块 |
CN113592720A (zh) * | 2021-09-26 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 图像的缩放处理方法、装置、设备、存储介质、程序产品 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8625932B2 (en) * | 2008-08-28 | 2014-01-07 | Adobe Systems Incorporated | Seam carving using seam energy re-computation in seam neighborhood |
US8233739B1 (en) * | 2008-08-29 | 2012-07-31 | Adobe Systems Incorporated | Patch jittering for visual artifact correction |
US8340463B1 (en) * | 2008-08-29 | 2012-12-25 | Adobe Systems Incorporated | Candidate pruning for patch transforms |
US8581937B2 (en) | 2008-10-14 | 2013-11-12 | Adobe Systems Incorporated | Seam-based reduction and expansion of images using partial solution matrix dependent on dynamic programming access pattern |
US20100128181A1 (en) * | 2008-11-25 | 2010-05-27 | Advanced Micro Devices, Inc. | Seam Based Scaling of Video Content |
US8270771B2 (en) * | 2008-12-09 | 2012-09-18 | Xerox Corporation | Iterative selection of pixel paths for content aware image resizing |
US8274533B2 (en) * | 2009-02-12 | 2012-09-25 | Xerox Corporation | Resizing a digital document image via background content removal |
US9020298B2 (en) | 2009-04-15 | 2015-04-28 | Microsoft Technology Licensing, Llc | Automated image cropping to include particular subjects |
US8963960B2 (en) | 2009-05-20 | 2015-02-24 | Adobe Systems Incorporated | System and method for content aware hybrid cropping and seam carving of images |
US8659622B2 (en) | 2009-08-31 | 2014-02-25 | Adobe Systems Incorporated | Systems and methods for creating and editing seam carving masks |
US8717390B2 (en) * | 2009-09-01 | 2014-05-06 | Disney Enterprises, Inc. | Art-directable retargeting for streaming video |
US8213745B2 (en) * | 2009-10-09 | 2012-07-03 | Eastman Kodak Company | Seam carving for image resizing |
US8184928B2 (en) * | 2009-10-20 | 2012-05-22 | Eastman Kodak Company | Combining seam carving an image resizing |
JP2011176747A (ja) * | 2010-02-25 | 2011-09-08 | Sony Corp | 画像処理装置および方法、並びにプログラム |
US9018582B2 (en) * | 2011-01-11 | 2015-04-28 | Sony Corporation | Passive radiometric imaging device and method |
DE102011050848B4 (de) * | 2011-06-06 | 2015-10-01 | ITM Isotopen Technologien München AG | Schichtaufbau zur epidermalen Radionuklidtherapie |
US8903132B2 (en) * | 2011-09-12 | 2014-12-02 | 2343127 Ontario Inc. | Efficient system and method for body part detection and tracking |
US8792744B2 (en) * | 2011-10-03 | 2014-07-29 | Board Of Trustees Of Michigan State University | Generalized multiscale seam carving framework |
WO2013079776A2 (en) * | 2011-11-30 | 2013-06-06 | Nokia Corporation | Method and apparatus for image stitching |
WO2013112064A1 (en) * | 2012-01-25 | 2013-08-01 | Intel Corporation | Content-aware image resizing using superpixels |
GB201217721D0 (en) * | 2012-10-03 | 2012-11-14 | Holition Ltd | Video image processing |
US8873887B2 (en) * | 2013-01-24 | 2014-10-28 | Google Inc. | Systems and methods for resizing an image |
US10249029B2 (en) | 2013-07-30 | 2019-04-02 | Apple Inc. | Reconstruction of missing regions of images |
US9361554B2 (en) | 2014-09-26 | 2016-06-07 | Ricoh Company, Ltd. | Low overhead near unity scaling technique |
Family Cites Families (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4394693A (en) | 1979-03-23 | 1983-07-19 | International Business Machines Corporation | System and method for generating enlarged or reduced images |
US5434414A (en) | 1991-06-09 | 1995-07-18 | Elscint Ltd. | Reduction of image artifacts caused by unwanted photons |
US5438202A (en) | 1992-05-28 | 1995-08-01 | Elscint Ltd. | Stabilized scatter free gamma camera images |
US5577179A (en) | 1992-02-25 | 1996-11-19 | Imageware Software, Inc. | Image editing system |
US5907640A (en) | 1993-03-25 | 1999-05-25 | Live Picture, Inc. | Functional interpolating transformation system for image processing |
DE69429743T2 (de) | 1993-06-29 | 2002-10-02 | Koninkl Philips Electronics Nv | Verfahren und Gerät zur Bestimmung einer Kontur in einem durch eine Dichteverteilung gekennzeichneten Raum |
US6157389A (en) | 1994-11-15 | 2000-12-05 | Kodak Limited | Method for reducing the size of an image |
US5732230A (en) | 1995-05-19 | 1998-03-24 | Richo Company Ltd. | Computer user interface for manipulating image fragments using drag, drop and merge operations |
US5587742A (en) | 1995-08-25 | 1996-12-24 | Panasonic Technologies, Inc. | Flexible parallel processing architecture for video resizing |
US5768413A (en) | 1995-10-04 | 1998-06-16 | Arch Development Corp. | Method and apparatus for segmenting images using stochastically deformable contours |
US6195445B1 (en) | 1997-06-30 | 2001-02-27 | Siemens Corporate Research, Inc. | Motion compensation of an image sequence using optimal polyline tracking |
US5906005A (en) | 1997-07-16 | 1999-05-25 | Eastman Kodak Company | Process and apparatus for making photorealistic masks and masks made thereby |
JP3300280B2 (ja) | 1998-04-23 | 2002-07-08 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 画像合成処理装置およびその方法 |
US6563964B1 (en) | 1999-02-08 | 2003-05-13 | Sharp Laboratories Of America, Inc. | Image downsampling using redundant pixel removal |
JP2000339450A (ja) | 1999-05-26 | 2000-12-08 | Sony Corp | 画像処理方法及び画像処理装置 |
US6597411B1 (en) * | 2000-11-09 | 2003-07-22 | Genesis Microchip Inc. | Method and apparatus for avoiding moire in digitally resized images |
GB2371459B (en) | 2001-01-19 | 2005-05-04 | Pixelfusion Ltd | Image scaling |
US6919903B2 (en) | 2001-03-02 | 2005-07-19 | Mitsubishi Electric Research Laboratories, Inc. | Texture synthesis and transfer for pixel images |
TWI231701B (en) * | 2001-06-14 | 2005-04-21 | Matsushita Electric Ind Co Ltd | Automatic tone correction device, automatic tone correction method, and tone correction program recording medium |
US7168038B2 (en) | 2001-08-01 | 2007-01-23 | Microsoft Corporation | System and method for scaling and repositioning drawings |
US7259784B2 (en) | 2002-06-21 | 2007-08-21 | Microsoft Corporation | System and method for camera color calibration and image stitching |
JP3829985B2 (ja) | 2002-10-31 | 2006-10-04 | ソニー株式会社 | 画像処理装置および方法、記録媒体、並びにプログラム |
JP4434573B2 (ja) | 2002-11-29 | 2010-03-17 | 株式会社東芝 | ライセンス移動装置及びプログラム |
US7411628B2 (en) | 2004-05-07 | 2008-08-12 | Micronas Usa, Inc. | Method and system for scaling, filtering, scan conversion, panoramic scaling, YC adjustment, and color conversion in a display controller |
CN2736865Y (zh) * | 2004-07-08 | 2005-10-26 | 北京中星微电子有限公司 | 一种数字图像的缩放处理系统 |
US7386183B2 (en) | 2004-07-09 | 2008-06-10 | Aloka Co., Ltd. | Method and apparatus for image processing |
US7369121B2 (en) * | 2004-07-21 | 2008-05-06 | Microsoft Corporation | Input device with a zoom apparatus |
US7365744B2 (en) | 2004-07-26 | 2008-04-29 | The Board Of Trustees Of The University Of Illinois | Methods and systems for image modification |
US7574071B2 (en) | 2004-10-05 | 2009-08-11 | Seiko Epson Corporation | Method and apparatus for resizing images |
US7529429B2 (en) | 2004-11-12 | 2009-05-05 | Carsten Rother | Auto collage |
US7532771B2 (en) | 2004-11-12 | 2009-05-12 | Microsoft Corporation | Image processing system for digital collage |
US7653261B2 (en) | 2004-11-12 | 2010-01-26 | Microsoft Corporation | Image tapestry |
US7038185B1 (en) | 2004-12-01 | 2006-05-02 | Mitsubishi Electric Research Laboratories, Inc. | Camera for directly generating a gradient image |
US7602398B2 (en) * | 2005-01-28 | 2009-10-13 | Microsoft Corporation | Decorating surfaces with textures |
US7239805B2 (en) | 2005-02-01 | 2007-07-03 | Microsoft Corporation | Method and system for combining multiple exposure images having scene and camera motion |
CN100356405C (zh) * | 2005-03-28 | 2007-12-19 | 北京中星微电子有限公司 | 一种改变数字图像尺寸的方法及装置 |
US7574069B2 (en) | 2005-08-01 | 2009-08-11 | Mitsubishi Electric Research Laboratories, Inc. | Retargeting images for small displays |
US8522142B2 (en) | 2005-12-08 | 2013-08-27 | Google Inc. | Adaptive media player size |
US7778492B2 (en) | 2006-04-04 | 2010-08-17 | Oldford Group Limited | System and method for scaling digital images |
US7778491B2 (en) | 2006-04-10 | 2010-08-17 | Microsoft Corporation | Oblique image stitching |
US8971667B2 (en) | 2006-10-23 | 2015-03-03 | Hewlett-Packard Development Company, L.P. | Digital image auto-resizing |
JP2008123086A (ja) * | 2006-11-09 | 2008-05-29 | Matsushita Electric Ind Co Ltd | 画像処理装置及び画像処理方法 |
US7839422B2 (en) * | 2006-12-13 | 2010-11-23 | Adobe Systems Incorporated | Gradient-domain compositing |
US8351713B2 (en) | 2007-02-20 | 2013-01-08 | Microsoft Corporation | Drag-and-drop pasting for seamless image composition |
US7747107B2 (en) | 2007-03-06 | 2010-06-29 | Mitsubishi Electric Research Laboratories, Inc. | Method for retargeting images |
WO2008157417A2 (en) | 2007-06-13 | 2008-12-24 | Arbor Labs, Inc. | Method, system and apparatus for intelligent resizing of images |
WO2009070449A1 (en) * | 2007-11-30 | 2009-06-04 | Mitsubishi Electric Research Laboratories, Inc. | Content aware resizing of images and videos |
US8094947B2 (en) | 2008-05-20 | 2012-01-10 | Xerox Corporation | Image visualization through content-based insets |
US7933473B2 (en) * | 2008-06-24 | 2011-04-26 | Microsoft Corporation | Multiple resolution image storage |
US8134578B2 (en) | 2008-07-17 | 2012-03-13 | Xerox Corporation | Hybrid importance maps for content aware digital image resizing |
US8077356B2 (en) | 2008-09-30 | 2011-12-13 | Xerox Corporation | Content-aware halftone image resizing using iterative determination of energy metrics |
US8023153B2 (en) | 2008-09-30 | 2011-09-20 | Xerox Corporation | Content-aware halftone image resizing |
BRPI0823189A2 (pt) | 2008-10-29 | 2015-06-23 | Thomson Licensing | Método e sistema para redimensionar imagens com base em operações de costura otimizadas por interpolações |
US8374462B2 (en) | 2008-11-14 | 2013-02-12 | Seiko Epson Corporation | Content-aware image and video resizing by anchor point sampling and mapping |
US8270771B2 (en) | 2008-12-09 | 2012-09-18 | Xerox Corporation | Iterative selection of pixel paths for content aware image resizing |
US8249394B2 (en) | 2009-03-12 | 2012-08-21 | Shmuel Peleg | Method and system for shift-map image editing |
US9020298B2 (en) | 2009-04-15 | 2015-04-28 | Microsoft Technology Licensing, Llc | Automated image cropping to include particular subjects |
US20120092357A1 (en) | 2010-10-14 | 2012-04-19 | Microsoft Corporation | Region-Based Image Manipulation |
-
2008
- 2008-07-31 US US12/184,060 patent/US8290300B2/en active Active
-
2009
- 2009-07-31 CN CN200910205797.8A patent/CN101777175B/zh active Active
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103188520A (zh) * | 2011-12-28 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 一种图像调整方法和装置 |
CN103188520B (zh) * | 2011-12-28 | 2016-08-03 | 阿里巴巴集团控股有限公司 | 一种图像调整方法和装置 |
WO2014094203A1 (en) * | 2012-12-17 | 2014-06-26 | Intel Corporation | Content aware video resizing |
CN104813361A (zh) * | 2012-12-17 | 2015-07-29 | 英特尔公司 | 感知内容的视频尺寸调整 |
US9396519B2 (en) | 2012-12-17 | 2016-07-19 | Intel Corporation | Content aware video resizing |
CN104813361B (zh) * | 2012-12-17 | 2018-09-28 | 英特尔公司 | 感知内容的视频尺寸调整 |
CN107408401A (zh) * | 2015-03-27 | 2017-11-28 | 谷歌公司 | 用于图像的简化调整的用户滑块 |
CN107408401B (zh) * | 2015-03-27 | 2020-07-03 | 谷歌有限责任公司 | 用于图像的简化调整的用户滑块 |
CN113592720A (zh) * | 2021-09-26 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 图像的缩放处理方法、装置、设备、存储介质、程序产品 |
CN113592720B (zh) * | 2021-09-26 | 2022-02-18 | 腾讯科技(深圳)有限公司 | 图像的缩放处理方法、装置、设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101777175B (zh) | 2016-03-23 |
US8290300B2 (en) | 2012-10-16 |
US20100027876A1 (en) | 2010-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101777175A (zh) | 对具有颜色加权优先级的图像进行基于缝隙的缩小和扩大 | |
US8160398B1 (en) | Independent resizing of multiple image regions | |
US8280191B1 (en) | Banded seam carving of images with pyramidal retargeting | |
Panozzo et al. | Robust image retargeting via axis‐aligned deformation | |
US8614708B2 (en) | System and method for scalable rendering of diffusion curves | |
Parsania et al. | A comparative analysis of image interpolation algorithms | |
US8963960B2 (en) | System and method for content aware hybrid cropping and seam carving of images | |
US8218900B1 (en) | Non-linear image scaling with seam energy | |
US20150131924A1 (en) | Creation of Rectangular Images from Input Images | |
Liao et al. | A subdivision-based representation for vector image editing | |
US20130300741A1 (en) | Adaptive mesh refinement | |
EP1958162B1 (en) | Vector graphics anti-aliasing | |
US7692652B2 (en) | Selectively transforming overlapping illustration artwork | |
US8358876B1 (en) | System and method for content aware in place translations in images | |
CN104751507B (zh) | 图形内容渲染方法和装置 | |
CN107358649A (zh) | 地形文件的处理方法和装置 | |
US8270765B1 (en) | Hybrid seam carving and scaling of images with configurable energy threshold | |
US8280186B1 (en) | Seam-based reduction and expansion of images with table-based priority | |
CN110163866A (zh) | 一种图像处理方法、电子设备及计算机可读存储介质 | |
EP1941447B1 (en) | Full screen anti-aliasing with dynamic filters | |
US8265424B1 (en) | Variable seam replication in images with energy-weighted priority | |
US8280187B1 (en) | Seam carving and expansion of images with color frequency priority | |
US8270766B1 (en) | Hybrid seam carving and scaling of images with configurable carving tolerance | |
US7227551B2 (en) | Manipulating text and graphic appearance | |
EP0855682B1 (en) | Scan line rendering of convolutions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |