专利名称:用于参数曲线的动态反馈和交互的制作方法
技术领域:
在诸如图像处理和音频处理的领域中,很多操作通常可以基于 交互式用户界面控制来描述,该交互式用户界面将输入值直接映射 为输出值,或者映射为将在随后影响处理的某些其他参数。例如, 这种控制可以允许用户交互式地调节功能曲线,诸如用于图像处理 的色调曲线和基于色度的曲线,以及用于音频处理的频率响应曲线。 在色调曲线的情况中,通常将每个像素的图像分量值馈送到函数中, 并得到由该函数产生的新的分量值。在基于色度的曲线情况中,将 每个像素的色度馈送到函数中,并得到参数值,产生该参数值是为 了用于对像素的进一步处理。例如,可以使用色度来控制将像素变 为多亮或者多暗。最后,给定输入音频频率,频率响应曲线提供将 应用于音频频谱的该部分的增益量或者剪切量的指示。
作为单输入、单输出函数,这些函数可以通过相应的曲线来描
述,这些曲线被设计为将所有输入值映射至其相应的输出值。典型 的图像操纵应用允许用户直接通过规定曲线必须通过的一 系列点来 规定曲线。然而,通过点来规定曲线容易产生具有不期望性质的曲 线。例如,对于图像色调曲线,针对范围极值的裁剪通常将导致细 节的丢失和逆向运动(也即,减小曲线的截面),这将导致负感效
应(solarization effects )。 一些应用允许用户通过用于连续、有界参 数的一小组控制来操纵曲线,从而避免这一困境。由于基于点的曲 线实质上是为曲线生成过程指定参数,对于参数曲线而言,参数是 简单地从沿着函数图的位置抽取出来的。但是所抽取的参数的属性 可能使用户较难理解这些参数实际上是如何与曲线相关的。
背景技术:
本说明书描述与交互式图像操纵有关的技术。
总体上,本说明书中所描述主题的一个方面可以在一种方法中 实现,该方法包括接受选择参数曲线的参数的用户输入,该参数曲 线显示在图中。基于参数值的范围来确定该参数曲线的曲线范围。 将该参数的曲线范围显示在曲线图中。本方面的其他实施方式包括 相应的系统、装置和计算机程序产品。
这些以及其他实施方式可选地包括以下一个或多个特征。突出 显示与参数相对应的控制。用户输入是以下之一参数控制的指示, 图中区域的指示,或者图像中与曲线位置相对应的像素的指示。可
以接受修改参数值的用户输入。用户输入是鼠标手势(mouse gesture ) 和击键中的一个或多个。向上的鼠标手势增加参数值,而向下的鼠 标手势降低参数值。确定基于参数值的新曲线,并将其显示在图中。 该组曲线表示关于图中曲线的一个或多个区,曲线将根据不同的参 数值位于该区中。曲线是三次曲线的组合。参数控制曲线的斜率。 参数不与沿着曲线图的位置相对应。曲线确定图像的色调。
总体上,本说明书中所描述主题的一个方面可以实现在一个方
法中,该方法包括接受第一用户输入,其指明所显示的图中的区域, 或者指明与该区域对应的所显示的控制,该控制位于与该图分离的 显示区域中。响应于第一用户输入,自动地突出显示该区域和控制。 基于第二用户输入,自动调节与该控制相关联的值。此方面的其他 实施方式包括相应的系统、装置和计算机程序产品。
这些和其他实施方式可选地可以包括一个或多个以下特征。用 户输入是鼠标手势。向上的鼠标手势增加值,而向下的鼠标手势降 低值。手势输入投射(incident)在所显示的图上。所显示的图是直 方图。
可以实现本说明书中所描述主题的特定实施方式,以实现 一 个 或多个以下特征。曲线范围为用户提供了理解曲线参数将如何影响 参数曲线图的图形化方法,并且使用户 一看便知哪个参数控制是做 什么的,控制对图像的部分将具有多大影响,以及曲线目前有多接近给定参数的任一极值。用于参数曲线的用户界面简化了曲线调节 的复杂任务。与参数曲线图的用户交互自动地映射至基础参数。与 手动操纵曲线图上的点相比,更易实现对参数曲线的精细调节。
在下文的附图和描述中记载了本发明的一个或多个实施方式 的细节。根据说明书、附图和权利要求,本发明的其他特征、方面 和优点将变得易见。
本专利或者申请文件包含至少 一 副彩色附图。专利局将根据请 求以及所需费用的支付提供具有彩色附图的本专利或者专利申请公 开的副本。
图1示出了用于操纵参数曲线的用户界面。
图2A-图2G示出了参数曲线图中的曲线范围的显示。
图3是示出了显示曲线范围的方法的流程图。
图4A-图4B示出了对参数曲线参数的用户修改。
图5是示出了用于参数曲线参数的修改的方法的流程图。
图6A示出了用于根据与图的交互来改变参数值的用户界面。
图6B是用于根据与图的交互来改变参数值的方法的流程图。
图7示出了支持与参数曲线的用户交互的系统。
图8是通用计算机系统的示意图。
各图中类似的标号和名称表示类似的元素。
具体实施例方式
图1示出了用于操纵在图102中被示为曲线104的参数曲线的 图形用户界面(GUI) 100。尽管所示的参数曲线104是平面曲线, 包括空间曲线在内的其他参数曲线也是可能的。例如,空间曲线可 以表示在n维图中,并且投影到平面并在图102中表示。参数曲线 代表数据集的一个或多个变换。这种变换例如可以包括色调、频率 响应、透明度或者其他类型的变换,包括这些变换的组合。数据集
8可以是数字图像(例如,118;为了简短,将简称为"图像")中的 像素、音频数据或者其他类型的数据。除了图像之外,数据的其他 可视化表示也是可能的,诸如直方图106,其位于图102中的参数曲 线104之下,并且表示图像118中的颜色分布,越暗的颜色越靠近x 轴上的原点。
在一些实施方式中,参数曲线104表示图像色调。色调是颜色 明暗的测量。在这些实施方式中,图102表示图像118中颜色的输 入色调值(x轴)与输出色调值(y轴)。 一般地说来,色调曲线从 黑到白(或者从白到黑),并且总是上升的。例如,为45°直线的 参数曲线表示色调值没有改变。用户可以直接通过与参数曲线104 相关联的有界参数来操纵参数曲线104的形状,并由此操纵图像118 中颜色的色调。
特别地,对于需要对曲线104进行精细改变的任务,这通过允 许用户容易地操纵曲线10 4的分量而非必须显式地改变曲线形状(例 如,通过拖拽曲线上的点)(这可能无法给予用户其需要的控制) 来简化曲线调节的复杂任务。实际上,曲线的可能形状与图像118 的期望修改之间可能缺乏直观的关系。利用参数曲线的"简易"和 利用基于点的曲线的"困难,,的一个例子是在端点处使曲线接近 零斜率,而没有实际的过冲(overshooting)。产生平滑曲线(例如, 自然样条)的曲线拟合算法倾向于过冲。避免过沖的算法倾向于产 生较不平滑的曲线。
一般地,用户可以通过提供用户输入(例如,GUI控制之上或 者控制附近的一个或多个鼠标点击或者其他手势,击键,将光标定 位在控制之上或者控制附近,语音命令或者其他适当的输入)来"指 示"用户界面100中呈现的感兴趣的对象。与参数曲线104的用户 交互映射为 一 个或多个基础参数,可以修改该基础参数以改变曲线 104的形状。参数可以是曲线104函数的输入参数,曲线104函数的 输出参数,或者其组合。 一个或多个参数曲线参数映射至图102中 的可视区或者"区域,,。区域可以是任何形状或者大小,并非必须具有与给定参数曲线的其他区域相同的形状或大小,并且在参数空 间曲线的情况下可以具有多于两个维度。而且,区域可以重叠。
在图102中,存在4个区域,由矩形Rl、 R2、 R3和R4表示。 用户可以通过与图102中参数的相应区域进行交互、与对应于参数 的控制(例如,108a匿b、 110a-b、 112a-b和114a-b )进行交互、或者 与数据表示118进行交互来修改参数的值。用户界面IOO例如包括 诸如滑块(例如,108b、 110b、 112b和114b)的参数控制以及相应 的文本输入域(例如,108a、 110a、 112a和114a),以用于操纵参 数。每个控制108a-b、 110a-b、 112a-b和114a-b对应于图102中的 区域(并因此对应于色调参数)。控制108a-b对应于区域Rl,并允 许操纵与区域R1相关联的参数。类似地,控制110a-b对应于区域 R2,并允许操纵与区域R2相关联的参数,以此类推。在色调曲线 104的该示范中,控制108a-b允许对影响最暗颜色的色调的参数进 行操纵,而其余控制每个允许对影响渐亮的颜色的色调的参数进行 操纵,其中最亮颜色的色调由控制114a-b来影响。
在一些实现中,参数对应于三次曲线的斜率。例如,四个控制 (108a-b、 110a-b、 112a-b和114a-b )允许对四个不同三次曲线的斜 率进行修改,其中这四个不同三次曲线在级联函数中结合在一起, 以创建曲线104。通过示范方式,可以根据一个基本分量来构建在0 到1范围上操作的、区域友好的参数曲线将O..l映射至由0和1 处的斜率参数化的O..l的三次函数。如果0处的斜率为A且1处的 斜率为B,该功能可以定义如下
/(x, /}, g) = x * (( 1 —x) * (/1十x * ( 3 - S —J )) + x2)
为了避免逆向运动,可以限制A和B的范围,但是可用的范 围仍然相当大。
现在,考虑指定斜率C和D,并使用以下逻辑
g(x, C, £>) = if a- <= 0.5 then 0.5 2x, C, 1) else 0.5 + 0.5 2;c — 1, 1, Z))
换言之,使用从0到0.5、以从C到1的斜率结束的三次曲线, 继而使用从0.5到1、斜率为从1到D的另一三次曲线。曲线通过点(0, 0)、 (0.5, 0.5)和(1, 1)。继而可以利用在全域上#:作的另一三次(曲 线)对其进行级联,以得到
/j( i, C, A A D) =/(g( ;c, C, D )乂 S)
这得到了这样的曲线,其中A和B控制曲线的大规模响应, 而C和D控制曲线在每端处的弯曲。向范围的自然细分在0.25、 0.5 和0.75处分割曲线,以产生四个分别与C、 A、 B和D相关联的大
小相等的范围。
可以进一步通过注意以下事实来提供对向范围中细分的控制 如果函数p的反函数是q,并且如果p将位置y映射到0.5,贝'J
这给出了这样的函数,其在y处而不是0.5处的较低和较高范 围之间具有分割。可以插入类似的函数,并且将配对反向到用来应 用C和D的子范围函数,并且这些将得到曲线响应的扭斜,同时保 留端点处的实际斜率。只要斜率不变为零或者无穷,围绕曲线函数 缠绕p和q就将保持端点处的斜率不变。这符合微分的链锁法则以 及函数全部保留0和1的事实。
以下是一个这样的函数配对。为了将输入值y<0.5映射为0.5,
使用
alpha = ( 1 - 2》')/( 1 -力
/ (x ) = :i7 ( 1 - alpha * ( 1 - x ))
(X a- ) = 1 -((〗-a- ) / ( 1 - dpha * x ))
对于y〉0.5,使用类似的函数 beta = (2_y --.■ 1:) / y
/,(x) = 1 - ( ( 1 / (1 - beta * x )) (7(x)=x/(l—beta*(l—x))
因此,现在可以构造分割为四个分量(例如,标号为I, II, III 和IV)并且可以应用基于斜率的控制的曲线,其中控制的重点分别在分量I、 I和II、 III和IV以及IV上。
在一些实现中,对于图像色调曲线,期望使用可感知的统一色
调响应(例如,标准红、绿和蓝(sRGB)响应曲线)来呈现用户界 面100和曲线图102,同时仍然在具有其他色调响应(例如,线性响 应)的空间中执行实际的曲线数学。这以较为接近用户体验的形式 来呈现用户界面100项目,同时在较为接近地反映问题的实际物理 过程的空间中执行数学。
图2A-图2G示出了参数曲线图中曲线范围的显示。参数对应 于曲线的范围,该曲线是根据研究该参数的值的范围而得到的。曲 线的范围表示关于图102中的曲线104的一个或多个区,其中将给 出基于给定参数的不同值的所有可能的曲线。在空间曲线的情况下, 范围可以是两个或者更多维度。当用户例如通过指示参数控制(例 如,108b)来表示对参数感兴趣时,对应于该参数的范围例如自动 显示在图102中,如108c所示。这允许用户理解参数是如何影响曲 线104的以及参数可以达到的影响范围这二者。在一些实现中,用 户可以指明不止一个参数。例如,通过在按下键盘修改符的同时在 图上移动鼠标光标,用户能够指明不止一个区域,并由此指明不止 一个参数。然而,为了简便,通常按照单个参数来给出示例。
作为示范,如果用户将光标(例如,鼠标光标)定位在用户界 面IOO中由116a表示的区中,或者指明区116a中的参数控制108a-b, 与区116a中的控制相对应的参数的曲线108c的范围自动显示,如 图2B中的108c所示。而且,还可以例如通过改变控制的颜色或者 亮度来突出显示区116a中的控制。同样,如果用户将光标定位在图 102的区域R1中的任何位置(在此例中,其对应于同一参数),也 将显示曲线108c的范围。再一次,还将突出显示对应于该参数的控 制。以此,用户一看便知参数控制与其对曲线104的影响范围之间 的关系。用户例如可以通过在图102的不同区域上或者在不同的参 数控制上移动鼠标光标来立即查看这种关系。
在一些实现中,如果用户将光标置于数据点(例如,像素116b)之上,或者是指明数据表示118中的数据点,可以将数据点116b, 的值显示为曲线104上的点116b,并且自动显示与该点所在的图102 的区域(例如,Rl )相关联的曲线(例如,108c)的范围。还可以 突出显示与用于曲线范围的参数相对应的控制。在某种意义上,选 择数据点指明了图的区域、参数以及控制。在参数色调曲线的情况 下,曲线104示出了图像像素在色调空间中的位置。用户可以从数 据表示118(例如图像、图像颜色值的直方图、音频频语、音频数据 频率的直方图或者从任何其他适当的表示)选择数据,并且立即看 出该数据对应于曲线104的什么部分,以及如何修改曲线的该部分。 图2C-图2G提供了与用户界面IOO的用户交互的进一步示范。 在图2C中,用户通过在图102的区域R2中移动光标,或者通过将 光标移动到区域U6c或者指明区域116c中的控制,可以致使显示 曲线110c的范围以及突出显示控制110a-b。类似地,在图2D中, 用户通过在图102的区域R3中移动光标,或者通过在区域116d中 移动光标或者指明区域U6d中的控制,可以致使显示曲线112c的 范围以及突出显示控制112a-b。在图2E中,用户通过在图102的区 域R4中移动光标,或者通过在区域116e中移动光标或者指明区域 116e中的控制,可以致使显示曲线114c的范围以及突出显示控制 114a-b。
如图2F-图2G所示, 一些参数可能对整个曲线104的形状具 有影响。例如,亮度控制122a-b和对比度控制124a-b对应于可能对 整个曲线104具有影响的参数。亮度控制122a-b与具有曲线122c 的范围的参数相关联。对比度控制124a-b与具有曲线124c的范围的 参数相关联。在这种情况下,曲线124c的范围在沿着曲线104的不 同位置处位于当前曲线104之上和之下。
图3是示出了用于显示曲线范围的方法300的流程图。接受选 择参数曲线的参数的用户输入(步骤302 )。例如,用户可以通过如 下方式来这么做移动光标靠近或者指明参数控制(例如,112b), 在图102的区域内移动光标,或者指明数据集的表示118中的数据
13点。确定所选参数的曲线范围(步骤304 )。这可以临时确定或者提
前来确定。在曲线的图中显示曲线的范围(例如108c;步骤306 )。 可选地,突出显示能够修改参数的控制(例如112b;步骤308 )。
可以通过与图102、参数控制(例如,108a-b)或者数据表示 (例如,118)的用户交互来修改参数值。用户交互被映射为其值改 变的一个或多个参数。在某些实现中,用户可以通过用户界面100 来操纵参数控制。例如,可以向左或者向右移动滑块参数控制112b, 以分别指明滑块的相关联参数的较小值或者较大值。然而,诸如这 些的显式参数控制是可选的,因为用户也可以通过其他方式来修改 参数。
在其他实现中,可以将图102的区内的手势(例如,鼠标光标 移动)解释为修改与该手势所在的区域(例如,Rl)相关联的参数。 注意,这种手势并不"抓取"曲线104,该手势"抓取" 一个或多个 区域的基础参数。参考图2A,作为示例,通过在区域R1中向上或 者向下(或者向左或向右)拖拽鼠标光标,与区域R1相关联的参数 的值分别增加或者降低。备选地,还可以将位于图102之外的手势 解释为修改与图102的区域相关联的参数。例如,用户可以在鼠标 位于图区域之内时选择修改符键或者鼠标按钮,并继而在图区域之 外创建手势。通过在区域中的同时选择修改符键或者鼠标按钮,用 户将随后的鼠标手势同与该区域相关联的参数联系起来,直到松开 修改符键或者鼠标按钮。在一些实现中,数据表示118的区内的手 势(例如,鼠标光标移动)可以解释为修改与所选数据点(例如, 116b)所在的区域(例如,Rl)相关联的参数。
在一些实现中,当用户在曲线图102上移动光标时,可以突出 显示不同的区域,并且例如光标图标改变外观,以表明用户可以 垂直地点击拖拽鼠标来调节与该区域相对应的参数。当用户点击鼠 标按钮时,隐藏光标,并且将垂直移动映射为参数值的改变。用来 控制参数的移动的范围可以是任意的。特别地,对于基于点的曲线, 曲线的小移动必须通过小的、因此是不精确的鼠标移动来表示,与此不同,即使是小的改变也可以得到拖拽操作的足够精度。如果通 过水平拖拽来修改参数更为合适,也可以允许这样做。在其他实现 中,如果指明两个参数(例如,通过如上所述地选择不止一个图区 域或者参数控制),用户可以使用垂直手势来修改一个参数,而使 用水平手势来修改另一个。
上述针对图102和数据表示118描述的手势也可以通过键盘输 入或者其他用户输入来实现。例如,用户可以使用鼠标或者其他用 户输入设备来通过曲线区域机制指明参数,同时使用键盘来增加或 者减少参数。
图4A-图4B示出了参数曲线参数的用户修改。图4A示出了参 数曲线图102,其中曲线108c的范围沿着曲线104显示。曲线104 的当前形状粗略地通过曲线108c的范围的中心。例如通过调节与区 域Rl相对应的参数控制108a或者108b,用户可以在曲线108c的范 围的界限内改变曲线104的形状。在此示例中,通过将滑块108b向 中心左侧移动来降低图像118中最暗颜色的色调,由此使这些颜色 在图像118中看起来更暗。图4B示出了经修改的曲线104,其现在 位于曲线108c的范围的底部附近。
图5是示出用于修改曲线参数的方法500的流程图。接受修改 参数曲线(例如,图4A中的曲线104)的参数的用户输入(步骤502 )。 例如,如上所述,用户可以在用户界面100上执行鼠标手势或者与 参数控制(例如,108a或者108b)直接交互。根据修改的参数确定 新的曲线(步骤504 )。继而在图中显示新曲线(例如,图4B中的 曲线104;步骤506 )。
图6A示出了用于根据与图602的交互来改变参数值的用户界 面600。在一些实现中,用户可能希望通过与图进行交互而不是与 参数控制直接交互来修改参数值,而不考虑图是否表示参数函数。 可以将图的区分为一个或多个区域,其在交互时修改一个或多个与 之相关联的参数值。例如,图602是图像中输出颜色分布的直方图。 图602的区域604a与参数控制606a相关联。同样,区域604b与参
15数控制606b相关联,区域604c与参数控制606c相关联,并且区域 604d与参数控制604d相关联。如上所述,当用户例如在任一区域 604a-d中移动鼠标光标时,突出显示或者显示该区域,并且相应的 控制606a-d突出显示并且可以通过使用鼠标手势或者其他用户输入 来进行修改。区域无需是相同的大小和形状。在各种实现中,在直 方图上移动鼠标光标不改变其他图表中的参数色调曲线。相反,其 以其他方式参数式地改变图像,其继而可以通过直方图602中可见 的改变来反映。
图6B是示出了用于根据与图的交互来改变参数值的方法601 的流程图。接受用户输入,其指明所显示的图(例如,602)中的区 域(例如,604a)或者指明与区域相对应的所显示控制(例如,606a), 该控制位于与图相分离的显示区中(步骤603 )。继而,响应于用户 输入,自动地突出显示区域和控制(步骤605 )。基于其他用户输入 来修改与控制相关联的值(步骤607)。
图7示出了用于支持与参数曲线的用户交互的系统700。尽管 示出了多个组件,系统700中可以有更少或者更多的组件。而且, 组件可以分布在通过一个或多个网络或者其他适当的通信手段连接 的一个或多个计算设备上。用户可以通过计算机712或者其他设备 与系统700进行交互。例如,计算机712可以是局域网(LAN)或 者广域网(WAN)内的计算机终端。特别地,用户可以使用数字图 像管理和处理应用,例如来自加利福尼亚州圣何塞的Adobe System 7>司的Adobe Photoshop Lightroom。如上所述,用户可以通过与参 数曲线用户界面100的交互来操纵图像702b或者其他数据。用户界 面100由用户界面组件708生成,并由绘制组件710绘制在计算机 712的显示设备上。与用户界面100的交互由用户输入检测器组件 706接收,用户输入检测器组件706将输入提供给用户界面组件708 以供处理。用户界面组件708更新用户界面100以反映用户输入, 例如通过显示曲线的范围以及突出显示参数控制。如果用户已经修 改了控制颜色色调的参数功能的参数,用户界面组件708还可以向色调调节组件704 (或者其他适当的组件)发出信号。色调调节组件
704继而更新输入图像702a中的色调,输入图像702a继而被提供给
绘制组件710并被绘制为图像702b。
图8是通用计算机系统800的示意图。系统800可以用于实践
结合方法300、 500、 601以及系统700描述的操作。系统800可以
包括处理器810,存储器820,存储设备830,以及输入/输出设备840。
组件810、 820、 830和840中的每一个使用系统总线850互连。处
理器810能够处理用于在系统800内执行的指令。例如,这种所执
行的指令可以实现系统700的一个或多个组件。在一个实现中,处
理器810是单线程处理器。在另一实现中,处理器810是多线程处
理器。处理器810能够处理存储在存储器820中或者存储设备830
上的指令,以便在输入/输出设备840上显示用于用户界面的图形信 自、
("、o
存储器820是存储系统800内的信息的计算机可读介质,例如 易失性或者非易失性随机访问存储器。存储器820例如可以存储表 示数字图像数据和参数曲线参数的数据结构。存储设备830能够为 系统800提供永久存储。存储设备830可以是软盘设备、硬盘设备、 光盘设备或者磁带设备或者其他适当的永久存储装置。输入/输出设 备840为系统800提供输入/输出操作。在一个实现中,输入/输出设 备840包括键盘和/或指点设备。在另一实现中,输入/输出设备840 包括显示单元,用于显示图形用户界面。
输入/输出设备840可以为系统700提供输入/输出操作。系统 700可以包括如上所述的计算机软件组件。这种软件组件的例子包括 用户输入检测器706、用户界面708、绘制组件710以及色调调节组 件704,这些仅仅是几个例子。
本说明书中描述的主题和功能性操作的实施方式可以在数字 电子电路中实现,或者在计算机软件、固件或硬件中实现,该计算 机软件、固件或硬件包括本说明书中公开的结构及其等同结构,或 是在它们的 一个或多个的组合中实现。本说明书中描述的主题的实施方式可以实现为一个或多个计算机程序产品,也即,在计算机可 读介质上编码的、以便由数据处理装置执行或控制数据处理装置操 作的 一 个或多个计算机程序指令模块。有形程序载体可以是传播的 信号或者计算机可读介质。传播信号是人工产生的信号,例如,机 器产生的电信号、光信号或者电磁信号,生成该信号以对信息进行 编码,以便传输到适当的接收器装置。计算机可读介质可以是机器 可读的存储设备、机器可读的存储衬底、存储设备、实现计算机可 读的传播信号的组合、或者它们中 一个或多个的结合。
术语"数据处理装置"包括用于处理数据的所有装置、设备和 机器,例如包括可编程处理器、计算机,或者多个处理器或计算机。 除了硬件之外,该装置可以包括为考虑中的计算机程序创建执行环 境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操 作系统、跨平台运行时环境,或者它们中一个或多个的结合的代码。 传播信号是人工生成的信号,例如机器生成的电信号、光信号或者
电磁信号,生成该信号来编码信息,以便传输至适当的接收机装置。 计算机程序(也公知为程序、软件、软件应用、脚本或代码) 可以由任意形式的编程语言编写,包括编译语言或解释语言,说明 性语言或过程语言,并且该计算机程序可以任意形式部署,包括部 署为单独的程序或模块、组件、子例程,或者适于在计算环境中使 用的其他单元。计算机程序无需对应于文件系统中的文件。程序可 以存储在保存其他程序或数据(例如,存储在标记语言文档中的一 个或多个脚本)的文件的一部分中、可以存储在专门用于考虑中的 程序的单个文件中,或者存储在多个协同文件中(例如,存储一个 或多个模块、子程序,或代码部分的文件)。可以将计算机程序部 署为在一个计算机上执行,或者将其部署为在位于一个地点的多个 计算机上执行或跨过多个地点分布且通过通信网络互连的多个计算 机上执行。
本说明书中描述的处理和逻辑流程可以由执行一个或多个计 算机程序的 一 个或多个可编程处理器执行,用于通过对输入数据进行操作以及产生输出来执行功能。该处理和逻辑流程还可以由例如
FPGA (现场可编程门阵列)或ASIC (专用集成电路)的专用逻辑 电路执行,并且也可以将装置实现为所述专用逻辑电路。
适于计算机程序执行的处理器例如包括通用和专用处理器两 者、以及任意类型的数字计算机的任意一个或多个处理器。通常, 处理器将从只读存储器或随机访问存储器或两者处接收指令和数 据。计算机的基本元件是用于执行指令的处理器以及用于存储指令 和数据的一个或多个存储器设备。通常,计算机还将包括用于存储 数据的一个或多个海量存储设备,或被操作性地耦合为从所述用于 存储数据的一个或多个海量存储设备接收数据、向其传送数据、或 者进行两者,该海量存储设备例如磁盘、磁光盘、或光盘。然而, 计算机不必一定具有这样的设备。而且,计算机可以嵌入在其他设 备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播 放器、全球定位系统(GPS)接收器、或者便携式存储设备(例如,
通用串行总线(USB)闪存驱动),这仅是几例。适于存储计算机 程序指令和数据的计算机可读介质包括所有形式的非易失性存储
器、介质和存储设备,例如包括半导体存储设备,如EPROM、 EEPROM和闪存设备;磁盘,如内部硬盘或可移动硬盘;磁光盘; 以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电 路补充或是包括在专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施方式可 以在具有用于向用户显示信息的显示设备以及用户可以通过其向计 算机提供输入的键盘和指点设备的计算机上实现,其中显示设备例 如CRT (阴极射线管)或者LCD (液晶显示器)监视器,指点设备 例如鼠标或者轨迹球。也可以使用其他类型的设备来提供与用户的 交互;例如,提供给用户的反馈可以是任何形式的感观反馈,例如 视觉反馈、声觉反馈、或者触觉反馈;并且可以接收来自用户的任 意形式的输入,包括声音、语音或触觉输入。
用户界面可以从例如鼠标、估计球、拨盘、触摸板、键盘、麦
19克风、视频相机、能够测量用户心理变化的设备或者其组合接收用 户输入。作为另一例子,用户输入可以包括鼠标手势、拨盘移动、 击键、声音、口头命令、脸部表情、眼睛移动、脑电波或者其组合。 数字图像未必对应于文件。图像可以存储在保存其他图像的文 件的部分中,存储在专门用于所考虑图像的单个文件中,或者存储 在多个协作文件中。而且,图像可以存储在存储器,而无需首先存 储在文件中。
本说明书中描述的主题的实施方式可以实现在包括后端组件
的计算系统中,例如数据服务器;或实现在包括中间件组件的计算 系统中,例如应用服务器;或实现在包括前端组件的计算系统中, 例如具有图形用户界面或者W eb浏览器的客户端计算机,用户通过 该图形用户界面或Web浏览器可以与本说明书中描述的主题的实现 进行交互;或实现在一个或多个这样的后端、中间件、或前端组件 的任意结合中。系统组件可以与任意形式或介质的数字数据通信(例 如,通信网络)互连。通信网络的示例包括局域网("LAN"), 广域网("WAN"),例如,互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般相互 远离,并且通常通过通信网络进行交互。客户端和服务器的关系是 借助于在各自计算机上运行的、彼此具有客户端-服务器关系的计算 机程序得到的。
尽管本说明书包含多种特定细节,但是不应将其理解为是对本 发明的范围或者所要求保护内容的限制,而应当理解为是本发明具 体实施方式的特定特征的描述。本说明书中描述的在各个实施方式 的上下文中的某些特征也可以在单个实施方式中结合实现。相反, 在单个实施方式上下文中描述的各种特征也可以分别实现在多个实 施方式中或者任意适当的子组合中。而且,尽管上文可能将特征描 述为在特定的组合中操作,甚至初始也是这样要求保护的,但是来 自所要求保护的组合的一个或多个特征在一些情况下可以从该组合 中去除,并且所要求保护的组合可以针对子组合或组合的变形。类似地,尽管在附图中以特定的顺序描述操作,但是不应将其 理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或 是要求执行全部所示的操作以得到期望的结果。在特定环境中,多 任务和并行处理可能是有利的。而且,在上述实施方式中多个系统 组件的分离不应被理解为在所有实施方式中需要这些操作,应当将 其理解为所描述的程序组件和系统通常可以在单个软件产品中集成 在一起,或是被打包到多个软件产品中。
这样,已经描述了本发明的具体实施方式
。其他实施方式位于 所附权利要求的范围内。例如,权利要求中记载的动作可以按照不 同的顺序执行,并仍能实现期望的结果。
权利要求
1.一种计算机实现的方法,包括接受选择参数曲线的参数的用户输入,所述参数曲线显示在图中;根据所述参数的值的范围来确定所述参数曲线的曲线范围;以及在所述曲线的图中显示所述参数的所述曲线范围。
2. 如权利要求l的方法,进一步包括 突出显示与所述参数相对应的控制。
3. 如权利要求l的方法,其中所述用户输入是以下之一 参数控制的指示,所述图中区域的指示,或者图像中与所述曲线上的位置相对应的像素的指示。
4. 如权利要求1的方法,进一步包括 接受修改所述参数的值的用户输入。
5. 如权利要求4的方法,其中所述用户输入是以下一个或多个 鼠标手势或者击键。
6. 如权利要求5的方法,其中向上的鼠标手势增加所述参数的值,而向下的鼠标手势降低所 述参数的值。
7. 如权利要求4的方法,进一步包括 基于所述参数的所述值来确定新曲线;以及 在所述图中显示所述新曲线。
8. 如权利要求l的方法,其中所述曲线范围表示关于所述图中的所述曲线的一个或多个区, 所述曲线将根据所述参数的不同值而位于所述区中。
9. 如权利要求l的方法,其中 所述曲线是三次曲线的组合。
10. 如权利要求9的方法,其中所述参数控制所述曲线的斜率。
11. 如权利要求l的方法,其中所述参数不与沿着所述曲线的所述图的位置相对应。
12. 如权利要求1的方法,其中 所述曲线确定图像的色调。
13. —种计算机实现的方法,包括接受第一用户输入,其指明所显示的图中的区域,或者指明与 所述区域相对应的所显示控制,所述控制位于与所述图分离的显示 区中;响应于所述第一用户输入,自动突出显示所述区域和所述控制; 基于第二用户输入自动调节与所述控制相关联的值。
14. 如权利要求13的方法,其中 所述第二用户输入是鼠标手势。
15. 如权利要求14的方法,其中向上的鼠标手势增加所述值,而向下的鼠标手势降低所述值。
16. 如权利要求13的方法,其中 所述第二用户输入投射在所述所显示的图上。
17. 如权利要求13的方法,其中 所述所显示的图是直方图。
18. —种编码在计算机可读介质上的计算机程序产品,其可操作 以使得数据处理装置执行操作,所述操作包括接受选择参数曲线的参数的用户输入,所述参数曲线显示在图中;根据所述参数的值的范围来确定所述参数曲线的曲线范围;以及在所述曲线的所述图中显示所述参数的所述曲线范围。
19. 如权利要求18的程序产品,进一步包括以下操作 突出显示与所述参数相对应的控制。
20. 如权利要求18的程序产品,其中所述用户输入是以下之一:参数控制的指示,所述图中区域的指示,或者图像中与所述曲 线上的位置相对应的像素的指示。
21. 如权利要求18的程序产品,进一步包括 接受修改所述参数的值的用户输入。
22. 如权利要求21的程序产品,其中所述用户输入是以下一个 或多个鼠标手势或者击键。
23. 如权利要求22的程序产品,其中向上的鼠标手势增加所述参数的值,而向下的鼠标手势降低所 述参数的值。
24. 如权利要求21的程序产品,进一步包括 基于所述参数的所述值来确定新曲线;以及 在所述图中显示所述新曲线。
25. 如权利要求18的程序产品,其中所述曲线范围表示关于所述图中的所述曲线的一个或多个区, 所述曲线将根据所述参数的不同值而位于所述区中。
26. 如权利要求18的程序产品,其中 所述曲线是三次曲线的组合。
27. 如权利要求26的程序产品,其中 所述参数控制所述曲线的斜率。
28. 如权利要求18的程序产品,其中 所述曲线确定图像的色调。
29. —种编码在计算机可读介质上的计算机程序产品,其可操作 以使得数据处理装置执行操作,所述操作包括接受第一用户输入,其指明所显示的图中的区域,或者指明与 所述区域相对应的所显示控制,所述控制位于与所述图分离的显示区中;响应于所述第一用户输入,自动突出显示所述区域和所述控制;以及基于第二用户输入自动调节与所述控制相关联的值。
30. 如权利要求29的程序产品,其中 所述第一用户输入是鼠标手势。
31. 如权利要求30的程序产品,其中向上的鼠标手势增加所述值,而向下的鼠标手势降低所述值。
32. 如权利要求30的程序产品,其中 所述鼠标手势投射在所述所显示的图上。
33. 如权利要求29的程序产品,其中 所述所显示的图是直方图。
34. —种系统,包括装置,用于接受选择参数曲线的参数的用户输入,所述参数曲 线显示在图中;装置,用于根据所述参数的值的范围来确定所述参数曲线的曲 线范围;以及装置,用于在所述曲线的所述图中显示所述参数的所述曲线范
全文摘要
公开了一种方法,程序产品和系统,用于接受选择参数曲线的参数的用户输入,所述参数曲线显示在图中。根据所述参数的值的范围来确定所述参数曲线的曲线范围。以及在所述曲线的图中显示所述参数的曲线范围。
文档编号G06T11/20GK101583973SQ200780039118
公开日2009年11月18日 申请日期2007年9月6日 优先权日2006年9月7日
发明者B·A·齐布尔, M·哈姆伯格, T·A·高尔 申请人:奥多比公司