CN110392904A - 使用阿尔法混合的动态图像颜色重新映射的方法 - Google Patents

使用阿尔法混合的动态图像颜色重新映射的方法 Download PDF

Info

Publication number
CN110392904A
CN110392904A CN201880017333.1A CN201880017333A CN110392904A CN 110392904 A CN110392904 A CN 110392904A CN 201880017333 A CN201880017333 A CN 201880017333A CN 110392904 A CN110392904 A CN 110392904A
Authority
CN
China
Prior art keywords
color
alpha
projection
image
pixel
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
Application number
CN201880017333.1A
Other languages
English (en)
Other versions
CN110392904B (zh
Inventor
E.奥图内兹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN110392904A publication Critical patent/CN110392904A/zh
Application granted granted Critical
Publication of CN110392904B publication Critical patent/CN110392904B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/62Semi-transparency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2012Colour editing, changing, or manipulating; Use of colour codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Architecture (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

系统、方法和计算机可读存储介质可用于执行alpha投影。一种方法可以包括从存储一个或多个图像的系统接收图像。该方法还可以包括:通过以下对接收的图像进行alpha投影,以将alpha通道值分配给接收的图像:将接收的图像的一个或多个像素从原始颜色投影到第二颜色;以及通过确定使得与投影原点颜色进行alpha混合的每个第二颜色成为原始颜色的alpha通道值,为所述一个或多个像素设置alpha通道值。该方法还可以包括:在背景图像上显示作为前景图像的alpha投影的图像。

Description

使用阿尔法混合的动态图像颜色重新映射的方法
相关申请的交叉引用
本申请要求2017年9月8日提交的美国专利申请第15/699,908号的权益和优先权,其要求2017年8月25日提交的美国临时专利申请第62/550,309号的权益和优先权,其全部内容通过参考并入本文。
背景技术
阿尔法(alpha)混合是通过其将第一图像即前景图像与第二图像即背景图像混合的方法。背景图像通过前景图像“渗出(bleed)”的程度基于前景图像的像素的alpha通道值。每个像素的alpha通道值可以是定义像素的半透明度的数值。例如,为零的alpha通道值可以指示像素是完全透明的,这意味着背景像素通过前景图像的完全透明像素是完全可见的。对于作为无符号八位整数的alpha通道值,最大alpha通道值(例如255)可以意味着该像素没有透明度,它是完全不透明的。当与背景像素进行alpha混合时,完全不透明的像素可能导致仅前景像素可见并且背景图像不会通过前景图像“渗出”。alpha值的变化可能导致前景图像或背景图像看起来很强,即在混合图像中更占优势。
发明内容
用于执行alpha投影的一种说明性方法包括从存储一个或多个图像的系统接收图像。该方法还包括:通过以下对接收的图像进行alpha投影,以将alpha通道值分配给接收的图像:将接收的图像的一个或多个像素从原始颜色投影到第二颜色;以及通过确定使得与投影原点颜色进行alpha混合的每个第二颜色成为原始颜色的alpha通道值,为所述一个或多个像素设置alpha通道值。该方法还包括:在背景图像上显示作为前景图像的alpha投影的图像。
一些实现方式涉及一种系统,具有至少一个计算设备,所述至少一个计算设备可操作地耦合到至少一个存储器。所述计算设备被配置为:从存储一个或多个图像的系统接收图像。所述计算设备还被配置为:通过以下对接收的图像进行alpha投影,以将alpha通道值分配给接收的图像:将接收的图像的一个或多个像素从原始颜色投影到第二颜色;以及通过确定使得与投影原点颜色进行alpha混合的每个第二颜色成为原始颜色的alpha通道值,为所述一个或多个像素设置alpha通道值。所述计算设备被配置为:在背景图像上显示作为前景图像的alpha投影的图像。
一些实现方式涉及一个或多个计算机可读存储介质,其上存储有指令。所述指令当由至少一个处理器执行时,操作包括:从存储一个或多个图像的系统接收图像。操作还包括:通过以下对接收的图像进行alpha投影,以将alpha通道值分配给接收的图像:将接收的图像的一个或多个像素从原始颜色投影到第二颜色;以及通过确定使得与投影原点颜色进行alpha混合的每个第二颜色成为原始颜色的alpha通道值,为所述一个或多个像素设置alpha通道值。操作还包括:通过以下对alpha投影的图像强制透明度:选择要强制透明度的alpha投影的图像的像素。操作还包括:通过以下基于透明度函数调整选择的像素的alpha通道值:基于透明度函数、选择的像素的输入alpha通道值以及每个选择的像素距接收的图像的边缘的距离来调整选择的像素的alpha通道值。操作还包括:在背景图像上显示作为前景图像的alpha投影的图像。
附图说明
本专利或申请文件包含至少一幅彩色附图。具有(一个或多个)彩色附图的本专利或专利申请公开的副本将在请求和支付必要费用后由官方局提供。
在附图和以下描述中阐述了本说明书中描述的主题的一个或多个实现方式的细节。根据描述、附图和权利要求,本主题的其他特征、方面和优点将变得显而易见。
图1是根据说明性实现方式的图像管理系统和相关联的环境的框图。
图2是根据说明性实现方式的用于对图像的像素进行alpha投影并且对alpha投影的图像强制透明度的处理的流程图。
图3是根据说明性实现方式的进一步详细描述的执行alpha投影的处理的流程图。
图4是根据说明性实现方式的进一步详细描述对图像强制透明度的处理的流程图。
图5是根据说明性实现方式的包括在背景上显示的多个产品图像的内容项的图示。
图6是示出根据说明性实现方式的投影原点颜色为白色的从原始颜色到第二颜色的像素的alpha投影的图表。
图7是示出根据说明性实现方式的投影原点颜色为白色的alpha投影的经调整的alpha通道值的图表。
图8是示出根据说明性实现方式的用于投影原点颜色是白色的alpha投影的红色、绿色、蓝色(RGB)颜色体积的图表。
图9是示出根据说明性实现方式的通过将alpha投影的图像与新背景颜色进行alpha混合而产生的重新映射的颜色体积的图表。
图10是示出根据说明性实现方式的对于具有第一投影半径的alpha投影的重新映射的颜色体积的图表,该颜色体积是通过将alpha投影的图像与新背景颜色进行alpha混合而得到的。
图11是示出根据说明性实现方式的对于具有第二投影半径的颜色投影的重新映射的颜色体积的图表,该颜色体积是通过将alpha投影的图像与新背景颜色进行alpha混合而得到的。
图12是根据说明性实现方式的图像集合,其示出没有alpha投影、具有第一投影半径的alpha投影和具有第二投影半径的alpha投影。
图13是示出根据说明性实现方式的填充边缘的强制透明度的结果的图像的集合。
图14是示出根据说明性实现方式的强制透明函数的图表。
图15是示出根据说明性实现方式的具有非白色投影原点颜色的alpha投影的图表,其中非白色颜色位于RGB颜色立方体的表面上。
图16是示出根据说明性实现方式的重新映射的颜色体积的图表,该颜色体积是通过将alpha投影的图像与用于具有非白色投影原点颜色的alpha投影的新背景颜色进行alpha混合而得到的,其中非白色颜色位于RGB颜色立方体的边缘上。
图17是示出根据说明性实现方式的具有非白色投影原点颜色的alpha投影的图表,其中非白色颜色不位于RGB颜色立方体的边缘上。
图18是示出根据说明性实现方式的用于将alpha投影的图像与用于具有非白色投影原点颜色的alpha投影的新背景颜色进行alpha混合的重新映射的颜色体积的图表,其中非白色颜色不位于RGB颜色立方体的的边缘上。
图19是示出根据说明性实现方式的以矩形棱柱作为投影实体的alpha投影的图表。
图20是示出根据说明性实现方式的以球体作为投影实体的颜色映射的图表。
图21是示出根据说明性实现方式的以四面体作为投影实体的颜色映射的图表。
图22是根据说明性实现方式的计算系统的框图。
具体实施方式
一般地参考附图,根据各种实现方式描述了用于准备要与背景图像混合的图像的方法。在一些实现方式中,本文描述的方法包括可以具有两个部分的逐像素变换。第一是红色、绿色、蓝色、alpha(RGBA)颜色空间投影,在此称为alpha投影。第二是校正靠近图像的边缘的alpha通道值,这里称为透明度强制。参考以下示例,可以理解alpha投影。对于可能想要使得完全透明的RGB颜色(称为T),可以定义RGB空间中围绕它的其他颜色的体积。如果图像像素具有属于该体积的颜色C,则C线性地远离T投影到体积的边界(体积的投影表面)上的RGB颜色P上。然后,可以为具有颜色P的像素分配alpha通道值,使得当在颜色T的顶部渲染颜色P时,alpha混合公式重建原始RGB颜色C。
作为该变换的结果,“投影体积”内的所有颜色被分配一定的透明度,对于更接近T的颜色具有更大的透明度。如果在颜色T的背景上渲染该图像,则alpha混合的结果应该粗略地重建原始图像(忽略来自量化和舍入的小效果)。当背景颜色从T偏移到另一颜色U时,不仅原始颜色T的像素表现为颜色U,而且投影体积中的所有颜色被平滑地重新映射以匹配。
第二步骤是填充边缘alpha校正(padded edge alpha correction),透明度强制。继续上面的示例,除非输入图像的边缘上的所有像素都具有非常接近T的颜色,否则它们将不是完全透明的。如果是这种情况,并且图像必须在从视口(viewport)填充的情况下进行渲染(因为图像不够大到以全分辨率填充视口,或者因为图像和视口宽高比不匹配),则缺少图像边界处的完全透明度可以使图像结束和视口开始的位置明显,打破了跨越视口的一个连续图像的幻觉。为了避免这个问题,可以在靠近那些填充边缘的alpha通道上执行额外的变换,将几乎透明的像素平滑地变换为边界处的完全透明的像素。这种透明度强制方法可以在远离图像边界时减弱该效果,使得在距图像边界一些短距离处,像素使用第一阶段分配给它们的透明度。
在实心背景上示出中心主体(例如,产品的图像、服装模特的图像等)的图像是常见的,因为这有助于使观看者的注意力保持在主体上并且中性呈现使其与多个用户界面(UI)兼容。然而,不同的UI可能受益于使用不同背景颜色、梯度和图案(以根据需要与图像在其上被渲染的区域对比或混合)或填充到不同的尺寸或宽高比(所以图像可以完全填满所期望的视口)的所述图像的其他版本。在一些实现方式中,可以针对每个期望的尺寸和背景的组合生成不同版本的图像。但是,这可能带来对存储和服务容量的显著使用。
一种解决方案可以是变换图像以使得背景透明。这样,可以存储和提供单个版本的图像,然后在期望的背景和尺寸的视口上渲染以模拟期望的图像。然而,可能难以生成这样的透明背景图像,因为它们可能在图像捕获期间需要特殊设置或工具,或者需要使用人类编辑和/或自动方法在标准(非透明)图像中分割前景和背景区域。
这些方法可能是费力的和/或容易出错的。如果想要呈现由他人生成的图像,则问题变得甚至更加困难。透明背景图像相对不常见,使得更有可能必须依赖容易出错的图像分割技术来实现期望的效果。如果图像来自许多不同的源并且在它们的呈现中不一致,则创建一种在所有可能的图像和主体变化下都能很好地工作的可靠方法可能甚至更难。
这是购物网站面临的一个问题,其需要能够呈现来自许多不同商家提供的巨型语料库的产品图像。需要在购物网站上显示的许多图像可能示出在不透明的白色或非常浅色的背景上。正在考虑的新内容格式将受益于以不同(例如浅灰色)背景颜色并以一致宽高比示出那些图像。从购物网站已经具有的白色背景图像生成图像可能是有益的。
在图像捕获期间,可以使用诸如色度键控(例如,绿色屏幕)和深度映射的方法。色度键控可以在已知颜色的分级背景(staged background)前捕获图像主体,然后使用该颜色的存在来检测哪些像素属于背景。必须仔细选择背景颜色以不与主体上的任何颜色重叠,否则,主体的颜色匹配部分可能被错误分类为背景。
此外,可以使用深度映射。若干图像捕获设置不仅可以捕获每个像素的颜色,还可以捕获它与相机的距离。如果背景与主体的距离很好地分开,则可以将属于主体的像素与属于背景的像素隔离。依赖于所使用的技术,深度映射和色度键技术可能需要专门的硬件、受控的捕获条件和对主体的限制(例如,没有太多反射或透明分量)。
在图像捕获之后,可以使用图像分割/提取和均匀图像透明度。图像分割和提取是正在进行的、试图将像素分配给两个或更多个具有语义意义的区域的计算机视觉研究的领域。“分割”和“提取”是密切相关但略有不同的概念,其中前者指的是将每个像素精确地分配给一个区域,而后者指的是在一个或多个区域中分配像素分数成员(例如,对象边界上的像素可能是半背景和半前景)。没有技术是完美的,并且潜在的错误包括混合与其他区域具有相似的属性的一个区域的部分(例如,在白色背景图像中,将前景的任何白色部分错误标记为背景)。最稳健的技术通常具有其他缺点,诸如计算时间慢、需要大的训练数据的集合、以及对图像属性的假设。
允许对背景颜色进行一些控制的一种技术是为图像中的所有像素分配部分、均匀透明度,然后在视口颜色上渲染图像,该视口颜色将alpha混合的背景颜色推向所需颜色。虽然这种技术在计算上非常轻巧,但它有一些显著的缺点:它可能大大降低图像对比度并且通常会使感知的颜色失真(例如,如果想让背景变暗,必须使整个图像变暗),并且不能使图像边界完全透明,这意味着如果将图像渲染到不同宽高比的视口中,将会很明显。
以上涉及将像素标记为前景或背景的一些技术(即除了均匀透明度之外的所有这些技术)具有可通过本文所述的alpha投影和透明度强制方法克服的缺点。首先,通过使背景成为要替换的完全透明的区域,它们无法保留背景区域中的特征(例如阴影、反射和背景纹理)。第二,如果在与前景相似的颜色的背景上渲染透明图像,则可能在前景-背景边界处丢失所有对比度。
在一些实现方式中,本文描述的用于alpha投影和透明度强制的方法可以使近白色像素透明。与均匀透明度方法不同,本文描述的方法不会尝试明确区分前景和背景。本文描述的方法可以基于输入颜色分配透明度,从而给予变换后的图像更期望的属性。因为该方法没有尝试明确区分前景和背景,所以在一些实现方式中,背景颜色的改变也将影响前景中的该颜色,因此该技术可以最可靠地用于背景颜色的适度改变。
本文描述的方法对于基于分割的技术可能是有利的。虽然这种技术可能更经常地为前景区域分配一些透明度,但是在alpha混合之后这些错误的视觉迹象倾向于更加细微,只要背景颜色不会过于剧烈地改变。分割误差倾向于在视觉上更明显,因为它们可以在实心区域的中间施加透明度改变(混合颜色的不连续性非常可见),并且倾向于消除它们可能错误地分类为背景的区域中的所有对比度。此技术倾向于保留图像中的可见对比度,因此即使背景颜色改变为与原始前景颜色匹配,前景也不会混合到背景中。此技术可以保留背景中的细微图案和特征,包括阴影、反射和纹理。
在一些实现方式中,与其他颜色重映射方案(包括均匀透明度)相比,本文提供的说明性方法可具有优势。如果使用原始背景颜色,则在alpha混合后图像的颜色和对比度遭受最小的改变。颜色失真和对比度损失可能与背景颜色改变了多少成比例,因此对于背景颜色的适度改变,可能没有大的颜色失真。通过调制变换点处的投影体积的大小,可以在颜色保留(较小的体积)和对比度保持(较大的体积)之间折中。无论选择的投影体积如何,RGB立方体边界上的至少一半颜色必须通过此变换完美保留。根据说明性实施例,本文呈现的方法可以假设在不透明背景上渲染的单个透明图像,但是alpha混合算法可以允许复合多个透明图像。一种替代实现方式将是创建两个或更多个透明图像,其当alpha混合在一起时产生类似于由该算法直接计算的图像。这显然将需要每个图像存储多个图像文件以呈现给用户,但是它将导致动态地重新着色背景的类似的能力。
与试图在语义上将前景与背景区分开的分割/提取技术相比,alpha白色“错误”(向前景像素分配透明度)更常见,但视觉上也更加细微。因此,使用alpha投影方法可以对可能失败的图像进行较不积极的过滤,从而增加具有透明背景的图像的数量。
对于分割/提取的视觉上明显的失败类型包括在纯色(solid color)区域中放置强alpha过渡,这导致在非白色背景颜色上对图像进行alpha混合之后的急剧的颜色不连续性。alpha投影方法可能仅在输入颜色的大变化上创建alpha的大变化,因此改变背景颜色不会导致类似明显的不连续性。
当分割/提取将前景错误分类为背景时,其可以将那些像素的alpha设置为零,从而消除那些区域中的任何RGB对比度。Alpha白色变换可降低那些区域中的对比度,但不会将其完全消除。
如果两个输入像素具有非零对比度,则在alpha混合结果中也是如此。具体地,投射在白色背景上的产品阴影始终保留,即使背景变暗以呈现产品的原始颜色,近白色产品也不会完全混合到背景中。分割和提取是针对区域分类的,并非设计为保证其alpha计算中的颜色映射。
本文描述的方法的变换、alpha投影和透明度强制是如此快速且省资源,以至于可以计算全尺寸缩略图,这意味着结果可用于更多种UI。分割和提取方法要慢得多,并且它们的运行时间通常在图像像素的数量上超线性地增长。
由于alpha白色算法不尝试将背景中的白色像素与属于产品的白色像素区分开,因此如果视口颜色保持接近白色(例如,低至灰色235),则效果在所有情况下都能很好地工作。当它们很好地工作时,分割和提取技术应该保持前景不透明,允许选择背景替换颜色的更大自由度(尽管如第一点所述,可能需要注意不要匹配前景颜色)。
动态重新着色的另一个选择是简单地使整个图像均匀地透明,为每个像素分配一些中间alpha。这可能很快,但它也会更整体地使颜色失真。具体地,如果使用alphaα进行这种更简单的变换,则每个alpha混合的颜色通道被限制到大小α的范围(不管选择的视口颜色如何),导致整个颜色空间的较低对比度。它还将展现相同的填充不连续性,描述为“填充的边缘强制透明度”,除非原始图像边界颜色与视口颜色准确匹配(这首先可能会破坏填加透明度的目的)。
相比之下,alpha投影缩略图仅牺牲跨一些颜色的对比度,并且仅与视口颜色跟白色有多远成比例。如果视口颜色为白色,则alpha混合应在很大程度上重建原始图像(除了来自在变换期间和在alpha混合期间的量化的可能小的失真)。无论选择的视口颜色和投影半径如何,alpha白色缩略图可以始终完美地保留(即分配完全不透明度)为至少一个颜色通道设置为0的颜色。这可以包括所有彩虹颜色的最饱和版本,以及可以介于黑色和它们之间的所有颜色。
现在参考图1,根据说明性实现方式示出了图像管理系统120和相关联的环境100的框图。用户可以使用一个或多个用户设备104来执行各种动作和/或访问各种类型的内容,其中一些内容可以通过网络102(例如,互联网、LAN、WAN等)提供。这里使用的“用户”或“实体”可以指操作用户设备104、经由用户设备104等与资源或内容项交互的个人。用户设备104可以用于访问网站(例如,使用互联网浏览器)、媒体文件和/或任何其他类型的内容。内容管理系统108可以被配置为选择内容以在资源(例如,网页、应用等)内向用户显示,并且通过网络102向用户设备104提供内容项以在资源内显示。内容管理系统108从其选择项目的内容可以由一个或多个内容提供者使用一个或多个内容提供者设备106经由网络102提供。
在一些实现方式中,内容管理系统108可以选择来自内容提供者的内容项以在用户设备104上显示。在这样的实现方式中,内容管理系统108可以确定要在资源(例如,网页、应用等)的一个或多个内容接口中发布的内容。内容管理系统108可以被配置为在第三方内容提供者之间进行内容竞价,以确定将哪个第三方内容提供给用户设备104。可以基于出价金额和质量分数(即,用户设备104的用户点击内容的可能性的度量)来确定竞价获胜者。在一些实现方式中,内容管理系统108允许内容提供者创建内容竞赛。竞赛可以包括任意数量的参数,诸如最小和最大出价金额、目标出价金额和/或一个或多个预算金额(例如,每日预算、每周预算、总预算等)。
图像管理系统120可以包括一个或多个处理器(例如,任何通用或专用处理器),并且可以包括和/或可操作地耦合到一个或多个暂时性和/或非暂时性存储介质和/或存储器设备(例如,任何计算机可读存储介质,诸如磁存储、光存储、闪存、RAM等)。在各种实现方式中,图像管理系统120和内容管理系统108可以实现为单独的系统或集成在单个系统内(例如,内容管理系统108可以被配置为合并图像管理系统120的一些或全部功能/能力)。
图像管理系统120可以可通信地且可操作地耦合到数据库130。图像管理系统120可以被配置为在数据库130中查询信息和将信息存储在数据库130中。在各种实现方式中,数据库130包括各种暂时性和/或非暂时性存储介质。存储介质可以包括但不限于磁存储、光存储、闪存、RAM等。数据库130和/或图像管理系统120可以使用各种API来执行数据库功能(即,管理存储在数据库130中的数据)。API可以是但不限于SQL、ODBC、JDBC等。
图像管理系统120可以被配置为经由网络102与环境100中示出的任何设备或系统通信。图像管理系统120可以被配置为从网络102接收信息。该信息可以包括浏览历史、cookie日志、电视广告数据、印刷出版物广告数据、无线电广告数据和/或在线广告活动数据。图像管理系统120可以被配置为接收和/或收集用户设备104在网络102上具有的交互。
图像源110可以是生成和/或存储图像(例如,图像132)的系统。图像控制器122可以从第三方系统(例如,图像源110)接收图像132。第三方系统可以是商家、制造商和/或任何其他实体或系统。在一些实施例中,图像管理系统120自身生成图像和/或从图像存储系统检索图像。图像可以是产品的图像。在一些实施例中,图像可以是线条艺术图像,例如,关注于特定图像主体的图表、地图、漫画、图片资料库(stock photography)等。本文描述的方法可以应用于任何类型的图像。
图像管理系统120可以被配置为将与各种度量或处理的图像有关的信息和/或通知发送到内容提供者设备106。这可以允许内容提供者设备106之一的用户查看图像管理系统120确定和/或生成的图像或各种度量。此外,图像管理系统120可以使用各种度量来识别与用户联系的适当时间或者在各种媒体渠道(例如,电视广告、互联网广告、无线电广告等)上花费的适当金额(例如,最佳混合媒体花费)。图像管理系统120可以使消息被发送到内容管理系统108和/或内容提供者设备106,所述消息指示内容管理系统108应该在某个时间和/或以某些参数运行的内容竞赛与某个用户联系。这可以使内容管理系统108相应地管理内容竞价和/或识别各种系统负载。
图像管理系统120可以包括被配置为执行图像管理系统120的各种功能的一个或多个模块(即,可由处理器执行的计算机可读指令)和/或电路(即,ASIC、处理器存储器组合、逻辑电路等)。在一些实现方式中,模块可以是或包括图像控制器122,其被示出为包括alpha投影电路124、强制透明度电路126和图像混合电路128。
图像控制器122可以被配置为与数据库130通信和/或管理数据库130。图像控制器122可以被配置为存储和/或检索来自数据库130的图像和/或任何其他数据。图像控制器122可以被配置为从图像源110接收各种图像并将接收的图像存储在数据库130中。图像源110可以是用于商家、艺术家、摄影师和/或可以具有图像的任何其他实体的系统(例如、服务器、例如用户设备104的用户设备、图像数据库和/或任何其他计算或存储设备)。图像控制器122可以被配置为将其从图像源110接收的图像存储为图像132。
图像132可以是RGB或RGBA图像。alpha投影电路124可以被配置为通过为图像132的像素创建alpha值和/或调整图像132的像素的已存在的alpha通道值来对图像132执行alpha投影。alpha投影电路124可以配置为执行的alpha投影可以产生alpha投影的图像136。
由于由alpha投影电路124执行的alpha投影,alpha投影的图像136可以具有针对alpha投影的图像136的像素的选择的alpha通道值。强制透明度电路126可以被配置为基于alpha投影的图像136生成强制透明度图像138。强制透明度电路126可以被配置为利用透明度函数和每个像素距alpha投影的图像136的边缘的距离来调整alpha投影的图像136的像素的alpha通道值。透明度函数可以为alpha投影的图像136的像素获取输入alpha通道值并生成像素的输出alpha通道值,这可以调整alpha投影的图像136的像素的alpha通道值。
图像混合电路128可以被配置为生成混合图像140。混合图像140可以是提供给用户设备104的内容项、购物网站上的产品列表和/或显示给用户的任何其他图像和/或包括在提供给用户设备104的内容项、购物网站上的产品列表和/或显示给用户的任何其他图像中。图像混合电路128可以被配置为通过在背景图像即背景图像134上显示强制透明度图像138或alpha投影的图像136来生成混合图像140。背景图像134可以是纯色,例如白色、浅灰色和/或任何其他颜色。在一些实现方式中,背景图像134可为图案或任何其他类型的背景图像。图像混合电路128可以被配置为通过将alpha投影的图像136或强制透明度图像138与背景图像134进行alpha混合来生成混合图像140。
在一些实现方式中,用户设备104可以包括图像控制器122和/或可以执行图像控制器122的一些和/或所有功能。用户设备104可以包括处理电路,包括一个或多个处理器、一个或多个存储器设备(例如,RAM、ROM等)、和/或任何其他非暂时性或暂时性存储介质。用户设备104的处理电路可以被配置为实现图像控制器122和/或图像控制器122的一些功能性。在这方面,可以由用户设备104在本地、而不是例如由图像管理系统120在云中执行图像控制器122的一些和/或所有功能性。用户设备104可以是和/或包括如参考图22所述的计算系统2200的实施例。
在一些实现方式中,图像管理系统120生成alpha投影的图像136和/或强制透明度图像138。图像管理系统120可以被配置为经由网络102将alpha投影的图像136和/或强制透明度图像138发送到用户设备104。图像管理系统120可以将图像发送到用户设备104以对于内容项显示在购物网站界面中和/或作为任何类型的网站上的图像。用户设备104可以被配置为执行接收的图像(例如,alpha投影的图像136和/或强制透明度图像138)与背景图像和/或背景颜色(例如,视口、内容项等)和/或可以从图像管理系统120接收的背景图像134的alpha混合。
作为示例,用户设备104可以在用户设备104上运行的浏览器中的网站上显示网站和/或内容项。用户设备104可以经由网络102从图像控制器122接收alpha投影的图像136和/或强制透明度图像138。响应于用户设备104的web浏览器请求网页和/或要在网页中显示的图像,可以接收图像和/或发送图像到用户设备104。用户设备104可以响应于在用户设备上运行的web浏览器将透明图像渲染到web浏览器中显示的网页上,将接收的透明图像与背景图像和/或背景颜色进行alpha混合。
图像控制器122可以被配置为执行alpha混合以将图像混合在一起或执行alpha投影。具体地,alpha投影电路124可以被配置为执行alpha投影并通过利用alpha混合(例如,等式1中定义的alpha混合)生成alpha投影的图像136。此外,图像混合电路128可以被配置为通过将alpha投影的图像136或强制透明度图像138与背景图像134进行alpha混合来生成混合图像140。
可以使用alpha混合来在另一种颜色上渲染透明像素。对于RGB(不透明)背景颜色(Br,Bg,Bb)上的前景RGBA颜色(Fr,Fg,Fb,Fa),alpha混合结果(Rr,Rg,Rb)可以是使用作为权重的两种颜色的RGB空间线性插值。例如,红色通道将等于(等式1),
绿色和蓝色通道的值可以是类似的并且可以用等式1确定。关于本文讨论的方法,可以假设用于透明颜色的红色、绿色、蓝色、alpha(RGBA)表示用于图像。在一些实现方式中,还可以假设每个通道值是0到255(包括0和255)范围内的8位无符号整数,其中alpha 0表示完全透明,而alpha 255表示完全不透明。然而,本文描述的方法可以使用其他编号系统(例如,在[0.0,1.0]范围内的浮点值)。
alpha通道可以用于图像合成。它可用于分类确定其颜色的图像主体占用多少像素,因此对于大型纯色对象,大多数前景像素应完全不透明,并且大多数背景像素应完全透明,中间值仅在对象边界处,其中像素与前景和背景两者部分地重叠。透明度也可以更有创意的方式用于平滑地混合两个图像,如“图像羽化”技术中。
现在参考图2,根据说明性实现方式,示出了用于对图像执行alpha投影并对alpha投影的图像执行强制透明度的处理200。图像控制器122,具体是alpha投影电路124、强制透明度电路126和图像混合电路128,可以被配置为执行处理200。此外,本文描述的任何计算设备可以被配置为执行处理200,例如,如参考图22所述的计算机系统2200。本文描述的方法的执行,特别是处理300,可以快速并且与输入像素的数量成线性比例。除了为输出缓冲器分派的存储器之外,对于本文描述的方法,存储器使用可以忽略不计。
在步骤202中,图像控制器122可以被配置为从存储一个或多个图像的图像存储系统接收图像即图像132。在一些实施例中,图像控制器122从第三方系统(例如,图像源110)接收图像132。在一些实施例中,图像控制器122从数据库130、用户设备104和/或内容提供者设备106中检索图像132。
在步骤204中,alpha投影电路124可以被配置为对接收的图像132进行alpha投影。对接收的图像132进行alpha投影可以生成alpha投影的图像136。如果接收的图像132是不具有alpha通道值的RGB图像,则对图像进行alpha投影可以包括确定接收的图像132的每个像素的alpha通道值。如果接收的图像132的一些或所有像素已经具有alpha通道值,则alpha投影电路124可以将接收的图像132的具有低于完全不透明度的alpha通道值(例如,255)的任何像素与白色背景进行alpha混合,以确保在执行步骤204之前所述像素上的完全不透明度。
对图像132的像素进行alpha投影可以包括利用投影实体(projection solid)定义RGB颜色体积,即,颜色体积可以是RGB立方体内的投影实体的体积。对图像132进行Alpha投影可以进一步包括将图像132的在定义的颜色体积内的每个像素投影到投影实体的表面并且为所述像素设置alpha通道值,使得将投影的颜色与默认颜色(例如,与白色、默认灰色)进行alpha混合,实现像素的原始颜色。用图3的处理300和本文其他地方的进一步的细节描述可以由alpha投影电路124执行的alpha投影。
在步骤206中,强制透明度电路126可以被配置为对在步骤204中生成的alpha投影的图像136强制透明度,生成强制透明度图像138。对alpha投影的图像136强制透明度可以包括用第二投影实体定义第二RGB颜色体积。可以通过强制透明度电路126选择在第二颜色体积内的alpha投影的图像136的像素。
选择的像素可以通过强制透明度电路126利用强制透明度函数调整它们的alpha通道值。强制透明度函数可以定义对选择的Alpha通道值的调整。强制透明度函数可以包括强制阈值和保留阈值,其定义调整选择的图像的哪些alpha通道值、以及它们被调整的量。参考图4的处理400和本文其他地方进一步详细描述强制透明度。参考图14的图表1400和本文其他地方描述强制透明度函数。
在步骤208中,图像混合电路128可以被配置为生成混合图像140,用于在内容项、网站横幅、在线购物界面和/或任何其他界面中显示。图像混合电路128可以被配置为用强制透明度图像138(或alpha投影的图像136)作为前景图像并且背景图像134作为背景来生成混合图像140。图像混合电路128可以被配置为通过对强制透明度图像138和背景图像134进行alpha混合来生成混合图像140。在一些实施例中,背景图像134具有比强制透明度图像138更大的尺寸(例如,如图5所示)。图像混合电路128可以被配置为在合成图像之前将强制透明度图像138居中到背景图像134上。
在步骤210中,图像控制器122可以被配置为使混合图像140显示在内容项中或网站上。例如,混合图像140可以包括在内容数据库107的内容项112中。具有混合图像140的这些内容项112可以被提供给用户设备104。在一些实施例中,混合图像140可以显示在诸如购物网站的网站中。
现在参考图3,示出了根据说明性实现方式更详细地说明alpha投影的处理的处理300。处理300可以是用于执行如参考图2所述的处理200的步骤204的处理。图像控制器122,具体是alpha投影电路124,可以被配置为执行处理300。此外,本文描述的任何计算设备可以被配置为执行处理300,例如,计算系统2200。在处理300的步骤302中,红色、绿色、蓝色(RGB)颜色立方体中的第一颜色体积基于第一投影实体。投影实体可以是由投影半径限定的实体,例如球体、矩形棱柱、四面体和/或任何其他形状。这些投影实体的示例可以在图19、20和21中看到。可以基于投影半径从其投影的投影原点颜色来定义投影实体。
在步骤304中,基于第一投影实体,将第一颜色体积内的图像的像素从其原始颜色投影到第二颜色。可以通过生成从投影颜色原点到原始颜色的线来执行投影。与投影实体的表面相交的线的投影,“投影表面”可以定义第二颜色。这将参考图6进一步详细描述。
在一些实现方式中,投影实体是连接的红色、绿色和蓝色(RGB)点的集合。在该点的集合中,可以在投影实体内的任何点与背景颜色集合内的任何点之间绘制直线段。背景颜色集合可以包括投影原点颜色,并且可以是投影实体的连接的RGB点的子集。投影实体的连接的RGB点的集合可以是背景颜色集合的超集。此外,所述线段可以仅包括该连接的RGB点的集合的颜色。在一些实现方式中,投影实体是三维实体,诸如立方体、球体、矩形棱柱或四面体。投影实体可以由从投影原点颜色(例如,白色)延伸的投影半径定义。投影半径可以定义投影实体的投影体积和投影表面。
alpha投影电路124可以被配置为选择和/或调整(替换)投影的像素的alpha通道值。alpha投影电路124可以被配置为通过确定使得第二颜色当与选择的背景颜色(例如,白色)、投影原点颜色进行alpha混合时成为原始的颜色的alpha通道值,确定投影的像素的alpha通道值。
如本文所述,可能存在对在轴对齐的矩形棱柱内的离散RGB点的集群与连续空间中的真实矩形棱柱之间的明显类比的隐含的依赖。在所述连续空间中,体积的“表面”是什么,以及将该表面与“射线(ray)”相交是什么意思可能是清楚的。
可以存在多种定义这种“投影”的方式。例如,定义分离属于投影体积的RGB网格点和不属于投影体积的RGB网格点的连续表面。存在许多技术用于这样做,诸如“行进立方体”网格划分算法。在完成之后,可以依赖于连续空间中的射线-表面交集的定义。
另一示例可以是使从一个RGB点到另一个RGB点的射线离散化,使得射线本身由RGB点组成。(离散化可以通过计算机图形学中已知的任何数量的线绘制算法来完成。)然后,可以决定沿着离散射线的哪个点与投影体积的“表面”相交。同样,存在很多方法做到这一点,例如,射线上的与源的距离低于某个距离阈值的最后一点,射线上的属于投影体积的最后一点等。
注意,给定投影体积和投影源的投影表面可以仅是投影函数可以为投影体积中的任何输入输出的所有点的集合(投影源除外,投影源的RGB投影未定义但无关紧要,因为它始终是完全透明的)。
在步骤306中,alpha投影电路124可以被配置为为投影的像素选择alpha通道值。alpha投影电路124可以被配置为通过确定使得第二颜色与投影原点颜色混合为原始颜色的alpha通道值,为每个投影的像素确定适当的alpha通道值。投影原点颜色可以是期望完全透明度的颜色。因此,如果图像的任何像素是投影原点颜色,则可以为其分配完全透明度。在一些实现方式中,投影原点颜色是白色或浅灰色。然而,投影原点颜色可以是任何颜色。
现在参考图4,示出了根据说明性实现方式更详细地示出了强制透明度的处理的处理400。处理400可以是用于执行如参考图2所述的处理200的步骤206的处理。图像控制器122,具体地是强制透明度电路126,可以被配置为执行处理400。此外,本文描述的任何计算设备可以被配置为执行处理400,例如,如参考图22所述的计算系统2200。
在步骤402中,强制透明度电路126可以被配置为基于第二投影实体定义在RGB颜色立方体中的第二颜色体积。第二颜色体积和/或第二投影实体可以与第一颜色体积和第一投影实体相同或相似。在步骤404中,强制透明度电路126可以被配置为选择在第二颜色体积内的图像(例如,图像132和/或alpha投影的图像136)的像素。
在步骤406中,强制透明度电路126可以被配置为调整图像的选择的像素的alpha通道值。透明度电路126可以被配置为使用透明度函数来调整图像的alpha通道值。透明度函数可以是为选择的像素的每个输入alpha通道值定义输出alpha通道值的一个或多个函数。透明度函数在图14中以图形方式示出。透明度函数可以是一个或多个非减小函数。透明度函数还可以是一个或多个线性或非线性函数。透明度函数可以由强制阈值和保留阈值来定义。强制阈值和保留阈值可以是输入alpha通道值。如果选择的像素的输入alpha通道值低于强制阈值,则可以将第一透明度函数应用于该像素。如果选择的像素的输入alpha通道值在强制阈值和保留阈值之间,则可以将第二透明度函数应用于像素。然而,如果选择的alpha通道值的输入alpha通道值高于保留阈值,则alpha通道值可以根本不改变。
强制透明度函数可以使用图像的选择的像素距图像的边缘的距离。可以比远离图像的边缘的像素更积极地调整更接近图像的边缘的像素。这由多条线定义,线逼近图14所示的恒等变换(即,在距图像的边缘的特定距离处输入等于输出)。
透明度函数可以是一个或多个函数,例如,透明度函数可以是分段函数。函数可以是线性的或非线性的,函数可以是任意阶。函数可以是非减小函数。例如,关于输入alpha通道值和距离输入,该函数可为增加的alpha输入值和增加的距离输出增加的alpha值。此外,透明度函数的输出可以在零和输入alpha通道值之间。
可以基于保留阈值和强制阈值来定义透明度函数。透明度函数的输出可以基于保留阈值和强制阈值。保留阈值和强制阈值可以基于输入alpha值是低于强制阈值、在强制阈值和保留阈值之间、还是大于保留阈值,来定义输入像素alpha值的特定处理。保留阈值可以是大于强制阈值的alpha通道值。此外,如果输入alpha通道值在强制阈值和保留阈值之间,则可以将alpha通道值调整为比小于强制阈值的输入alpha通道值更高的alpha通道值。此外,透明度函数可能不调整大于保留阈值的alpha通道值。
在一些实现方式中,透明度函数是分段线性函数,即,它是多个线性透明度函数。线性函数可以应用于输入alpha值的特定范围。例如,第一线性函数可用于调整范围从零到强制阈值的输入值的alpha通道值。第二线性函数可以应用于强制阈值和保留阈值之间的alpha通道值。
现在参考图5,在背景图像134上显示一个或多个图像132的内容项500(例如,与内容项112相同和/或类似的内容项)被显示为纯白色。产品图像502、504和506显示在背景图像134上。图5示出了在白卡上具有三个说明性图像的内容单元的示例。图5的左图像即产品图像506是具有可能对所有图像都理想的类型的灰色背景的图像。图1的中间图像即产品图像502是示出上述第一个问题的白色背景图像。图1的右图像即产品图像504是示出了上述第二个问题的其背景不是完全白色的非矩形图像。从技术上讲,这两个问题都可能在不引入透明度的情况下解决问题。可以进行静态颜色重新映射并添加多一点的背景颜色的填充,但是本文所述方法提供的透明背景给出用多个背景灰色阴影实验而无需存储大量冗余文件(在许多购物网站的规模上,可意味着每个期望的背景的数百TB的文件)的自由度。
再次参考图2、3和4,本文描述的方法可以实现为第一阶段方法和第二阶段方法。第一阶段是alpha投影阶段(例如,处理300),第二阶段是用于对图像强制透明度的阶段(例如,处理400)。第一阶段可以依赖于单个参数,范围[1,255]中的“投影半径”,即任何通道值>0。在边长等于半径、并且最大角(max corner)在白色处的RGB立方体中,该立方体中的所有颜色都是远离白色投影到相对的立方体面之一。三个相对的立方体面可以统称为投影表面,并且该立方体的内部可以称为投影体积,或者以其他方式称为颜色体积。
投影到投影表面上的颜色体积中的每个RGB颜色可以被分配alpha值,使得当在白色背景上示出时,alpha混合导致大致原始RGB颜色。图6-11示出了仅在红色和绿色坐标中的投影(例如,在蓝色被最大化(maxed out)的平面中)(例如,绿色在z轴上,R在y轴上,B可以在x轴上)。然而,应该理解的是,本文的方法适用于三维RGB颜色立方体,并且不限于本文讨论的二维示例。
参考图6,图表600示出了根据说明性实现方式如何利用alpha投影将立方体内部上的点从其原始颜色602远离白色投影到第一投影实体的表面606上的第二颜色604。在图6中,第一颜色体积由第一投影实体定义。在图6中,颜色体积和投影实体由投影半径608的值定义。在由投影实体和投影半径定义的第一颜色体积内的所有颜色可以投影到投影实体的投影表面上。尽管在图6中仅标记了两个投影表面610和606用于绿色(投影表面610)和蓝色(投影表面606),但是应该理解,存在用于绿色的第三投影表面。
参考图7,图表700示出了根据说明性实现方式的可在投影之后接收相同的alpha通道值的预投影点的线,其中较白的线对应于较低的alpha通道值,而较黑的线对应于较高的alpha通道值。注意,颜色越接近白色,即立方体中的投影原点颜色,它可以被分配的alpha值越低(即,它变得越透明)。在极端情况下,投影的第一颜色体积之外的所有颜色都保持其原始RGB值,alpha通道值为255,并且白色重新映射为alpha通道值为0的颜色。白色被投影到的RGB值可能不会在视觉上很重要,因为它们可以是完全透明的,但是投影到投影表面的对角可以有利于压缩,所有的alpha通道都可以设置为255减去投影半径,并且可以保证每个其他投影的RGB值可以具有有相同值的至少一个通道。
现在参考图8-9,图表800和900示出了根据说明性实现方式的与背景颜色alpha混合的alpha投影图像的颜色映射。投影原点颜色802可以是用于对图像进行alpha投影的原点颜色,它可以是接收完全透明度的颜色。在图9中,映射的颜色804示出了在alpha混合之后投影原点颜色802将被映射到的颜色。作为这种内插透明度的结果,当背景颜色(例如,背景图像134的颜色,如果它是纯色)偏离白色时,投影立方体的原始白色角相应地移动,并且投影立方体的体积被平滑地压扁以适应新的白色角位置,如图8-9中所示。
现在参考图10-11,图表1000和1100示出了与背景图像进行alpha混合的alpha投影的图像的颜色映射结果,alpha投影的图像以不同的投影半径进行alpha投影。在图10中,使用第一投影半径1002,投影半径小于255。在图11中,使用的投影半径大于图10中的投影半径,其是255。对于第一投影实体的投影半径的选择使得可以在颜色保留和对比度保留之间折中,这在图10和11中示意性地示出。随着视口颜色变得更暗,较小的半径导致对较少颜色的改变,但投影颜色之间的对比度的损失更加夸张(对于白色角的给定偏移,较小的投影立方体将不得不挤压更多)。较大的半径将在较宽的颜色上分布白色位置的任何改变(并且因此将更好地保留对比度),但是较多颜色将(显然地)偏移并且浅色将更加显著地变暗(参考以红色示出的内部箭头的相对幅度)。
参考图12,图像1200、1202和1204示出了具有不同投影半径的alpha投影的结果。在图12中,根据说明性实现方式,示出了较大半径将在较宽的颜色上分布白色位置的任何改变,但较多颜色将偏移并且浅色将更加显著变暗的效果。原始图像在左侧,即产品图像1200,中间图像即产品图像1202以投影半径40创建,并且右侧图像即产品图像1204以半径255创建。注意中间图像可以更好地保留颜色(右侧图像中的皮肤和白色顶部比其他两个图像中的明显更暗),但右侧图像可以更好地保留原始图像中的对比度。
为了支持已经具有透明像素的输入图像,具有alpha<255(最大值)的任何输入像素可以与白色背景进行alpha混合以在应用上述变换之前创建不透明的RGB颜色。请注意,具有高alpha的RGBA输入像素可以在此Alpha混合后映射到靠近白色的RGB颜色,因此在alpha白色变换后最终会得到高alpha值。
如果图像的宽高比与视口的宽高比不完全匹配,则可以缩放图像以使其“过长”轴准确地适合视口,但是另一轴将必须用视口像素填充。如果发生这种情况并且填充边缘可能不是完全透明(即alpha 0)的,则观察者将能够看到图像和视口像素之间的过渡,从而打破了“完全渗出”图像的幻觉。该效果在图13的图像中示出。
现在参考图13,示出了产品图像1300、1302和1304,以示出根据说明性实现方式的填充边缘不是完全透明的效果。在图13中,左侧示出了原始图像即产品图像1300,其具有白色背景。在中间的产品图像1302中示出了以白色作为投影的原点(alpha白色投影)的仅alpha投影的效果。因此,可以执行如参考图2和图4的处理200和400所述的填充边缘强制透明度,并且在右侧图像即产品图像1304中示出结果的示例。
可以更加积极地将靠近填充边缘的alpha通道值推向0,从而产生如图13右侧产品图像1304所示的图像。这使得图像边界的位置不太明显。并非沿着填充边缘的所有像素都被强制为完全透明,因为一些高alpha像素可能合法地属于应该保留的前景对象。相反,“透明半径”(类似于投影半径)定义靠近颜色原始点(例如,白色)的颜色的第二颜色体积,其应被强制为alpha通道值零。透明度强制(处理400)可以在图像上实现为在alpha白色投影(处理300)之后发生的alpha调整。
参考图14,根据说明性实现方式,经由图表1400描述透明度函数。在图表1400中,示出了强制阈值1402和保留阈值1404。透明半径处的所有颜色可以通过投影分配相同的alpha,这可以被称为强制阈值1402,因为沿着长图像边缘低于该值的所有alpha都被强制为零。为了避免颜色不透明度的突然不连续,可以定义第二个更高的阈值即保留阈值1404,高于该阈值,alpha值不改变,然后线性地缩放在这两个阈值之间的alpha。图14中的底部(黑色)分段曲线示出了该alpha变换。当强制透明度移动远离填充边缘时,可以通过将强制alpha阈值映射到更高和更高的alpha来缩小强制透明度的效果。这通过图14中的更轻和更轻的曲线的序列来说明,其以最轻的灰色结束为恒等变换。
用于购物网站的视口可以主要是正方形的,因此在制作中,可以将该变换仅应用于非正方形图像上的长边缘。(如果支持具有不同宽高比的视口,则可以变换相对于该宽高比过长的边缘。)图像也可能大部分足够大,使得只有一个轴需要填充,尽管如果不是这种情况,则可能在所有四个边缘上应用此变换(尽管在主体与短边界相交的情况下可能更频繁地导致伪影,如上面示例中模特的面部和腿被图像边界切断的情况)。
图14中所示的强制透明度函数可以是分段线性的,但是可以使用可以具有类似效果的其他非线性函数。例如,在填充边缘处,强制和保留阈值之间的函数可以是连接(强制阈值,0)到(保留阈值,保留阈值)的任何非减小函数。该点可以在强制为零的输入alpha和完全保留的输入alpha之间平滑过渡。此外,在距离填充边缘的距离d处,从输入到输出alpha的函数(aout=F(ain,d))可以是其输出在0和ain之间、并且在ain和d中都是非减小的函数。
如果如上所述不能使填充边缘上的太多像素透明,则图像可能看起来不像完全渗出图像。因此,如果alpha 0填充边缘像素的一部分不高于阈值,则可以将变换设置为失败。假设正方形视口,正方形图像具有完全透明的边缘像素可能更不重要,因为图像将完全填满视口,没有需要混合到的视口填充。然而,如果正方形边缘上的近白色像素很少/没有,则不执行alpha白色变换可能更好,图像本身提供在视口和其出现在其上的白卡之间的必要的对比度。因此,如果太少的像素接近白色(对于用户指定的值“太少”和“接近白色”),则该方法也可以将变换标记为失败。
总体上参考图1-11,本文描述的方法可以适合于替换白色背景,但是可以使用相同想法的变化来替换其他颜色并实现略微不同的投影行为。白色是图6-11中示出的一个投影源,使其成为映射到完全透明度的颜色,但这可以推广到为此目的使用另一颜色。
设投影源(投影原点颜色)为RGB点s=(Sr,Sg,Sb)而不是白色。设投影体积为其与s的每个坐标差都小于投影半径(即,L-ball)的所有RGB点的集合。请注意,这是两个立方体(围绕s的L-ball和RGB立方体本身)的非空交集(nonempty intersection),因此得到的体积必须是矩形棱柱。因此它的边界包括六个矩形面。
对于给定的面F,如果s没有出现在其上,则很清楚从s开始将点X投影到F上意味着什么:从s到x的射线在单个点处与F相交,或者根本不相交。但是如果s属于F,则不再为也在F上的另一个X唯一地定义投影,因为前述射线和F的交集是点的整个线段。可能希望避免这种模糊性,并且还希望保持空间上边界点和内部点之间一致(所有后者都被投影到不属于的棱柱面)的alpha分配。出于这两个原因,投影表面可以限于在其没有的至少一个面上出现的投影颜色体积的边界上的点。
注意,本文描述的alpha白色投影方法(源颜色为白色的alpha投影)可以是alpha投影的一种实现方式。如果s是白色点,则投影的体积将被剪裁(clip),使其面中的三个位于RGB立方体的最大面上。由于白色点也位于那些投影体积面中的三个上,因此投影表面由其他三个面上的点组成。另外,注意,当s位于RGB立方体的内部或边界上时,投影和后续的alpha混合可能表现的略有不同。
现在参考图15-16,图表1500和1600示出了根据说明性实现方式的具有位于RGB立方体的边缘上的非白色投影原点颜色的alpha投影和alpha混合。由标记1502标记的投影原点颜色s示出为位于RGB立方体的边缘上。由1504标记的投影半径定义投影实体,然而,投影实体不完全包含在RGB立方体内。如果s在边界上,那么如果视口颜色离开该边界,则会有一些颜色(包括s本身)永远不会被alpha混合重建。(这就是为什么用白色作为投影原点颜色的alpha投影确保alpha混合的图像边界上的颜色不会是白色的,只要视口颜色是非白色的。)
现在参考图17-18,图表1700和1800示出了根据示例性实施方式的具有位于RGB立方体内的非白色投影原点颜色的alpha投影和alpha混合。由标记1702标记的投影原点颜色s被示出位于RGB立方体内。投影半径1704定义了投影实体,其类似于图15和图16并不完全包含在RGB立方体内。如图17-18所示,如果颜色位于RGB立方体的内部,则投影和alpha混合仅表示投影体积内的颜色的重新分布。没有保证从alpha混合结果中丢失的颜色。出于这个原因,例如,如果选择中等灰色,则不能保证在alpha混合之后该边界上不会出现该灰色的阴影(如果计算此变换以创建图像和特定的灰色的阴影之间的对比度,则这可能是个问题)。
现在参考图19-21,图表1900、2000和2100示出了根据说明性实现方式的三个不同的投影实体。在图19中,投影实体是立方体。在图20中,投影实体是球体,而在图21中,投影实体是四面体。如本文所定义的投影表面可具有有益的属性。RGB空间中的点可以属于该表面。对于整数投影半径,RGB点可以明确地在投影体积的内部、投影表面上或投影体积之外(依赖于与S的最大单通道差分别小于、等于还是大于投影半径)。可以定义任何RGB点远离白色到该表面上的投影。从技术上讲,在离散RGB空间中,“表面”可以是离散点的集群,但即使不深入研究离散拓扑的细节,也可以定义连接这些点的直观连续表面。然后可以将任何RGB点投影到其上,并重新映射到最近的离散点。
对于靠近白色/不太靠近投影表面的视口颜色,两个像素不能进行alpha混合到相同的颜色,除非它们在原始图像中具有非常相似的颜色。这可能是整个投影表面从白色和感兴趣的每个视口颜色都是“可见的”(不是自遮挡的)这一事实的结果。如果表面上的一个点可能会阻挡表面上的另一个(远)点的视口颜色的视图,则这意味着这三个点将大致为共线,并且alpha混合(这是线性插值)可以对于某些alpha对将那些远表面点映射到相同的颜色上。
也就是说,本文使用的L-sphere投影表面在具有这些属性方面可能不是唯一的。为了说明各种潜在表面,图19-21示出了围绕白色的“球体”,其中“球体”是指距白色相同距离的点的集合,其使用不同的L-norm(范数)来定义每种情况下的距离:L(图19)、L2(图20)和L1(图21)。投影表面也不限于这些球体。可以存在包含源的、可用作投影体积的任意数量的连接的RGB点集合。
再次注意,首先描述的alpha白色算法是该通用算法的特殊情况,其中投影源是白色,投影体积是L-ball与RGB立方体的交集,以及投影在投射(snap)到附近的RGB网格点之前在欧几里德3D空间中完成。
作为示例,可以通过使B是潜在地想要用作新背景颜色的颜色的集合来定义投影实体,其应该包括投影原点颜色。有效投影实体V(可以是B的超集)可以是连接的RGB点的任何集合,使得可以在V中的任何点v和B中的任何点b之间绘制直线段,并且该线段包含V中的全部点。对于任何这样的实体,可以清楚地定义远离投影源的投影操作,并且将所得到的图像与B中的任何背景颜色进行alpha混合将表现良好。下面将进一步详细讨论在离散化的颜色空间中“直线”的含义以及可以如何定义投影操作。
图22示出了计算机系统2200的描绘,该计算机系统2200可用于例如实现本文描述的系统和方法。例如,为了实现说明性用户设备,说明性内容管理系统、说明性内容提供者设备、说明性分析系统和/或本公开中描述的各种其他说明性系统。计算系统2200包括用于传送信息的总线2205或其他通信组件、以及耦合到总线2205以处理信息的处理器2210。计算系统2200还包括主存储器2215,诸如随机存取存储器(RAM)或其他动态存储设备,其耦合到总线2205以用于存储信息、以及要由处理器2210执行的指令。主存储器2215也可以用于存储处理器2210执行指令期间的位置信息、临时变量或其他中间信息。计算系统2200还可包括只读存储器(ROM)2210或其他静态存储设备,其耦合到总线2205,用于存储静态信息和用于处理器2210的指令。诸如固态设备、磁盘或光盘的存储设备2225耦合到总线2205,用于持久存储信息和指令。
计算系统2200可以经由总线2205耦合到显示器2235,诸如液晶显示器或有源矩阵显示器,用于向用户显示信息。输入设备2230(诸如包括字母数字键和其他键的键盘)可以耦合到总线2205,用于将信息和命令选择传送到处理器2210。在另一实现方式中,输入设备2230具有触摸屏显示器2235。输入设备2230可以包括光标控件,诸如鼠标、轨迹球或光标方向键,用于将方向信息和命令选择传送到处理器2210并用于控制显示器2235上的光标移动。
在一些实现方式中,计算系统2200可以包括通信适配器2240,诸如联网适配器。通信适配器2240可以耦合到总线2205,并且可以被配置为实现与计算或通信网络2245和/或其他计算系统的通信。在各种说明性实现方式中,可以使用通信适配器2240来实现任何类型的联网配置,诸如有线(例如,经由以太网)、无线(例如,经由WiFi、蓝牙等)、预配置、ad-hoc、LAN、WAN等。
根据各种实现方式,实现本文描述的说明性实现方式的处理可以由计算系统2200响应于处理器2210执行包含在主存储器2215中的指令的布置来实现。这样的指令可以被从诸如存储设备2225的另一计算机可读介质读入主存储器2215。执行包含在主存储器2215中的指令的布置使计算系统2200执行本文所述的说明性处理。还可以采用多处理布置中的一个或多个处理器来执行包含在主存储器2215中的指令。在替代实现方式中,可以使用硬连线电路代替软件指令或与软件指令组合以实现说明性实现方式。因此,实现方式不限于硬件电路和软件的任何特定组合。
尽管图22中已经描述了示例处理系统,但是本说明书中描述的主题和功能操作的实现方式可以使用其他类型的数字电子电路,或者在计算机软件、固件或硬件中执行,包括本说明书中公开的结构及其结构等同物,或者以它们中的一个或多个的组合实现。
本说明书中描述的主题和操作的实现方式可以使用数字电子电路执行,或者在有形介质上体现的计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等同物,或者以它们中的一个或多个的组合体现。本说明书中描述的主题的实现方式可以实现为一个或多个计算机程序,即,在一个或多个计算机存储介质上编码的一个或多个计算机程序指令模块,用于由数据处理装置执行或控制数据处理装置的操作。可替代地或另外地,程序指令可以在人工生成的传播信号上编码,所述信号例如机器生成的电、光或电磁信号,其被生成以编码信息以用于传输到合适的接收器装置以用于由数据处理装置执行。计算机存储介质可以是或包含在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是以人工生成的传播信号编码的计算机程序指令的源或目的地。计算机存储介质也可以是或包括在一个或多个单独的组件或介质(例如,多个CD、磁盘或其他存储设备)中。因此,计算机存储介质是有形的和非暂时的。
本说明书中描述的操作可以实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
术语“数据处理装置”或“计算设备”涵盖用于处理数据的所有种类的装置、设备和机器,包括例如可编程处理器、计算机、芯片上系统或前述中的多个或组合。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所述计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机、或者它们的一个或多个的组合的代码。装置和执行环境可以实现各种不同计算模型基础设施,诸如web服务、分布式计算和网格计算基础设施。
计算机程序(也被称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明或过程性语言;并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象、或适用于计算环境的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如存储一个或多个模块、子程序或代码部分的文件)。可以部署计算机程序以在一个计算机上或在位于一个站点处上或跨多个站点分布并通过通信网络互连的多个计算机上执行。
本说明书中描述的处理和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以对输入数据进行操作并生成输出来执行动作。处理和逻辑流程也可以由专用逻辑电路(例如FPGA(现场可编程门阵列)或ASIC(专用集成电路))来执行,并且装置也可以实现为专用逻辑电路。
适合于执行计算机程序的处理器例如包括通用或专用微处理器或两者、以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于按照指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合以从用于存储数据的一个或多个大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备或两者,所述大容量存储设备例如磁盘、磁光盘或光盘。然而,计算机不必需具有这样的设备。此外,计算机可以嵌入在例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动)等的另一设备中。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或合并到专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实现方式可以使用计算机实现,所述计算机具有:显示设备,例如CRT(阴极射线管)或LCD(液晶显示器)监视器,用于向用户显示信息;以及键盘和指示设备(例如,鼠标或轨迹球),用户可通过其向计算机提供输入。其他种类的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以包括声学、语音或触觉输入的任何形式接收来自用户的输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档,例如,通过响应于从web浏览器接收的请求将网页发送到用户的客户端设备上的web浏览器,与用户交互。
本说明书中描述的主题的实现方式可以使用计算系统实现,该计算系统包括:后端组件,例如作为数据服务器;或者包括中间件组件,例如应用服务器;或者包括前端组件,例如,具有图形用户界面或web浏览器的客户端计算机,用户可通过其与本说明书中描述的主题的实现方式进行交互;或者包括一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过例如通信网络的任何形式或介质的数字数据通信互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网(例如因特网)以及端到端网络(例如,自组织端到端网络)。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且典型地通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实现方式中,服务器将数据(例如,HTML页面)发送到客户端设备(例如,用于向与客户端设备交互的用户显示数据和从用户接收用户输入的目的)。可以在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
在一些说明性实现方式中,本文公开的特征可以在智能电视模块(或连接的电视模块、混合电视模块等)上实现,其可以包括被配置为将互联网连接与(例如,经由电缆、卫星、无线或其他信号接收的)更传统的电视节目源集成的处理电路。智能电视模块可以物理地结合到电视机中,或者可以包括单独的设备,诸如机顶盒、蓝光或其他数字媒体播放器、游戏控制台、酒店电视系统和其他伴随设备。智能电视模块可以被配置为允许观看者搜索和查找在网络上、在本地有线电视频道上、在卫星电视频道上的或存储在本地硬盘驱动中的视频、电影、照片和其他内容。机顶盒(STB)或机顶盒单元(STU)可以包括信息电器设备,该信息电器设备可以包含调谐器并连接到电视机和外部信号源,将信号调谐成然后显示在电视屏幕或其他显示设备上的内容。智能电视模块可以被配置为提供主屏幕或顶级屏幕,其包括用于多个不同应用的图标,所述应用诸如web浏览器和多个流媒体服务(例如,Netflix,Vudu,Hulu等)、连接的有线或卫星媒体源、其他web“频道”等。智能电视模块还可以被配置为向用户提供电子节目指南。智能电视模块的伴随应用可以在移动计算设备上操作,以向用户提供关于可用节目的附加信息,允许用户控制智能电视模块等。在替换实现方式中,可以在膝上型计算机或其他个人计算机、智能电话、其他移动电话、手持计算机、平板电脑或其他计算设备上实现特征。
虽然本说明书包含许多具体实现细节,但这些不应被解释为对任何发明或可要求保护的范围的限制,而是作为特定于特定发明的特定实现方式的特征的描述。在单独实现方式的上下文中在本说明书中描述的某些特征也可以组合或在单个实现方式中执行。相反,在单个实现方式的上下文中描述的各种特征也可以在多个实现方式中单独地或以任何合适的子组合来执行。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此声明,但是在某些情况下,来自所要求保护的组合的一个或多个特征可以从组合中切除,并且所要求保护的组合可以针对子组合或子组合的变化。另外,关于特定标题描述的特征可以关于和/或与在其他标题下描述的说明性实现方式组合使用;标题(如果提供的话)仅出于可读性的目的而包括在内,并且不应被解释为限制关于这些标题提供的任何特征。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为要求以所示的特定顺序或相继顺序执行这些操作,或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实施方式中的各种系统组件的分离不应被理解为在所有实现方式中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以在单个软件产品中集成在一起或者被封装到在有形媒体上体现的多种软件产品。
因此,已经描述了主题的特定实现方式。其他实现方式在所附权利要求的范围内。在一些情况下,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。另外,附图中描绘的处理不一定需要所示的特定顺序或相继顺序来实现期望的结果。在某些实现方式中,多任务和并行处理可能是有利的。

Claims (20)

1.一种方法,包括:
从存储一个或多个图像的系统接收图像;
通过以下对接收的图像进行alpha投影,以将alpha通道值分配给接收的图像:
将接收的图像的一个或多个像素从原始颜色投影到第二颜色;以及
通过确定使得与投影原点颜色进行alpha混合的每个第二颜色成为原始颜色的alpha通道值,为所述一个或多个像素设置alpha通道值;以及
在背景图像上显示作为前景图像的alpha投影的图像。
2.根据权利要求1所述的方法,其中,基于投影实体来执行将所述一个或多个像素从所述原始颜色投影到所述第二颜色;以及
其中投影实体是连接的红色、绿色和蓝色(RGB)点的集合,其中可以在投影实体内的任何点至背景颜色集合内的任何点之间绘制直线段,其中线段仅包括连接的RGB点的集合中的一个或者多个,其中背景颜色集合包括投影原点颜色并且是投影实体的连接的RGB点的子集,其中投影实体的连接的RGB点的集合是包括背景颜色集合的超集。
3.根据权利要求2所述的方法,其中,所述投影实体是三维形状,并且是立方体、球体、矩形棱柱和四面体中的至少一种;并且
其中投影原点颜色是白色,其中当alpha投影时接收的图像的白色的任何像素被分配完全透明度的alpha通道值。
4.根据权利要求1所述的方法,其中,将接收的图像的每个颜色从原始颜色投影到第二颜色是基于投影半径的,并且包括:
基于包括一个或多个投影表面的第一投影实体来定义红色、绿色、蓝色(RGB)颜色立方体的第一颜色体积;以及
将为第一颜色体积内的颜色的、接收的图像的所述一个或多个像素的原始颜色从原始颜色投影到第二颜色,其中所述第二颜色是第一颜色体积的一个或多个投影表面的颜色。
5.根据权利要求4所述的方法,其中,投影实体的一个或多个投影表面由从投影原点颜色延伸的投影半径定义。
6.根据权利要求1所述的方法,还包括通过以下对alpha投影的图像强制透明度:
选择要强制透明度的alpha投影的图像的像素;以及
通过以下基于透明度函数调整选择的像素的alpha通道值:
基于透明度函数、选择的像素的输入alpha通道值以及每个选择的像素距接收的图像的边缘的距离来调整选择的像素的alpha通道值。
7.根据权利要求6所述的方法,其中,所述透明度函数是一个或多个非减小函数,所述非减小函数相对于输入alpha通道值和每个选择的像素距接收的图像的边缘的距离是非减小的,其中,所述一个或多个非减小函数基于所述alpha投影的图像中的每个选择的像素到所述alpha投影的图像的边缘的距离,其中所述透明度函数的输出在零和所述输入alpha通道值之间。
8.根据权利要求6所述的方法,其中,调整选择的像素的alpha通道值还基于针对输入alpha通道值的强制阈值和保留阈值,其中:
保留阈值是大于强制阈值的值;
强制阈值和保留阈值之间的输入alpha通道值被调整为比小于强制阈值的输入alpha通道值更高的alpha通道值;以及
不调整大于保留阈值的alpha通道值。
9.根据权利要求6所述的方法,其中,透明度函数包括第一线性函数和第二线性函数,其中调整选择的像素的alpha通道值包括:
对于范围从零到强制阈值的输入alpha通道值,基于第一线性关系调整选择的像素的alpha通道值,其中输入alpha通道值是在像素的alpha通道值被调整之前的选择的像素的alpha通道值;以及
对于范围从强制阈值到保留阈值的输入alpha通道值,基于第二线性关系调整选择的像素的alpha通道值。
10.根据权利要求6所述的方法,其中,选择alpha投影的图像的像素包括:
基于第二投影实体定义红色、绿色、蓝色(RGB)立方体的第二颜色体积;以及
选择alpha投影的图像的具有第二颜色体积内的颜色的像素。
11.一种系统,包括至少一个计算设备,所述至少一个计算设备可操作地耦合到至少一个存储器并且被配置为:
从存储一个或多个图像的系统接收图像;
通过以下对接收的图像进行alpha投影,以将alpha通道值分配给接收的图像:
将接收的图像的一个或多个像素从原始颜色投影到第二颜色;以及
通过确定使得与投影原点颜色进行alpha混合的每个第二颜色成为原始颜色的alpha通道值,为所述一个或多个像素设置alpha通道值;以及
在背景图像上显示作为前景图像的alpha投影的图像。
12.根据权利要求11所述的系统,其中,计算设备被配置为基于投影实体来执行将所述一个或多个像素从所述原始颜色投影到所述第二颜色;以及
其中投影实体是连接的红色、绿色和蓝色(RGB)点的集合,其中可以在投影实体内的任何点至背景颜色集合内的任何点之间绘制直线段,其中线段仅包括连接的RGB点的集合中的一个或者多个,其中背景颜色集合包括投影原点颜色并且是投影实体的连接的RGB点的子集,其中投影实体的连接的RGB点的集合是包括背景颜色集合的超集。
13.根据权利要求12所述的系统,其中,所述投影实体是三维形状,并且是立方体、球体、矩形棱柱和四面体中的至少一种;以及
其中投影原点颜色是白色,其中当alpha投影时接收的图像的白色的任何像素被分配完全透明度的alpha通道值。
14.根据权利要求11所述的系统,其中,计算设备被配置为基于投影半径,和通过以下将接收的图像的每个颜色从原始颜色投影到第二颜色:
基于包括一个或多个投影表面的第一投影实体来定义红色、绿色、蓝色(RGB)颜色立方体的第一颜色体积;以及
将为第一颜色体积内的颜色的、接收的图像的所述一个或多个像素的原始颜色从原始颜色投影到第二颜色,其中第二颜色是第一颜色体积的一个或多个投影表面的颜色,其中,投影实体的一个或多个投影表面由从投影原点颜色延伸的投影半径定义。
15.根据权利要求11所述的系统,其中计算设备被配置为通过以下对alpha投影的图像强制透明度:
选择要强制透明度的alpha投影的图像的像素;以及
通过以下基于透明度函数调整选择的像素的alpha通道值:
基于透明度函数、选择的像素的输入alpha通道值以及每个选择的像素距接收的图像的边缘的距离来调整选择的像素的alpha通道值。
16.根据权利要求15所述的系统,其中,所述透明度函数是一个或多个非减小函数,所述非减小函数相对于输入alpha通道值和每个选择的像素距接收的图像的边缘的距离是非减小的,其中,所述一个或多个非减小函数基于所述alpha投影的图像的每个选择的像素距所述alpha投影的图像的边缘的距离,其中所述透明度函数的输出在零和所述输入alpha通道值之间。
17.根据权利要求15所述的系统,其中,调整选择的像素的alpha通道值还基于针对输入alpha通道值的强制阈值和保留阈值,其中:
保留阈值是大于强制阈值的值;
强制阈值和保留阈值之间的输入alpha通道值被调整为比小于强制阈值的输入alpha通道值更高的alpha通道值;以及
不调整大于保留阈值的alpha通道值。
18.根据权利要求15所述的系统,其中,透明度函数包括第一线性函数和第二线性函数,其中调整选择的像素的alpha通道值包括:
对于范围从零到强制阈值的输入alpha通道值,基于第一线性关系调整选择的像素的alpha通道值,其中输入alpha通道值是在像素的alpha通道值被调整之前的选择的像素的alpha通道值;以及
对于范围从强制阈值到保留阈值的输入alpha通道值,基于第二线性关系调整选择的像素的alpha通道值。
19.一个或多个计算机可读存储介质,其上存储有指令,所述指令当由至少一个处理器执行时,使得所述至少一个处理器执行操作,所述操作包括:
从存储一个或多个图像的系统接收图像;
通过以下对接收的图像进行alpha投影,以将alpha通道值分配给接收的图像:
将接收的图像的一个或多个像素从原始颜色投影到第二颜色;以及
通过确定使得与投影原点颜色进行alpha混合的每个第二颜色成为原始颜色的alpha通道值,为所述一个或多个像素设置alpha通道值;
通过以下对alpha投影的图像强制透明度:
选择要强制透明度的alpha投影的图像的像素;以及
通过以下基于透明度函数调整选择的像素的alpha通道值:
基于透明度函数、选择的像素的输入alpha通道值以及每个选择的像素距接收的图像的边缘的距离来调整选择的像素的alpha通道值;以及
在背景图像上显示作为前景图像的alpha投影的图像。
20.根据权利要求19所述的一个或多个计算机可读存储介质,其中,基于投影实体来执行将所述一个或多个像素从所述原始颜色投影到所述第二颜色;以及
其中投影实体是连接的红色、绿色和蓝色(RGB)点的集合,其中可以在投影实体内的任何点至背景颜色集合内的任何点之间绘制直线段,其中线段仅包括连接的RGB点的集合中的一个或者多个,其中背景颜色集合包括投影原点颜色并且是投影实体的连接的RGB点的子集,其中投影实体的连接的RGB点的集合是包括背景颜色集合的超集。
CN201880017333.1A 2017-08-25 2018-06-15 使用阿尔法混合的动态图像颜色重新映射的方法 Active CN110392904B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762550309P 2017-08-25 2017-08-25
US62/550,309 2017-08-25
US15/699,908 US10529124B2 (en) 2017-08-25 2017-09-08 Methods for dynamic image color remapping using alpha blending
US15/699,908 2017-09-08
PCT/IB2018/054442 WO2019038604A1 (en) 2017-08-25 2018-06-15 METHODS OF REMOVING DYNAMIC IMAGE COLOR USING ALPHA MIXTURE

Publications (2)

Publication Number Publication Date
CN110392904A true CN110392904A (zh) 2019-10-29
CN110392904B CN110392904B (zh) 2020-07-07

Family

ID=65437535

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880017333.1A Active CN110392904B (zh) 2017-08-25 2018-06-15 使用阿尔法混合的动态图像颜色重新映射的方法

Country Status (6)

Country Link
US (1) US10529124B2 (zh)
EP (1) EP3568833B1 (zh)
JP (1) JP6831482B2 (zh)
KR (1) KR102138847B1 (zh)
CN (1) CN110392904B (zh)
WO (1) WO2019038604A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124404A (zh) * 2019-11-29 2020-05-08 武汉虹信技术服务有限责任公司 一种自定义颜色的显示方法及系统
CN111314770A (zh) * 2020-03-06 2020-06-19 网易(杭州)网络有限公司 游戏中列表的显示方法、装置以及终端设备

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019106856A1 (de) 2019-03-18 2020-09-24 Hueck Rheinische Gmbh Verfahren und System zum Herstellen einer Werkstoffplatte
CN111915478B (zh) * 2020-07-14 2023-06-23 厦门真景科技有限公司 一种基于保边模糊的美颜方法、装置、设备及计算机可读存储介质
CN112802174B (zh) * 2020-12-31 2023-12-15 珠江水利委员会珠江水利科学研究院 一种基于Web的风场三维动态可视化呈现方法
KR102439429B1 (ko) * 2021-12-21 2022-09-05 주식회사 인피닉 객체 추출이 용이한 어노테이션 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
WO2024076011A1 (ko) * 2022-10-06 2024-04-11 삼성전자 주식회사 비디오 편집을 위한 전자 장치 및 그 동작 방법

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038031A (en) * 1997-07-28 2000-03-14 3Dlabs, Ltd 3D graphics object copying with reduced edge artifacts
US20060044323A1 (en) * 2004-08-27 2006-03-02 Alias Systems Transparency and/or color processing
CN101295408A (zh) * 2007-04-27 2008-10-29 新奥特硅谷视频技术有限责任公司 一种3d图文渲染方法和渲染系统
CN101409790A (zh) * 2008-11-24 2009-04-15 浙江大学 一种高效的多投影仪拼接融合方法
CN101529495A (zh) * 2006-09-19 2009-09-09 奥多比公司 图像遮罩生成
CN104620570A (zh) * 2012-09-19 2015-05-13 高通股份有限公司 用于通过用户控制的局部图像增强进行相片增强的系统
US20160189421A1 (en) * 2014-04-30 2016-06-30 Replay Technologies Inc. System and method of limiting processing by a 3d reconstruction system of an environment in a 3d reconstruction of an event occurring in an event space

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7834894B2 (en) * 2007-04-03 2010-11-16 Lifetouch Inc. Method and apparatus for background replacement in still photographs
JP6494249B2 (ja) 2014-11-12 2019-04-03 キヤノン株式会社 画像形成装置、画像形成方法、プログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038031A (en) * 1997-07-28 2000-03-14 3Dlabs, Ltd 3D graphics object copying with reduced edge artifacts
US20060044323A1 (en) * 2004-08-27 2006-03-02 Alias Systems Transparency and/or color processing
CN101529495A (zh) * 2006-09-19 2009-09-09 奥多比公司 图像遮罩生成
CN101295408A (zh) * 2007-04-27 2008-10-29 新奥特硅谷视频技术有限责任公司 一种3d图文渲染方法和渲染系统
CN101409790A (zh) * 2008-11-24 2009-04-15 浙江大学 一种高效的多投影仪拼接融合方法
CN104620570A (zh) * 2012-09-19 2015-05-13 高通股份有限公司 用于通过用户控制的局部图像增强进行相片增强的系统
US20160189421A1 (en) * 2014-04-30 2016-06-30 Replay Technologies Inc. System and method of limiting processing by a 3d reconstruction system of an environment in a 3d reconstruction of an event occurring in an event space

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124404A (zh) * 2019-11-29 2020-05-08 武汉虹信技术服务有限责任公司 一种自定义颜色的显示方法及系统
CN111124404B (zh) * 2019-11-29 2023-06-20 武汉虹信技术服务有限责任公司 一种自定义颜色的显示方法及系统
CN111314770A (zh) * 2020-03-06 2020-06-19 网易(杭州)网络有限公司 游戏中列表的显示方法、装置以及终端设备

Also Published As

Publication number Publication date
KR102138847B1 (ko) 2020-07-28
US10529124B2 (en) 2020-01-07
CN110392904B (zh) 2020-07-07
JP2020526808A (ja) 2020-08-31
US20190066367A1 (en) 2019-02-28
KR20190138885A (ko) 2019-12-16
EP3568833B1 (en) 2020-08-05
EP3568833A1 (en) 2019-11-20
JP6831482B2 (ja) 2021-02-17
WO2019038604A1 (en) 2019-02-28

Similar Documents

Publication Publication Date Title
CN110392904A (zh) 使用阿尔法混合的动态图像颜色重新映射的方法
Ni et al. A survey of large high-resolution display technologies, techniques, and applications
AU2020201699B2 (en) Reducing latency in map interfaces
US9077986B2 (en) Electronic visual displays
US20050104880A1 (en) Method and apparatus for indicating a usage context of a computational resource through visual effects
US9235911B2 (en) Rendering an image on a display screen
US11651556B2 (en) Virtual exhibition space providing method for efficient data management
Badam et al. Visfer: Camera-based visual data transfer for cross-device visualization
CN109213316B (zh) 自动布局引擎
US20180277056A1 (en) System and method for managing image colors
US20220254114A1 (en) Shared mixed reality and platform-agnostic format
WO2023159595A1 (zh) 构建和配置三维空间场景的模型的方法、装置及计算机程序产品
US20180095942A1 (en) Object Interaction Preservation from Design to Digital Publication
CN109213981B (zh) 各种电子设备的演示协作
CN116112657B (zh) 图像处理方法、装置、计算机可读存储介质及电子装置
CN105824796A (zh) 显示数据的方法和装置
US10831855B2 (en) Adaptive images
Hunt et al. Introduction to Computer Graphics
Toro et al. Scalable content for urban applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant