CN108369486B - 通用涂墨支持 - Google Patents

通用涂墨支持 Download PDF

Info

Publication number
CN108369486B
CN108369486B CN201680070376.7A CN201680070376A CN108369486B CN 108369486 B CN108369486 B CN 108369486B CN 201680070376 A CN201680070376 A CN 201680070376A CN 108369486 B CN108369486 B CN 108369486B
Authority
CN
China
Prior art keywords
displayed
ink
display
frame
executing application
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.)
Active
Application number
CN201680070376.7A
Other languages
English (en)
Other versions
CN108369486A (zh
Inventor
S·拉贾桑卡
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing 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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN108369486A publication Critical patent/CN108369486A/zh
Application granted granted Critical
Publication of CN108369486B publication Critical patent/CN108369486B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/04162Control or interface arrangements specially adapted for digitisers for exchanging data with external devices, e.g. smart pens, via the digitiser sensing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03545Pens or stylus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/171Editing, e.g. inserting or deleting by use of digital ink
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/20Linear translation of whole images or parts thereof, e.g. panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/37Details of the operation on graphic patterns
    • G09G5/377Details of the operation on graphic patterns for mixing or overlaying two or more graphic patterns

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

公开了使用和跟踪用于应用于计算设备的应用的涂墨输入的示例。一种示例计算设备包括显示器,被配置为接收涂墨输入的输入传感器,处理器,以及存储指令的存储设备,所述指令能由所述处理器执行以从正在执行的应用接收指示所述正在执行的应用的显示的内容的视觉帧,并至少基于经由所述输入传感器接收的涂墨输入在所述显示器的第一位置上呈现显示的墨水。所述指令进一步能执行以至少基于来自所述正在执行的应用的视觉帧中的两个或更多个视觉帧的比较来检测所述正在执行的应用的所述显示的内容的改变,至少基于所述显示的内容的改变来确定所述显示的墨水在所述显示器上的第二位置,并在所述显示器的所述第二位置中呈现所述显示的墨水。

Description

通用涂墨支持
背景
一些计算设备可以具有触敏显示器或其他界面以允许对所显示的内容的直接输入。直接输入可以经由用户的手、触控笔/笔或其他工具来执行。由计算设备执行的应用可以以不同方式对直接输入做出反应。
概述
公开了用于支持应用于计算设备的任何应用的涂墨(inking)输入的使用的示例,即使该应用不包括对涂墨输入的原生支持。一种示例计算设备包括被配置为呈现用户界面的显示器,输入传感器,所述输入传感器被配置为接收针对所述用户界面的涂墨输入,所述涂墨输入包括笔输入和基于手的输入中的一者或多者,处理器,以及存储指令的存储设备,所述指令能由所述处理器执行以从正在执行的应用接收指示所述正在执行的应用的显示的内容的视觉帧,并至少基于经由所述输入传感器接收的涂墨输入在所述显示器的第一位置上呈现显示的墨水。所述指令进一步能执行以至少基于来自所述正在执行的应用的视觉帧中的两个或更多个视觉帧的比较,检测所述正在执行的应用的所述显示的内容的改变,至少基于所述显示的内容的改变来确定所述显示的墨水在所述显示器上的第二位置;以及经由所述显示器在所述显示器的所述第二位置中呈现所述显示的墨水。
提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,所要求保护的主题不限于解决在本公开的任一部分中所提及的任何或所有缺点的实现。
附图简述
图1示出了接收到显示的应用的墨水输入的计算设备的示例。
图2A至3D示出了响应于应用的显示的内容的改变而对应用上显示的墨水的呈现的调整。
图4示出了提供通用涂墨支持的计算设备中的示例处理组件的框图。
图5示出了应用窗口处理和通用墨水覆盖处理的示意表示。
图6是呈现和更新应用上方的墨水的呈现的示例方法的流程图。
图7A和7B示出了应用于应用的高度易失性显示内容时的墨水的呈现。
图8是示例计算设备的框图。
详细描述
计算设备可以包括能够接收用于涂墨(例如注释)显示内容的笔或其他触摸输入的数字化仪和/或其他输入传感器或控制器。然而,典型地,只有计算设备执行的应用的子集可以被配置为原生支持这种涂墨。例如,设备可执行的应用中仅一些应用(或者在一些情况下没有应用)可以包括接收、解释、跟踪和/或呈现所显示的墨水作为涂墨输入的表示的功能。相应地,对于此类设备,用户可能没有能力或仅有有限的能力来注释在设备上显示的内容。
在解决上述限制的一些先前尝试中,可以在计算设备上提供单独的涂墨模式,以便捕捉针对设备的任何涂墨输入。在这样的示例模式中,涂墨输入的表示可以被显示为独立于底层应用的层。可以捕获显示的应用的当前状态以及覆盖显示的应用的墨水的当前状态的屏幕截图,以便保存墨水的记录。然而,墨水可能不以动态方式与应用或应用的显示的特征相关联。相应地,在用户滚动/平移、缩放、旋转或以其他方式改变应用中显示的内容时,墨水可能不会以随对显示内容的改变而改变的方式更新。典型地提供墨水以便注释特定的显示内容,或者以其它方式与底层内容具有空间关系。相应地,应用内容和显示的墨水之间的这种对跟踪的缺乏可能降低用户体验。此外,用户可能被要求人工进入专门的涂墨模式,从而限制了自发注释的机会。
本公开提供了用于解决上述问题的系统的几乎任何应用和方法的通用涂墨支持。例如,在接收涂墨输入并响应于涂墨输入呈现显示的墨水之后,设备可以监视涂墨输入所针对的应用窗口,以便检测对显示的内容的改变。响应于检测到这些改变(例如,平移、滚动、缩放、内容的插入/删除、旋转等),本公开的系统和方法调整显示的墨水的位置以便使墨水与底层应用中的显示的内容的正确位置重新对齐。附加特征将在下面更详细地描述。以这种方式,用户可以简单地在任何时间并且向任何应用(例如,经由笔/手写笔、手/手指和/或其他输入机构)开始提供涂墨输入以注释系统的显示的内容。
图1示出了示例计算设备100,其被配置为接受用于涂墨在设备上执行和/或显示的应用的基于笔和/或手/手指的触摸输入。计算设备100包括显示器102,其被图示为呈现应用的用户界面104。所图示的示例示出了电子表格应用,然而任何合适的应用可以被经由显示器呈现并且如所描述的涂墨。用户界面104可以包括应用的所有显示的内容和/或应用的显示的内容的一部分(例如,在用户界面对应于应用的应用窗口的情况下,另一应用窗口可以提供相同应用的显示的内容的不同部分)。如本文所使用的,用户界面还可以指在显示器上呈现的所显示或可显示的内容的全部或一部分(例如,用于操作系统和/或用于任何正在执行的应用的用户界面)。所图示的示例还将计算设备100描绘为平板、智能电话或类似的移动设备。然而,计算设备100可以涵盖能够从输入设备接收涂墨输入的任何设备。例如,计算设备100可以包括台式或膝上型计算机、头戴式计算设备和/或包括/通信地耦合到跟踪板、鼠标、相机(例如,用于识别姿势)、话筒(例如,用于识别语音命令)和/或其他合适输入设备的其它设备。上述输入设备中的任一者可用于提供涂墨输入以生成本文所述的涂墨。在另一示例中,计算设备100可以包括具有用于协作活动的集成触摸传感器、数字化仪和/或其他输入传感器的大幅面和/或壁挂式显示器。
图1中图示了用户的手106,该手持有输入设备108。尽管在图1的示例中笔/手写笔被图示为输入设备108,但是可以利用包括手指或其他合适物体的任何合适输入设备以向计算设备100提供涂墨输入。输入设备108被示为以标记应用的显示的特征(例如,圈出“b”)和书写笔记(例如,文本“Important(重要)!”)的形式向用户界面104提供涂墨110。如本文所使用的,术语墨水或涂墨可以指对显示的内容(诸如图1中图示的那些注释)或者在显示器上呈现的其他内容的注释以表示由输入设备所做出的标记/笔划。这种墨水可以包括手绘形状、连接器/箭头、手写文本和/或作为经由输入设备提供的涂墨输入的表示呈现的其他合适可显示元素。在所图示示例中,可以经由直接触摸输入(例如,从手指、笔/触控笔或其他输入设备)向与显示器102集成的触敏传感器提供涂墨输入。在其他示例中,涂墨输入可以通过另一合适方式提供,包括但不限于:在显示器的阈值距离内的悬停输入,到耦合到计算设备的图形输入板或其他书写表面的基于笔或手指/手的触摸输入,由相机捕获的姿势输入或其它邻近度传感器,鼠标输入,语音命令等。在向输入传感器(例如,数字化仪)提供涂墨输入的示例中,输入传感器可以被配置为使用电容、光学、声学、基于压力的和/或其它物理或邻近度触摸检测技术来检测涂墨输入。
图2A和图2B示出了可以响应于向其应用涂墨的底层应用的改变而改变涂墨的方式。特别而言,作为示例,图2B示出了在经由用户的手106接收到触摸输入以垂直滚动或平移应用之后的图2A的正在执行的应用。如图所示,在滚动/平移操作期间,电子表格的行向上移位。以这种方式,应用的视觉状态响应于滚动/平移姿势/触摸输入而改变。类似地,涂墨110向上移动以保持其中条目“b”被圈出的位置(在图示示例中)。例如,可以通过确定涂墨的初始位置、确定底层应用内容的位置的改变,且然后确定涂墨可响应于底层应用内容的改变而移动到的经更新位置来跟踪涂墨110相对于底层应用内容的位置。如上所讨论的,为不原生地支持涂墨的应用提供涂墨支持的其他方法不能跟踪应用的显示的内容的改变,因此涂墨保持在其原始位置。例如,在提供涂墨支持的此类其他方法中,涂墨110的圈将大致定位在电子表格中的“d”附近,而不是如图所示的“b”附近。相应地,这些其他方法可能不允许涂墨被输入且随着相关联的应用被动态跟踪。
图3A至3D示出了即使在涂墨和应用的相关联的显示的内容移出屏幕之后计算设备100也跟踪涂墨310的位置的示例。在图3A中,示出了在电子表格的顶行中圈出电子表格元素“x”的涂墨310。响应于来自用户的手106的向下滚动应用的显示的内容(例如,向上平移内容)的输入,电子表格的顶行(连同两个其他行)被移动到应用的显示的区域外,如图3B中的虚线所示。相应地,包括涂墨310的此内容不再显示在图3B中。然而,可存储内容和关联的涂墨以便贯穿对应用内容的将来改变继续跟踪涂墨。例如,可以存储涂墨和位于涂墨附近的经渲染的应用内容的区分性视觉特征之间的关联,并将其与应用内容的显示的特征进行比较,以便检测与涂墨相关联的内容的再次出现。此外,即使当该位置落在应用窗口的可视范围之外时,计算的涂墨位置也可被不断更新。
图3C示出了在滚动/平移输入被发起以便向上滚动/向下平移应用中的显示的内容时显示与图3B相同的内容的计算设备100。在图3D处,完成滚动/平移输入,使得涂墨310所应用的行再次可见。由于如上所述即使在涂墨310在屏幕外时仍持续跟踪显示的内容的移动,因此与电子表格的相关联的行回到视图中相联系地再次显示涂墨。在一些示例中,如图3A所示的包括涂墨的应用的显示的内容的快照(或者如在图3A和图3B所示的视图之间的滚动/平移期间的某点处所示)可以被保存到文件以供稍后检索。例如,可以将涂墨保存在多个增量快照中,从而可以重新创建涂墨会话(例如,以视频或动画格式)。下面将参考图4-6更详细地描述允许在不原生支持涂墨的应用中的上述涂墨行为的处理。
图4示出用于处理计算设备的应用的涂墨输入的示例处理流程图400。例如,图4中图示的处理块和数据流可被包括在图1至图3C的计算设备100和/或任何其他合适计算设备中和/或由其执行。如图所示,由硬件输入接口(例如,数字化仪、触摸传感器和/或其他输入传感器)检测到的涂墨输入(例如笔输入)被提供给操作系统输入处理模块402。操作系统输入处理模块402确定涂墨输入针对的应用404是否原生支持这种涂墨输入。例如,操作系统输入处理模块402可以确定哪个应用具有焦点(即,多个应用窗口中的哪个应用窗口包含光标并且正被主动使用),比较涂墨输入相对于一个或多个显示的应用窗口的位置,和/或执行任何其它合适分析以确定涂墨输入针对哪个应用。
如果墨水接收应用404原生支持涂墨输入,则操作系统输入处理模块402将涂墨输入直接发送给应用以供应用处理。例如,操作系统输入处理模块可在将涂墨输入传递给应用之前完全不修改该涂墨输入,或者可能仅执行某种相对最小化处理(例如,编码、解码等)以帮助应用接收/解释涂墨输入。然后,应用可以处理涂墨输入并更新应用视觉406以包括涂墨输入。
如果墨水接收应用404原生不支持涂墨输入,则操作系统输入处理模块402可以将涂墨输入发送到通用墨水管理组件408。通用墨水管理组件408可以基于涂墨输入并响应于涂墨输入生成来显示的墨水输出。涂墨可被渲染在通用墨水覆盖层410上,通用墨水覆盖层410覆盖在应用视觉406上。
为了确保如上关于图1至3D所述调整涂墨输入,通用墨水应用视觉分析组件412可评估应用视觉406的帧以检测其上的显示的内容的改变。例如,来自应用视觉406的顺序应用视觉帧可被提供给视觉分析组件412(例如与来自通用墨水覆盖层410的显示的墨水一起或与之分开地)以供分析。该分析可以包括比较来自应用视觉的顺序帧(例如,一个接一个地发送的连续不间断帧,或者从以特定频率或不定期地传送的帧组中选择的帧),以便检测通用墨水覆盖层下的应用视觉的改变。视觉分析组件412可以使用来自中央处理单元(CPU)和图形处理单元(GPU)中的一个或两个的核,和/或任何其他合适处理资源,经由硬件和/或软件来被实现。
可被检测的改变的示例包括平移或滚动(例如平移运动)、旋转运动、缩放(例如,调整大小)、内容插入/删除(例如,其导致视觉上的其他内容的移动)、分辨率/颜色/透明度改变、和/或应用视觉406的全部或部分的外观或位置中的其他变更。由于覆盖应用的墨水可以与所渲染的应用内容的一个或多个区别性视觉特征相联结,检测内容的改变可使得墨水的位置/外观能够被调整以跟踪这种改变并且保持墨水和内容之间的关联性。在一些示例中,可以检测导致这样的改变(例如,由用户提供的滚动输入)的输入并将其传递给处理流程图400中的视觉分析组件412和/或另一合适处理组件,以便触发分析和/或引导分析(例如,分析以确定正在发生什么类型的运动/改变以及发生多少运动/改变,使得显示的墨水可以根据这种运动/改变而被适当变换)。例如,指示向下滚动命令的输入可以引导视觉分析组件从应用视觉中寻找视觉帧中的平移改变。在其他示例中,来自应用(例如,应用404或影响应用视觉406的外观的另一应用)的命令可以转发可导致应用视觉406的改变的命令的指示。在又一些其他示例中,视觉分析可在不知晓导致应用视觉的改变的输入的情况下执行。
视觉分析组件412可以使用任何合适的分析或分析工具组合来检测应用视觉406的帧之间的改变。在用于评估经由显示器呈现的帧之间的改变的示例光学流分析中,视觉分析组件412可以对视觉帧应用空间滤波或其他调整,以促进视觉帧内的显示内容的改变的检测。例如,对帧的调整可强调显示的对象的边缘,以使边缘能被更容易地标识,和/或以其他方式增强/减少帧的特征以促进帧之间的差异计算。在光学流分析期间或之后,视觉分析组件412可以应用一个或多个计算机视觉或相关算法来检测和确定应用视觉帧之间的改变的属性。算法可包括加速稳健特征(SURF)、尺度不变特征变换(SIFT)、斑块检测、边缘检测、角点检测和/或任何其他合适的视觉分析工具。在一些示例中,视觉分析组件412可执行第一光学流计算以确定两个应用视觉帧之间的改变量(例如,从一帧到下一帧的显示的内容的移动量或缩放量)。视觉分析组件412然后可以应用模板匹配或其他特征描述分析以便定位每个帧中的特征点并且测量那些特征点的位置/外观之间的改变。在一些示例中,视觉分析组件412可以定位与通用墨水覆盖物410中的墨水的位置相关联的特征点。在一些示例中,模板匹配或其他特征描述可被用于增强光学流分析(例如,其可以仅粗略地检测显示的帧中的特征的移动)和/或代替光学流分析使用。
通用墨水应用视觉分析组件412可以向通用墨水管理组件408发送指示应用视觉帧中的所确定的改变和/或改变矩形的数据(例如,帧中所确定的改变量的指示符,诸如作为从帧中检测的改变确定的滚动偏移量的度量)。通用墨水管理组件408可以基于(例如,如从视觉分析组件412接收的)对墨水下的应用视觉的视觉分析来生成指令和/或向通用墨水覆盖层410和/或相关渲染器发送指令以调整墨水的可见性、缩放、位置和/或其他可见特征。
视觉分析组件412还可以将其他视觉分析结果发送给其他视觉分析组件414或相关处理模块。例如,视觉分析组件412可以检测呈现墨水的显示的内容的类型(例如,文本框)。这样的检测可被另一视觉分析组件414用来基于来自视觉分析组件412的输入触发自动化过程(例如,自动化墨水到文本输入转换)。
图5示意性地描绘了计算设备504的用户界面502的应用窗口和通用墨水覆盖层的处理和渲染。如图所示,应用可以使用不同的技术产生屏幕上的视觉内容。相应地,通用涂墨可能不像使用或不使用基于计算机视觉的输出帧分析将基础支持添加到单个演示系统那样简单。相反,由本公开提供的通用涂墨在下游对来自这些不同渲染系统的输出视觉工作,以向所有应用提供涂墨支持。
组件506表示可用于生成按所示方式由合成器508渲染的关联应用窗口的处理组件/技术。合成器508是设备504的操作系统的组件。合成器可以保持每个应用的帧/纹理并且将其合成以生成用户看到的最终视觉帧。合成器具有每个应用的视觉帧,且知道视觉帧何时更新。合成器也是可以从其获得用于分析的视觉帧(例如,提供给图4的视觉分析组件412)并且可以在其中添加通用涂墨层(例如图4的通用墨水覆盖层410)的地方。本文示出的是每个窗口(例如,窗口512)或者子窗口(例如,子窗口514)一个涂墨层(例如,层510a或510b);其他实现可以为整个屏幕使用一个涂墨层,以取代个体涂墨层的或附加于个体涂墨层。此外,在一些示例中,多个涂墨层可被用于单个窗口(例如,每个涂墨层对应于窗口的不同区域,其中在一些示例中可基于区域中显示的内容的类型来指定不同区域)。
在所描绘的示例中,由合成器508合成的层最终被渲染为由设备504呈现的用户界面502内图示的各种窗口和相关联的显示的内容。例如,由于仅应用Z(窗口516)具有存在涂墨的关联通用墨水覆盖层518,只有应用Z具有显示在设备504的显示器中的关联应用窗口上的涂墨。
图6是用于显示和调整应用到计算设备上的应用的墨水的方法600的流程图。方法600可以由包括但不限于图1至3D的计算设备100和/或包括图4和5中图示的处理组件的计算设备的任何合适计算设备来执行。在602处,示例方法包括从正在执行的应用接收视觉帧。例如,视觉帧可指示正在执行的应用的显示的内容。
在604处,该方法包括接收涂墨输入。例如,涂墨输入可包括对显示器做出的触摸输入(如在606处所指示的),和/或与对应用涂墨相关联的任何其他合适输入。在608处,该方法包括在显示器的初始位置上显示对应于涂墨输入的墨水。例如,如果经由输入传感器/数字化仪检测到涂墨输入,则显示的墨水可被呈现在显示器的与接收涂墨输入的位置相对应的位置处,如610所指示的。
在612处,该方法包括比较两个或更多视觉帧。例如,该比较可以包括:执行光学流分析,如614所指示的;模板匹配(例如,其中通过使用诸如绝对差之和的技术来捕捉和匹配位图),如616所指示的;特征点检测(例如,其中标识区别性特征并为该特征构建描述符),然后使用计算机视觉算法(例如SIFT/SURF)在下一帧上搜索该区别性特征,如617所指示的,和/或任何其他分析,以确定应用窗口的外观和/或其中呈现的显示的内容的改变。该比较可以包括:针对第一帧,确定1)第一帧中的一个或多个感兴趣点,以及2)当显示的墨水被呈现为第一帧的覆盖层时时显示的墨水的至少一部分的位置和外观之间的关系;以及针对第二帧,确定第一帧中的一个或多个感兴趣点的新位置和外观。在618处,该方法包括检测视觉帧的改变(例如,基于视觉帧的比较)。
在620处,该方法包括基于检测到的改变来确定显示的墨水的经更新的位置。经更新的位置可以与初始位置不同,并且可以相对于初始位置移位一量和方向,该量和方向基于显示的内容的移动/改变的量和方向。例如,如果检测到显示的内容的特征点在应用的第一视频帧和第二视频帧之间向上移动100像素,则经更新的位置可对应于相对于墨水的初始位置向上大约100像素的位置。在一些示例中,可以计算经更新的位置相对于初始位置的改变,包括视觉流分析的误差估计。在附加或替代示例中,可以基于进一步分析来调整经更新的位置(例如,基于标识墨水相对于显示的内容中的一个或多个特征点的相对位置并且在该一个或更多特征点移动/改变时将墨水捕捉到该相对位置)。
在一些示例中,如果检测到的改变超过阈值,则经更新的位置可以与初始位置相同。例如,如果应用窗口中的显示的内容改变过于剧烈或过于频繁(例如,高于这些参数的相应阈值),则不断更新墨水的位置可能太耗费资源并且可能降级墨水的外观(例如,如果以大量和/或高频率在显示屏上持续移动,则墨水可能不容易被读取)。这种改变的示例可以对应于呈现视频或其他动画内容的应用。此类示例在图7A中图示。如所示,当显示器正呈现视频应用708时,用户702可以将涂墨输入应用到与计算设备706的显示器704集成的输入传感器和/或数字化仪。涂墨输入可提供图7A的显示的墨水710。如图7B中所示,即使显示的内容在图7A中所示的视图和图7B中所示的视图之间改变,显示的墨水710仍保持在相同位置。在一些示例中,显示的墨水可保持在相同位置,直到应用被终止和/或直到用户指定移除显示的墨水。在其他示例中,显示的墨水可保持在相同位置,直到自显示的墨水最初被呈现以来已经发生阈值时间段和/或阈值数量的显示内容改变。
在622处,该方法包括确定经更新的位置是否在应用窗口的可视范围内。例如,如图3B所示,平移/滚动输入可导致显示的墨水被移出屏幕。如果经更新的位置不在应用的可视范围内(例如,在与墨水相关联的应用窗口的边界内)或不在被确定为元素/控件更新界限的区域内(确定空间滚动的界限的一种途径可包括确定在改变的区域上的边界框并用检测为在原始视觉中涵盖该区域的边缘来捕捉该区域),则该方法进行到624以不显示墨水并且前进到626以在此时并贯穿应用窗口的显示的内容的未来移动/改变跟踪墨水的经更新的位置。该方法然后返回到612以继续比较视觉帧并检测视觉帧内的显示的内容的改变。在一些示例中,如果墨水占据应用窗口的可视范围之外的位置超过阈值时间段,则墨水和来自应用的相关联的底层显示内容可被保存到文件(例如,作为合成图像)。在附加或替代示例中,可以向用户提供将墨水和底层显示内容保存到文件(例如,导出应用的合成视图以与他人共享)的选项。此类合成图像可以被存储在计算设备上的位置中并被缝合在一起以提供应用的显示的内容的超大视图(例如,超过给定帧中的应用显示的单个窗口),任何适用的墨水覆盖在该视图上。
返回到622,如果墨水的经更新的位置在应用窗口的可视范围内,则该方法前进到628以在显示器的经更新的位置处显示墨水。该方法然后返回到612以继续比较帧以检测应用的显示的内容的改变。
在一些实施例中,本文中描述的方法和过程可以与一个或多个计算设备的计算系统绑定。具体而言,这样的方法和过程可被实现为计算机应用程序或服务、应用编程接口(API)、库和/或其他计算机程序产品。
图8示意性地示出了可执行上述方法和过程中的一个或多个的计算系统800的非限制性实施例。以简化形式示出了计算系统800。计算系统800可采取以下形式:一个或多个个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)和/或其他计算设备。
计算系统800包括逻辑机802和存储机804。计算系统800可任选地包括显示子系统806、输入子系统808、通信子系统810和/或在图8中未示出的其他组件。
逻辑机802包括被配置为执行指令的一个或多个物理设备。例如,逻辑机可被配置为执行作为以下各项的一部分的指令:一个或多个应用、服务、程序、例程、库、对象、组件、数据结构、或其他逻辑构造。这种指令可被实现以执行任务、实现数据类型、转换一个或多个组件的状态、实现技术效果、或以其他方式得到期望结果。
逻辑机可包括被配置为执行软件指令的一个或多个处理器。附加地或替代地,逻辑机可包括被配置为执行硬件或固件指令的一个或多个硬件或固件逻辑机。逻辑机的处理器可以是单核或多核,且在其上执行的指令可被配置为串行、并行和/或分布式处理。逻辑机的各个组件可任选地分布在两个或更多单独设备上,这些设备可以位于远程和/或被配置为进行协同处理。逻辑机的各方面可由以云计算配置进行配置的可远程访问的联网计算设备来虚拟化和执行。
存储机804包括被配置为保持可由逻辑机执行以实现本文所描述的方法和过程的指令的一个或多个物理设备。在实现这些方法和过程时,可以变换存储机804的状态(例如,保持不同的数据)。
存储机804可以包括可移除和/或内置设备。存储机804可包括光学存储器(例如,CD、DVD、HD-DVD、蓝光盘等)、半导体存储器(例如,RAM、EPROM、EEPROM等)和/或磁存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)等等。存储机804可包括易失性、非易失性、动态、静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址和/或内容可寻址设备。
可以理解,存储机804包括一个或多个物理设备。然而,本文描述的指令的各方面可替换地通过不由物理设备在有限时长内持有的通信介质(例如,电磁信号、光信号等)来传播。
逻辑机802和存储机804的各方面可被一起集成到一个或多个硬件逻辑组件中。这些硬件逻辑组件可包括例如现场可编程门阵列(FPGA)、程序和应用专用的集成电路(PASIC/ASIC)、程序和应用专用的标准产品(PSSP/ASSP)、片上系统(SOC)以及复杂可编程逻辑器件(CPLD)。
术语“模块”、“程序”和“引擎”可用于描述被实现为执行一个特定功能的计算系统800的一方面。在一些情况下,可以通过执行由存储机804所保持的指令的逻辑机802来实例化模块、程序或引擎。将理解,不同的模块、程序、和/或引擎可以从相同的应用、服务、代码块、对象、库、例程、API、函数等实例化。类似地,相同的模块、程序和/或引擎可由不同的应用、服务、代码块、对象、例程、API、功能等来实例化。术语“模块”、“程序”和“引擎”意在涵盖单个或成组的可执行文件、数据文件、库、驱动程序、脚本、数据库记录等。
应当理解,如此处所使用的“服务”可以是跨越多个用户会话可执行的应用程序。服务可对一个或更多系统组件、程序、和/或其他服务可用。在一些实现中,服务可以在一个或多个服务器计算设备上运行。
在被包括时,显示子系统806可用于呈现由存储机804保持的数据的视觉表示。此视觉表示可采用图形用户界面(GUI)的形式。由于本文所描述的方法和过程改变了由存储机保持的数据,并由此变换了存储机的状态,因此同样可以转变显示子系统806的状态以视觉地表示底层数据的改变。显示子系统806可包括使用实质上任何类型的技术的一个或多个显示设备。可将此类显示设备与逻辑机802和/或存储机804组合在共享封装中,或者此类显示设备可以是外围显示设备。
当被包括时,输入子系统808可包括诸如键盘、鼠标、触摸屏或游戏控制器等一个或多个用户输入设备或者与这些用户输入设备对接。在一些实施例中,输入子系统可以包括或相接于所选择的自然用户输入(NUI)部件。这样的部件可以是集成式的或者是外设,并且输入动作的转换和/或处理可以在板上或板下处理。示例NUI部件可包括用于语言和/或语音识别的话筒;用于机器视觉和/或姿势识别的红外、色彩、立体显示和/或深度相机;用于运动检测和/或意图识别的头部跟踪器、眼睛跟踪器、加速计和/或陀螺仪;以及用于评估脑部活动的电场感测部件。
当包括通信子系统810时,通信子系统810可被配置为将计算系统800与一个或多个其他计算设备通信地耦合。通信子系统810可包括与一个或多个不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统可被配置为用于经由无线电话网络或者有线或无线局域网或广域网来进行通信。在一些实施例中,通信子系统可允许计算系统800经由诸如互联网这样的网络将消息发送至其他设备以及/或者从其他设备接收消息。
另一示例提供了一种计算设备,包括被配置为呈现用户界面的显示器,输入传感器,所述输入传感器被配置为接收针对所述用户界面的涂墨输入,所述涂墨输入包括笔输入和基于手的输入中的一者或多者,处理器;以及存储指令的存储设备,所述指令能由所述处理器执行以从正在执行的应用接收指示所述正在执行的应用的显示的内容的视觉帧,至少基于经由所述输入传感器接收的涂墨输入在所述显示器的第一位置上呈现显示的墨水,至少基于来自所述正在执行的应用的视觉帧中的两个或更多个视觉帧的比较,检测所述正在执行的应用的所述显示的内容的改变,至少基于所述显示的内容的改变来确定所述显示的墨水在所述显示器上的第二位置,以及经由所述显示器在所述显示器的所述第二位置中呈现所述显示的墨水。在这种示例中,在所述第二位置中呈现所述显示的墨水可附加或替代地包括生成合成图像以及渲染所述合成图像以用于显示,所述合成图像包括所述视觉帧中的一个视觉帧和所述显示的墨水。在这种示例中,检测所述正在执行的应用提供的显示的内容的改变可附加或替代地包括检测所述用户界面的至少一部分的平移、缩放和旋转中的一者或多者,并且其中在所述第二位置中呈现所述显示的墨水可附加或替代地包括至少基于在所述显示的内容中检测到的改变的类型来对所述显示的墨水进行平移、缩放和旋转中的一者或多者。在这种示例中,可附加或替代地至少基于所述两个或更多个视觉帧中的第一帧与所述两个或更多个视觉帧中的第二帧之间的一个或多个特征的检测到的移动量来确定所述显示器的所述第二位置。在这种示例中,可附加或替代地至少基于执行模板匹配、光学流分析和特征点检测/匹配中的一者或多者来进一步确定所述显示器的所述第二位置,包括针对所述第一帧,确定1)所述第一帧中的一个或多个感兴趣点,以及2)当所述显示的墨水被呈现为所述第一帧上的覆盖层时所述显示的墨水的至少一部分的位置和外观之间的关系,以及当所述显示的墨水被呈现为所述第二帧的覆盖层时,调整所述显示器上的所述显示的墨水的位置和外观以针对所述第二帧保持所述关系。在这种示例中,所述指令可附加或替代地进一步能被执行以响应于检测到所述显示的墨水的经调整位置对应于位于所述正在执行的应用的所述显示的内容之外的所述显示的墨水,存储所述显示的墨水与所述一个或多个特征之间的所述关系并停止呈现所述显示的墨水,以及当所述显示的墨水位于所述正在执行的应用的所述显示的内容的范围之外并且没有经由所述显示器呈现时,至少基于所述视觉帧的比较来执行所述显示的墨水的位置和外观的屏幕外调整。在这种示例中,所述指令可附加或替代地进一步能被执行以确定所述显示的墨水的位置和外观的屏幕外调整指示所述显示的墨水的至少一部分位于所述正在执行的应用的所述显示的内容的范围内,以及至少基于所述屏幕外调整将所述显示的墨水的所述至少一部分呈现为所述正在执行的应用的所述显示的内容的覆盖层。在这种示例中,所述指令可附加或替代地进一步能被执行以生成并存储包括以下中的一者或多者的文件:1)在所述显示的内容的改变期间观察到的视图的经拼接的整体图像和2)呈现在所述正在执行的应用的一个或多个视图上方的所述显示的墨水的动画。在这种示例中,所述指令可附加或替代地进一步能被执行以响应于确定所述正在执行的应用的所述显示的内容的所述改变超过所述显示的内容的各帧之间的阈值改变量而将所述显示的墨水保持在所述第一位置中。在这种示例中,所述指令可附加或替代地进一步能被执行以检测所述显示的墨水呈现于其上的所述显示的内容的类型,以及至少基于所述显示的内容的所述类型来执行动作。以上描述的示例中的任何一个或全部可按任何合适的方式被组合在各实现中。
另一示例提供了一种用于计算设备的方法,所述方法包括从所述计算设备的正在执行的应用接收视觉帧,所述视觉帧指示所述正在执行的应用的显示的内容,响应于经由所述计算设备的输入传感器接收涂墨输入,将所述显示的墨水呈现在所述计算设备的显示器的第一位置上,至少基于来自所述正在执行的应用的视觉帧中的两个或更多个视觉帧的比较,检测所述正在执行的应用的所述显示的内容的改变,至少基于所述显示的内容的改变来确定所述显示的墨水在所述显示器上的第二位置,以及经由所述显示器在所述显示器的所述第二位置中呈现所述显示的墨水。在这种示例中,在所述第二位置中呈现所述显示的墨水可附加或替代地包括生成合成图像以及渲染所述合成图像以用于显示,所述合成图像包括所述视觉帧中的一个视觉帧和所述显示的墨水。在这种示例中,检测所述正在执行的应用提供的显示的内容的改变可附加或替代地包括检测所述用户界面的至少一部分的平移、缩放和旋转中的一者或多者,并且在所述第二位置中呈现所述显示的墨水可附加或替代地包括至少基于在所述显示的内容中检测到的改变的类型来对所述显示的墨水进行平移、缩放和旋转中的一者或多者。在这种示例中,可附加或替代地至少基于所述两个或更多个视觉帧中的第一帧与所述两个或更多个视觉帧中的第二帧之间的一个或多个特征的检测到的移动量来确定所述显示器的所述第二位置。在这种示例中,可附加或替代地至少基于执行模板匹配、光学流分析和特征点检测/匹配中的一者或多者来进一步确定所述显示器的所述第二位置,包括针对所述第一帧,确定1)所述第一帧中的一个或多个感兴趣点,以及2)当所述显示的墨水被呈现为所述第一帧上的覆盖层时所述显示的墨水的至少一部分的位置和外观之间的关系,以及当所述显示的墨水被呈现为所述第二帧的覆盖层时,调整所述显示器上的所述显示的墨水的位置和外观以针对所述第二帧保持所述关系。在这种示例中,所述方法可附加或替代地包括响应于检测到所述显示的墨水的经调整位置对应于位于所述正在执行的应用的所述显示的内容之外的所述显示的墨水,存储所述显示的墨水与所述一个或多个特征之间的所述关系并停止呈现所述显示的墨水,以及当所述显示的墨水位于所述正在执行的应用的所述显示的内容的范围之外并且没有经由所述显示器呈现时,至少基于所述视觉帧的比较来执行所述显示的墨水的位置和外观的屏幕外调整。在这种示例中,所述方法可附加或替代地进一步包括确定所述显示的墨水的位置和外观的屏幕外调整指示所述显示的墨水的至少一部分位于所述正在执行的应用的所述显示的内容的范围内,以及至少基于所述屏幕外调整将所述显示的墨水的所述至少一部分呈现为所述正在执行的应用的所述显示的内容的覆盖层。以上描述的示例中的任何一个或全部可按任何合适的方式被组合在各实现中。
另一示例提供了一种计算设备,包括被配置为呈现用户界面的显示器,输入控制器,所述输入控制器被配置为接收输入针对所述用户界面的涂墨输入,与所述显示器和所述触摸控制器通信的处理器,所述处理器被配置为从正在执行的应用接收视觉帧,所述视觉帧指示所述正在执行的应用的显示的内容,至少基于涂墨输入的实例在所述显示器的第一位置上呈现显示的墨水,至少基于来自所述正在执行的应用的视觉帧中的两个或更多个视觉帧的光学流分析,检测所述正在执行的应用的所述显示的内容的改变,至少基于所述显示的内容的改变来确定所述显示的墨水在所述显示器上的第二位置,至少基于确定所述第二位置在所述正在执行的应用的可视区域之外,移除所述显示的墨水并跟踪所述显示的墨水的屏幕外位置,以及至少基于确定所述第二位置在所述正在执行的应用的所述可视区域内,经由所述显示器将所述显示的墨水呈现在所述显示器的所述第二位置中。在这种示例中,检测所述正在执行的应用提供的显示的内容的改变可附加或替代地包括检测所述用户界面的至少一部分的平移、缩放和旋转中的一者或多者,并且在所述第二位置中呈现所述显示的墨水可附加或替代地包括至少基于在所述显示的内容中检测到的改变的类型来对所述显示的墨水进行平移、缩放和旋转中的一者或多者。在这种示例中,可附加或替代地至少基于执行模板匹配、光学流分析和特征点检测/匹配中的一者或多者来确定所述显示器的所述第二位置,包括针对所述第一帧,确定1)所述第一帧中的一个或多个感兴趣点,以及2)当所述显示的墨水被呈现为所述第一帧上的覆盖层时所述显示的墨水的至少一部分的位置和外观之间的关系,以及当所述显示的墨水被呈现为所述第二帧的覆盖层时,调整所述显示器上的所述显示的墨水的位置和外观以针对所述第二帧保持所述关系。以上描述的示例中的任何一个或全部可按任何合适的方式被组合在各实现中。
将会理解,本文描述的配置和/或方式本质是示例性的,这些具体实施例或本文示例不应被视为限制性的,因为许多变体是可能的。本文描述的具体例程或方法可以表示任何数量的处理策略中的一个或多个。如此,所例示和/或所描述的各种动作可以以所示和/或所述顺序、以其他顺序、并行地执行,或者被省略。同样,上述过程的次序可以改变。
本公开的主题包括各种过程、系统和配置以及此处公开的其他特征、功能、动作和/或属性、以及它们的任一和全部等价物的所有新颖且非显而易见的组合和子组合。

Claims (20)

1.一种计算设备,包括:
被配置为呈现用户界面的显示器;
输入传感器,所述输入传感器被配置为接收针对所述用户界面的涂墨输入,所述涂墨输入包括笔输入和基于手的输入中的一者或多者;
处理器;以及
存储指令的存储设备,所述指令能由所述处理器执行以:
从正在执行的应用接收视觉帧,所述视觉帧指示所述正在执行的应用的显示的内容;
至少基于经由所述输入传感器接收的涂墨输入在所述显示器的第一位置上呈现显示的墨水;
至少基于来自所述正在执行的应用的视觉帧中的两个或更多个视觉帧的比较,检测所述正在执行的应用的所述显示的内容的改变;
至少基于所述显示的内容的改变来确定所述显示的墨水在所述显示器上的第二位置;以及
经由所述显示器在所述显示器的所述第二位置中呈现所述显示的墨水。
2.如权利要求1所述的计算设备,其特征在于,在所述第二位置中呈现所述显示的墨水包括生成合成图像以及渲染所述合成图像以用于显示,所述合成图像包括所述视觉帧中的一个视觉帧和所述显示的墨水。
3.如权利要求1所述的计算设备,其特征在于,检测所述正在执行的应用提供的显示的内容的改变包括检测所述用户界面的至少一部分的平移、缩放和旋转中的一者或多者,并且其中在所述第二位置中呈现所述显示的墨水包括至少基于在所述显示的内容中检测到的改变的类型来对所述显示的墨水进行平移、缩放和旋转中的一者或多者。
4.如权利要求3所述的计算设备,其特征在于,至少基于所述两个或更多个视觉帧中的第一帧与所述两个或更多个视觉帧中的第二帧之间的一个或多个特征的检测到的移动量来确定所述显示器的所述第二位置。
5.如权利要求4所述的计算设备,其特征在于,至少基于执行模板匹配、光学流分析和特征点检测/匹配中的一者或多者来进一步确定所述显示器的所述第二位置,包括:
针对所述第一帧,确定1)所述第一帧中的一个或多个感兴趣点,以及2)当所述显示的墨水被呈现为所述第一帧上的覆盖层时所述显示的墨水的至少一部分的位置和外观之间的关系,以及
当所述显示的墨水被呈现为所述第二帧的覆盖层时,调整所述显示器上的所述显示的墨水的位置和外观以针对所述第二帧保持所述关系。
6.如权利要求5所述的计算设备,其特征在于,所述指令进一步能被执行以:
响应于检测到所述显示的墨水的经调整位置对应于位于所述正在执行的应用的所述显示的内容之外的所述显示的墨水,存储所述显示的墨水与所述一个或多个特征之间的所述关系并停止呈现所述显示的墨水,以及
当所述显示的墨水位于所述正在执行的应用的所述显示的内容的范围之外并且没有经由所述显示器呈现时,至少基于所述视觉帧的比较来执行所述显示的墨水的位置和外观的屏幕外调整。
7.如权利要求6所述的计算设备,其特征在于,所述指令进一步能被执行以:
确定所述显示的墨水的位置和外观的屏幕外调整指示所述显示的墨水的至少一部分位于所述正在执行的应用的所述显示的内容的范围内,以及
至少基于所述屏幕外调整将所述显示的墨水的所述至少一部分呈现为所述正在执行的应用的所述显示的内容的覆盖层。
8.如权利要求1所述的计算设备,其特征在于,所述指令进一步能被执行以生成并存储包括以下中的一者或多者的文件:1)在所述显示的内容的改变期间观察到的视图的经拼接的整体图像和2)呈现在所述正在执行的应用的一个或多个视图上方的所述显示的墨水的动画。
9.如权利要求1所述的计算设备,其特征在于,所述指令进一步能被执行以响应于确定所述正在执行的应用的所述显示的内容的所述改变超过所述显示的内容的各帧之间的阈值改变量而将所述显示的墨水保持在所述第一位置中。
10.如权利要求1所述的计算设备,其特征在于,所述指令进一步能被执行以检测所述显示的墨水呈现于其上的所述显示的内容的类型,以及至少基于所述显示的内容的所述类型来执行动作。
11.一种用于计算设备的方法,所述方法包括:
从所述计算设备的正在执行的应用接收视觉帧,所述视觉帧指示所述正在执行的应用的显示的内容;
响应于经由所述计算设备的输入传感器接收涂墨输入,将所述显示的墨水呈现在所述计算设备的显示器的第一位置上;
至少基于来自所述正在执行的应用的视觉帧中的两个或更多个视觉帧的比较,检测所述正在执行的应用的所述显示的内容的改变;
至少基于所述显示的内容的改变来确定所述显示的墨水在所述显示器上的第二位置;以及
经由所述显示器在所述显示器的所述第二位置中呈现所述显示的墨水。
12.如权利要求11所述的方法,其特征在于,在所述第二位置中呈现所述显示的墨水包括生成合成图像以及渲染所述合成图像以用于显示,所述合成图像包括所述视觉帧中的一个视觉帧和所述显示的墨水。
13.如权利要求11所述的方法,其特征在于,检测所述正在执行的应用提供的显示的内容的改变包括检测用户界面的至少一部分的平移、缩放和旋转中的一者或多者,并且其中在所述第二位置中呈现所述显示的墨水包括至少基于在所述显示的内容中检测到的改变的类型来对所述显示的墨水进行平移、缩放和旋转中的一者或多者。
14.如权利要求13所述的方法,其特征在于,至少基于所述两个或更多个视觉帧中的第一帧与所述两个或更多个视觉帧中的第二帧之间的一个或多个特征的检测到的移动量来确定所述显示器的所述第二位置。
15.如权利要求14所述的方法,其特征在于,至少基于执行模板匹配、光学流分析和特征点检测/匹配中的一者或多者来进一步确定所述显示器的所述第二位置,包括:
针对所述第一帧,确定1)所述第一帧中的一个或多个感兴趣点,以及2)当所述显示的墨水被呈现为所述第一帧上的覆盖层时所述显示的墨水的至少一部分的位置和外观之间的关系,以及
当所述显示的墨水被呈现为所述第二帧的覆盖层时,调整所述显示器上的所述显示的墨水的位置和外观以针对所述第二帧保持所述关系。
16.根据权利要求15所述的方法,其特征在于,进一步包括:
响应于检测到所述显示的墨水的经调整位置对应于位于所述正在执行的应用的所述显示的内容之外的所述显示的墨水,存储所述显示的墨水与所述一个或多个特征之间的所述关系并停止呈现所述显示的墨水,以及
当所述显示的墨水位于所述正在执行的应用的所述显示的内容的范围之外并且没有经由所述显示器呈现时,至少基于所述视觉帧的比较来执行所述显示的墨水的位置和外观的屏幕外调整。
17.根据权利要求16所述的方法,其特征在于,进一步包括:
确定所述显示的墨水的位置和外观的屏幕外调整指示所述显示的墨水的至少一部分位于所述正在执行的应用的所述显示的内容的范围内,以及
至少基于所述屏幕外调整将所述显示的墨水的所述至少一部分呈现为所述正在执行的应用的所述显示的内容的覆盖层。
18.一种计算设备,包括:
被配置为呈现用户界面的显示器;
输入控制器,所述输入控制器被配置为接收输入针对所述用户界面的涂墨输入;
与所述显示器和所述输入控制器通信的处理器,所述处理器被配置为:
从正在执行的应用接收视觉帧,所述视觉帧指示所述正在执行的应用的显示的内容;
至少基于涂墨输入的实例在所述显示器的第一位置上呈现显示的墨水;
至少基于来自所述正在执行的应用的视觉帧中的两个或更多个视觉帧的光学流分析,检测所述正在执行的应用的所述显示的内容的改变;
至少基于所述显示的内容的改变来确定所述显示的墨水在所述显示器上的第二位置;
至少基于确定所述第二位置在所述正在执行的应用的可视区域之外,移除所述显示的墨水并跟踪所述显示的墨水的屏幕外位置;以及
至少基于确定所述第二位置在所述正在执行的应用的所述可视区域内,经由所述显示器将所述显示的墨水呈现在所述显示器的所述第二位置中。
19.如权利要求18所述的计算设备,其特征在于,检测所述正在执行的应用提供的显示的内容的改变包括检测所述用户界面的至少一部分的平移、缩放和旋转中的一者或多者,并且其中在所述第二位置中呈现所述显示的墨水包括至少基于在所述显示的内容中检测到的改变的类型来对所述显示的墨水进行平移、缩放和旋转中的一者或多者。
20.如权利要求19所述的计算设备,其特征在于,至少基于执行模板匹配、光学流分析和特征点检测/匹配中的一者或多者来确定所述显示器的所述第二位置,包括:
针对所述两个或更多个视觉帧中的第一帧,确定1)所述第一帧中的一个或多个感兴趣点,以及2)当所述显示的墨水被呈现为所述第一帧上的覆盖层时所述显示的墨水的至少一部分的位置和外观之间的关系,以及
当所述显示的墨水被呈现为所述两个或更多个视觉帧中的第二帧的覆盖层时,调整所述显示器上的所述显示的墨水的位置和外观以针对所述第二帧保持所述关系。
CN201680070376.7A 2016-01-08 2016-12-26 通用涂墨支持 Active CN108369486B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/991,494 US9904447B2 (en) 2016-01-08 2016-01-08 Universal inking support
US14/991,494 2016-01-08
PCT/US2016/068613 WO2017120069A1 (en) 2016-01-08 2016-12-26 Universal inking support

Publications (2)

Publication Number Publication Date
CN108369486A CN108369486A (zh) 2018-08-03
CN108369486B true CN108369486B (zh) 2021-03-05

Family

ID=57822078

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680070376.7A Active CN108369486B (zh) 2016-01-08 2016-12-26 通用涂墨支持

Country Status (4)

Country Link
US (1) US9904447B2 (zh)
EP (1) EP3400520B1 (zh)
CN (1) CN108369486B (zh)
WO (1) WO2017120069A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10228775B2 (en) * 2016-01-22 2019-03-12 Microsoft Technology Licensing, Llc Cross application digital ink repository
US11032471B2 (en) 2016-06-30 2021-06-08 Nokia Technologies Oy Method and apparatus for providing a visual indication of a point of interest outside of a user's view
US11157161B2 (en) 2018-02-07 2021-10-26 Citrix Systems, Inc. Using pressure sensor data in a remote access environment
KR20200078932A (ko) * 2018-12-24 2020-07-02 삼성전자주식회사 전자 장치 및 전자 장치의 제어 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1848108A (zh) * 2005-04-05 2006-10-18 夏普株式会社 包括手写数据的电子文档的显示装置及方法
CN102411458A (zh) * 2011-08-15 2012-04-11 留越 一种纸面笔迹信息化处理的方法及系统
CN105094564A (zh) * 2015-08-11 2015-11-25 广州视睿电子科技有限公司 基于触摸操作的笔迹编辑方法及系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003900865A0 (en) 2003-02-26 2003-03-13 Silverbrook Research Pty Ltd Methods, systems and apparatus (NPW010)
US7218783B2 (en) 2003-06-13 2007-05-15 Microsoft Corporation Digital ink annotation process and system for recognizing, anchoring and reflowing digital ink annotations
US7284192B2 (en) 2004-06-24 2007-10-16 Avaya Technology Corp. Architecture for ink annotations on web documents
US7574048B2 (en) 2004-09-03 2009-08-11 Microsoft Corporation Freeform digital ink annotation recognition
US8181103B2 (en) 2005-12-29 2012-05-15 Microsoft Corporation Annotation detection and anchoring on ink notes
US20070247422A1 (en) 2006-03-30 2007-10-25 Xuuk, Inc. Interaction techniques for flexible displays
US7907141B2 (en) 2007-03-23 2011-03-15 Palo Alto Research Center Incorporated Methods and processes for recognition of electronic ink strokes
JP5658547B2 (ja) 2009-12-29 2015-01-28 シャープ株式会社 ネットワークシステム、通信方法、および通信端末
JP2014127103A (ja) 2012-12-27 2014-07-07 Brother Ind Ltd 資料共有プログラム、端末装置、資料共有方法
US9697803B2 (en) * 2014-03-26 2017-07-04 Samsung Display Co., Ltd. Method and apparatus to reduce display latency of touch events using image replications
WO2016076464A1 (en) * 2014-11-14 2016-05-19 Lg Electronics Inc. Mobile terminal and method for controlling the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1848108A (zh) * 2005-04-05 2006-10-18 夏普株式会社 包括手写数据的电子文档的显示装置及方法
CN102411458A (zh) * 2011-08-15 2012-04-11 留越 一种纸面笔迹信息化处理的方法及系统
CN105094564A (zh) * 2015-08-11 2015-11-25 广州视睿电子科技有限公司 基于触摸操作的笔迹编辑方法及系统

Also Published As

Publication number Publication date
EP3400520A1 (en) 2018-11-14
US9904447B2 (en) 2018-02-27
WO2017120069A1 (en) 2017-07-13
EP3400520B1 (en) 2019-12-18
US20170199653A1 (en) 2017-07-13
CN108369486A (zh) 2018-08-03

Similar Documents

Publication Publication Date Title
JP6013583B2 (ja) 有効インターフェース要素の強調のための方式
US9430093B2 (en) Monitoring interactions between two or more objects within an environment
KR101784328B1 (ko) 증강 현실 표면 디스플레잉
CN108369486B (zh) 通用涂墨支持
CN104011629A (zh) 用于能够进行基于触摸的输入的用户界面的经增强的目标选择
US10325398B2 (en) Absolute age for a digital ink stroke
AU2016262789B2 (en) 3d modeling by tracing 2d image ui
CN111064999B (zh) 用于处理虚拟现实输入的方法和系统
US10901612B2 (en) Alternate video summarization
US20180046351A1 (en) Controlling display object on display screen
US10817054B2 (en) Eye watch point tracking via binocular and stereo images
CA2881581A1 (en) Augmented peripheral content using mobile device
KR102360172B1 (ko) 사용자와 3d 객체 간 인터랙션을 제어하는 방법 및 장치
US11836847B2 (en) Systems and methods for creating and displaying interactive 3D representations of real objects
US11003467B2 (en) Visual history for content state changes
US20200226833A1 (en) A method and system for providing a user interface for a 3d environment
US11557065B2 (en) Automatic segmentation for screen-based tutorials using AR image anchors
US20150277705A1 (en) Graphical user interface user input technique for choosing and combining digital images as video
US20240184443A1 (en) Display control method, electronic device, and readable storage medium
US20230298283A1 (en) Gesture based tactile interaction in extended reality using form factor of a physical object

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