CN106406693B - 图像选中方法及装置 - Google Patents

图像选中方法及装置 Download PDF

Info

Publication number
CN106406693B
CN106406693B CN201610776396.8A CN201610776396A CN106406693B CN 106406693 B CN106406693 B CN 106406693B CN 201610776396 A CN201610776396 A CN 201610776396A CN 106406693 B CN106406693 B CN 106406693B
Authority
CN
China
Prior art keywords
image
coordinate
edge
coordinate set
edge vertices
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
CN201610776396.8A
Other languages
English (en)
Other versions
CN106406693A (zh
Inventor
赵毅
冯宇
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610776396.8A priority Critical patent/CN106406693B/zh
Publication of CN106406693A publication Critical patent/CN106406693A/zh
Application granted granted Critical
Publication of CN106406693B publication Critical patent/CN106406693B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明实施例提供图像选中方法及装置,以准确得判断图像是否被选中。在本发明实施例中,以配置文件记录图片中的图像的边缘顶点坐标集合,上述边缘顶点坐标集合中的边缘顶点围成的多边形标定了图片的可选中区域。在电子设备的使用者输入位置信息后,先经坐标转化,之后会判断位置信息对应的坐标是否位于目标边缘顶点坐标集合中的边缘顶点构成的多边形中,从而判定目标边缘顶点坐标集合对应的图像是否被选中。本发明实施例所提供的技术方案中的多边形与现有技术方案中的最小外接矩形相比,缩小了判定范围,使得电子设备使用者的点选操作更具有针对性,图像的选中更为准确。

Description

图像选中方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及图像选中方法及装置。
背景技术
在电子设备的操作过程中,很多时候需要对图像进行点击选中。例如,在游戏中,为了实现玩家与游戏的交互,通常需要实现玩家用鼠标或手指点击选中游戏界面上的图像,在此基础上,玩家可对选中的图像进行拖拽、删除等操作。
在现有的图像选中方案中,请参见图1a,是用图像的最小外接矩形做判定依据的。当点击位置落在最小外接矩形范围内时,就被认定是点中了该图像。现有图像选中方案的示例性流程可参见图1b所示。
现有的图像选中方案的主要缺点是判定范围过于宽泛。仍然以图1a所示图片为例,使用者或设计者可能期望图片中的房子和奶牛、围栏等部分可被点击选中。至于房子和奶牛、围栏等周边的透明部分,使用者或设计者可能并不希望将其算作这张图片的可选中区域。
因此,目前需要更准确的图像选中方案,以根据电子设备的使用者的输入(例如点击输入),来判断图像是否被选中。
发明内容
有鉴于此,本发明实施例提供图像选中方法及装置,以准确得判断图像是否被选中。
为实现上述目的,本发明实施例提供如下技术方案:
一种图像选中方法,应用于电子设备,其特征在于,基于配置文件,所述配置文件包括图像标识以及与所述图像标识对应的边缘顶点坐标集合;其中,所述图像标识用于表征图片中的图像,所述图像标识对应的边缘顶点坐标集合包括,所述图像标识表征的图像的边缘顶点在图片中的坐标;
所述方法包括:
获取通过所述电子设备的输入设备输入的位置信息;
从所述配置文件中获取目标图像标识对应的边缘顶点坐标集合,获取到的边缘顶点坐标集合为目标边缘顶点坐标集合;
将所述位置信息和所述目标边缘顶点坐标集合中的边缘顶点的坐标,转化为同一坐标系下的坐标;
判断所述位置信息对应的坐标,是否位于所述目标边缘顶点坐标集合中的边缘顶点构成的多边形中;
在判断出所述位置信息对应的坐标位于所述目标边缘顶点坐标集合中的边缘顶点构成的多边形中时,确定所述目标图像标识表征的图像被选中。
一种图像选中装置,基于配置文件,所述配置文件包括图像标识以及与所述图像标识对应的边缘顶点坐标集合;其中,所述图像标识用于表征图片中的图像,所述图像标识对应的边缘顶点坐标集合包括,所述图像标识表征的图像的边缘顶点在图片中的坐标;
所述图像选中装置包括:
获取单元,用于获取通过所述电子设备的输入设备输入的位置信息;
处理单元,用于:
从配置文件中获取目标图像标识对应的边缘顶点坐标集合,获取到的边缘顶点坐标集合为目标边缘顶点坐标集合;
将所述位置信息和所述目标边缘顶点坐标集合中的边缘顶点的坐标,转化为同一坐标系下的坐标;
判断所述位置信息对应的坐标,是否位于所述目标边缘顶点坐标集合中的边缘顶点构成的多边形中;
在判断出所述位置信息对应的坐标位于所述目标边缘顶点坐标集合中的边缘顶点构成的多边形中时,确定所述目标图像标识表征的图像被选中。
一种电子设备,包括上述的图像选中装置。
在本发明实施例中,以配置文件记录图片中的图像的边缘顶点坐标集合,上述边缘顶点坐标集合中的边缘顶点围成的多边形标定了图片的可选中区域。在电子设备的使用者输入位置信息后,先经坐标转化,之后会判断位置信息对应的坐标是否位于目标边缘顶点坐标集合中的边缘顶点构成的多边形中,从而判定目标边缘顶点坐标集合对应的图像是否被选中。本发明实施例所提供的技术方案中的多边形与现有技术方案中的最小外接矩形相比,缩小了判定范围,使得电子设备使用者的点选操作更具有针对性,图像的选中更为准确。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1a为图像的最小外接矩形示意图;
图1b、1c为现有图像选中方案的示例性流程;
图1d为本发明实施例提供的内部存在大量镂空设计的图像的示意图;
图2为本发明实施例提供的图像选中装置或电子设备的计算机架构示例图;
图3a、图3e、图3f、图4a、图5a、图5c、图6为本发明实施例提供的图像选中方法示例性流程图;
图3b为本发明实施例提供的图片的示例图;
图3c为本发明实施例提供的边缘顶点构成的多边形的示例图;
图3d为本发明实施例提供的在当前操作界面包含多个图像的示例图;
图4b为本发明实施例提供的建筑图像示例图;
图4c为本发明实施例提供的边缘顶点坐标示例图;
图5b为本发明实施例提供的边缘顶点进行凸包算法计算后得到的结果的示例图;
图7a、图7b为本发明实施例提供的图像选中装置的示例性结构图。
具体实施方式
除图1a和图1b所示现有图像选中方案外,另外一种常用图像选中方案是判断点击位置对应图像的像素。
更具体的,是判断像素中的透明度(alpha值)是否大于0,也即,判断点击位置是否透明,如果alpha值大于0,则点击位置不透明,就认为该图像被选中,否则就认为图像没有被选中。其示例性流程可参见图1c所示。
图1c所示技术方案存在以下几个缺点:
(1)通用性差
在游戏中,上述图像选中方案需要在游戏运行中实时获取图像对应位置像素值,实现复杂,在不同类型的项目中,用到的开发环境和开发代码不同,需要进行不同的代码实现。另外由于需要在运行时实时进行像素值的获取计算,性能相对较低。
(2)容错性差
针对一些特殊图片,比如边缘不光滑或者图像内部存在大量镂空设计的图像(例如图1d),在点击时就会因为点击到图像内部空白像素位置,而导致判定图像未被选中。
(3)灵活性差
对于某些特殊的图像,设计者可能希望扩大或者缩小其点击区域,但是由于采用了图像像素值的判定机制,就只能做特殊处理,比如约定某个特殊的透明度或者像素值,在程序中进行特殊判断。一方面这样会带来制作的开销,另一方面也会影响图像本身的展示。
为解决上述问题,本发明提供图像选中方法及装置。
上述图像选中装置可应用于电子设备/终端(客户端)中,诸如台式机、移动终端(例如智能手机)、ipad等。
图像选中装置可以软件的形式应用于电子设备中,或以硬件的形式作为电子设备的组成部分。
当以软件形式应用于电子设备中时,图像选中装置具体可为一应用程序,例如手机APP、终端应用程序等,也可作为某应用程序或操作系统的组件。
图2示出了图像选中装置或包含上述图像选中装置的电子设备一种通用计算机系统结构。
上述计算机系统可包括总线、处理器1、存储器2、通信接口3、输入设备4和输出设备5。处理器1、存储器2、通信接口3、输入设备4和输出设备5通过总线相互连接。其中:
总线可包括一通路,在计算机系统各个部件之间传送信息。
处理器1可以是通用处理器,例如通用中央处理器(CPU)、网络处理器(NetworkProcessor,简称NP)、微处理器等,也可以是特定应用集成电路(application-specificintegrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
处理器1可包括主处理器,还可包括基带芯片、调制解调器等。
存储器2中保存有执行本发明技术方案的程序,还可以保存有操作系统和其他关键业务。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。更具体的,存储器2可以包括只读存储器(read-only memory,ROM)、可存储静态信息和指令的其他类型的静态存储设备、随机存取存储器(random access memory,RAM)、可存储信息和指令的其他类型的动态存储设备、磁盘存储器、flash等等。
输入设备4可包括接收用户输入的数据和信息的装置,例如键盘、鼠标、摄像头、扫描仪、光笔、语音输入装置、触摸屏、计步器或重力感应器等。
输出设备5可包括允许输出信息给用户的装置,例如显示屏、打印机、扬声器等。
通信接口3可包括使用任何收发器一类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(WLAN)等。
处理器1执行存储器2中所存放的程序,以及调用其他设备,可用于实现本发明实施例所提供的图像选中方法中的各个步骤。
上述图像选中方法和装置可应用于任何需要进行选中图像的场景,例如,操作系统桌面图标选中、游戏中的图像选中等等。
下面将基于上面的本发明涉及的共性方面,对本发明实施例进一步详细说明。
图3a示出了上述图像选中装置所执行的图像选中方法的一种示例性流程,其可包括:
300部分:生成配置文件。
上述配置文件中包括图像标识以及对应的边缘顶点坐标集合。
其中,图像标识用于表征图片中的图像或者表征图片。
需要说明的是,图片与图像是不同。以图3b所示图片为例,图片一般为矩形的,例如像素为16*16的图片。在图片中有图像,图像则没有固定的形状。
此外,需要说明的是,边缘顶点坐标集合包括,图像标识表征的图像的边缘顶点在图片中的坐标。
假定某图片像素为16*16,该图片的坐标系如图3b所示,以左上角为原点(0,0),x轴和y轴的最大取值为15。假定,图片中的图像对应的边缘顶点集合中包括4个边缘顶点(A、B、C、D),则边缘顶点坐标集合中储存的是各边缘顶点A、B、C、D相对于原点(0,0)的坐标。
由于边缘顶点坐标集合保存的是边缘顶点在图片的坐标系下的坐标,这样,无论图片在屏幕中的哪个位置,边缘顶点在这个图片上的坐标均不会发生变化。
更具体的,配置文件的格式可为图像标识+数组。举例来讲,假定某一图片的图像标识是0001,该图片中的图像对应的边缘顶点集合中包括4个边缘顶点,则在配置文件中,图像标识0001之后有一个数组,数组中保存有这4个边缘顶点的坐标信息。
在一个示例中,配置文件具体可为xml、bin文件或其他可跨平台(语言)的文件,从而可在任意平台、任意代码中直接读取,不会受限于游戏或应用开发的代码种类及开发平台。
301部分:获取电子设备的输入设备输入的位置信息。
上述输入设备一般可为鼠标、触摸屏或键盘。
以游戏场景为例,玩家在移动终端上点击触摸屏,可输入点击位置信息。
302部分:从上述配置文件中获取目标图像标识对应的边缘顶点坐标集合。
获取到的边缘顶点坐标集合可称为目标边缘顶点坐标集合。
更具体的,目标图像标识可为存在于当前操作界面(例如游戏界面)中的任一图像对应的图像标识。
举例来讲,配置文件中包括10个图像标识以及相应的边缘顶点坐标集合。
而当前操作界面中包含2个图像,其对应的图像标识分别为0001和1000,则目标图像标识可为0001、1000。
303部分:将上述位置信息和目标边缘顶点坐标集合中的边缘顶点的坐标,转化为同一坐标系下的坐标(此部分可简称为统一坐标系)。
前述提及了,边缘顶点坐标为边缘顶点在图片的坐标系下的坐标。
而301部分获取的位置信息,是在屏幕坐标系或世界坐标系下的坐标。
为了统一,需要将位置信息和边缘顶点的坐标,转化为同一坐标系下的坐标,后续在304部分才可进行判断。
304部分:判断上述位置信息对应的坐标,是否位于上述目标边缘顶点坐标集合中的边缘顶点构成的多边形中;若是,进入305部分,否则进入306部分。
上述多边形可为凸多边形,也可为凹多边形。
请参见图3c,假定目标边缘顶点坐标集合中有四个边缘顶点A-D,其所构成的多边形如图3c的虚线框所示。
若位置信息对应坐标点E,则可判断出位置信息对应的坐标并未位于多边形中。而若位置信息对应坐标点E’,则可判断出该位置信息对应的坐标位于多边形中。
需要说明的是,对图3c所示的图像而言,凸多边形会比真正的图像多包含一小部分(一般为透明的),但是整体上不会对操作有明显影响。对于个别透明部分过大的图像,可辅以手动调整顶点坐标的方式进行优化。
在配置文件生成过程中,若不对边缘顶点坐标集合手动调整,则根据边缘顶点坐标集合中的坐标生成的一定是凸多边形,但是可以根据特殊图像特殊情况手动调整成凹多边形。
在一个示例中,手动调整顶点坐标(编辑边缘顶点坐标集合)的方式可具体包括:
步骤A:图像选中装置提供调整界面。
步骤B:图像选中装置接收通过输入设备输入的图像标识。
上述输入设备一般可为鼠标、触摸屏或键盘。
用户可在调整界面的查询窗口中输入图像标识。
或者,在调整界面上可提供图像缩略图,用户通过鼠标、触摸屏或键盘点击图像缩略图,也可输入被点击的图像缩略图对应的图像标识。
步骤C:图像选中装置查询输入的图像标识对应的边缘顶点坐标集合,并显示获取到的边缘顶点坐标集合中的边缘顶点构成的多边形。
步骤D:图像选中装置监听输入设备;
步骤E:当监听到输入设备的操作事件时,图像选中装置执行与所述操作事件相对应的动作。
举例来讲,以鼠标输入为例,在图像选中装置监听到鼠标点击上述多边形的某一边缘顶点的事件并保持不松开时(可称为边缘顶点选中按下(未弹起)事件),图像选中装置所执行的与操行事件相对应的动作包括:在使用者拖动鼠标的过程中,令被点击选中的边缘顶点追随鼠标的移动而移动,在监听到鼠标被松开时,获得该被点击选中边缘顶点的新位置。这里所说的新位置可以是被点击选中边缘顶点在显示屏上的新坐标(或世界坐标系下的新坐标),则后续会进行坐标系转换,将其转换为边缘顶点在图片的坐标系下的新坐标。
若用户点击保存按钮,图像选中装置监听到保存事件,会将新坐标保存至边缘顶点坐标集合。
当然,也可使用鼠标拉选出多个边缘顶点,对其进行移动,在此不作赘述。
再举例来讲,仍以鼠标输入为例,在图像选中装置监听到鼠标单击上述多边形的某一边缘顶点的事件时,图像选中装置所执行的与操行事件相对应的动作包括:标亮被单击的边缘顶点。
在边缘顶点被标亮的情况下,可对其进行删除。其操作可以是,使用者点击鼠标右键,选择删除选项,则图像选中装置监听到删除事件,其所执行的相应的动作是删除被标亮的边缘顶点的坐标。
当然,也可使用鼠标拉选出多个边缘顶点,对其进行删除,在此不作赘述。
或者,在边缘顶点被标亮的情况下,也可输入被标亮的边缘顶点的新坐标,以调整被标亮的边缘顶点的位置。该新坐标可为被标亮的边缘顶点在显示屏上的新坐标(或世界坐标系下的新坐标),则图像选中装置监听到坐标更改事件,其所执行的相应的动作可包括:对新坐标进行坐标系转换,将其转换为在图片的坐标系下的新坐标。若用户点击保存按钮,图像选中装置监听到保存事件,会将新坐标保存至边缘顶点坐标集合。
此外,本发明实施例还可支持添加新边缘顶点。
仍以鼠标输入为例,用户可使用鼠标右键点击非边缘顶点所在的位置,从弹出的选项中选择添加边缘顶点选项,则图像选中装置监听到边缘顶点添加事件,其所执行的相应的动作是将鼠标右键点击的位置进行坐标系转换,将其转换为在图片的坐标系下的坐标,并显示该新添加的边缘顶点。若用户点击保存按钮,图像选中装置监听到保存事件,会将新坐标保存至边缘顶点坐标集合。
或者,图像选中装置监听到边缘顶点添加事件后,会在鼠标右键点击的位置出现一个标亮的新坐标点(新边缘顶点),使用鼠标拖动该新坐标点,新坐标点追随鼠标的移动而移动。在监听到鼠标被松开时,获得该新坐标点的位置,对坐标进行坐标系转换,可得到新边缘顶点在图片的坐标系下的坐标。若用户点击保存按钮,图像选中装置监听到保存事件,会将新边缘顶点的坐标保存至边缘顶点坐标集合。
305部分:确定上述目标图像标识表征的图像被选中。
306部分:确定上述目标图像标识表征的图像未被选中。
需要说明的是,300部分可由某一图像选中装置(例如服务器)执行,而301-306部分乃至后续的307-309部分,可由另一图像选中装置(例如终端/客户端)执行。
当然,300-306部分乃至后续的307-309部分,也可由同一图像选中装置执行。
还需要说明的是,在当前操作界面包含多个图像(例如图3d)时,可遍历当前操作界面中各图像对应的边缘顶点坐标集合,逐个去判断位置信息是否位于某一集合中的边缘顶点构成的多边形中。
则请参见图3e或3f,在306部分或305部分之后还可包括:
307部分:判断当前操作界面所有图像是否都已判定完毕,若是,进入309部分,否则进入308部分。
308部分:获取下一目标图像标识,返回302部分。
309部分:选中流程结束。
可见,在本发明实施例中,以配置文件记录图片中的图像的边缘顶点坐标集合,上述边缘顶点坐标集合中的边缘顶点围成的多边形标定了图片的可选中区域。在电子设备的使用者输入位置信息后,先经坐标转化,之后会判断位置信息对应的坐标是否位于目标边缘顶点坐标集合中的边缘顶点构成的多边形中,从而判定目标边缘顶点坐标集合对应的图像是否被选中。本发明实施例所提供的技术方案中的多边形与现有技术方案中的最小外接矩形相比,缩小了判定范围,使得电子设备使用者的点选操作更具有针对性,图像的选中更为准确。
此外,与图1c所示的现有技术方案(像素值判定)相比较,本发明实施例中边缘顶点坐标集合所围成的区域是一个多边形,所有落在这个多边形内的点击位置都会被判定为选中,因此不会出现像素值判定方式可能出现的,因物件形状特殊(比如边缘毛刺过多或者中间大范围镂空)而影响判断结果。其通用性、灵活性、准确性均高于像素值判定方式。
需要说明的是,本发明针对的是图像本身是否被点击选中,在实际游戏中,可能存在图像重叠的情况,也就是可能存在多个图像都满足被点击选中的条件,最终选择哪一个图像作为选定对象,需要根据实际需求来判定(例如选择最上层的图像作为选定对象),在此不作赘言。
图4a示出了图像选中装置所执行的图像选中方法的另一种示例性流程(在本实施例中,重点将介绍如何生成配置文件),其可包括:
400部分:创建空白的通用配置文件。
通用配置文件具体可为xml、bin文件或其他可跨平台(语言)的通用文件,从而可在任意平台、任意代码中直接读取,不会受限于游戏或应用开发的代码种类及开发平台。
401部分:获取图片。
更具体的,可从图片库中获取图片。也可从存储图片的文件夹中获取图片。
关于图片与图像的相关介绍可参见前述300部分的介绍,在此不作赘述。
402部分:对获取的图片中的图像进行边缘检测,得到包含图像的所有边缘顶点的坐标的坐标集合。
边缘检测是图像处理和计算机视觉中的基本问题,其目的是标识数字图像中变化明显的点。边缘检测可以将图像的轮廓对应的点计算出来。
在一个示例中,可采用canny算子的边缘检测算法进行边缘检测。当然,也可以根据需要采用其他类型的边缘检测算法(例如Roberts算子、Sobel算子等边缘检测算法),本发明不作具体限定。
以图4b所示的建筑图像为例,进行边缘检测后,得到的所有边缘顶点的坐标如图4c所示。
403部分:将上述坐标集合和获取的图像所对应的图像标识,添加至配置文件。
在本实施例中,包含图像的所有边缘顶点的坐标的坐标集合即为前述的边缘顶点坐标集合。
配置文件所包含的内容可参见前述300部分的介绍。
在一个示例中,当需要生成多个图片对应的配置文件时,可进行批处理。批处理方式包括:一次性导入多张图片,并对每一张图片执行402-403部分的操作。
404-409部分分别与前述的301-306部分相类似,在此不赘述。
在本发明其他实施例中,在408部分或409部分之后还可包括:
判断当前操作界面所有图像是否都已判定完毕,若是,选中流程结束;否则,获取下一目标图像标识,返回405部分。
图4c中的边缘顶点多达415个,过多的顶点会造成配置内容过多以及后续计算效率低下,为此可考虑放弃一部分精确性,在此基础上采用凸包算法来进一步缩小所需的顶点配置。因此,请参见图5a示出的由图像选中装置所执行的图像选中方法的又一种示例性流程,其至少可包括:
500-502部分与400-402部分相类似,在此不作赘述。
503部分:获取上述坐标集合的凸包。
上述凸包为包含上述坐标集合的所有凸集的交集。
凸包(Convex Hull)是图形学中的概念。在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。
简单来说,就是对于给定二维平面上的点集,凸包是将最外层的点连接起来构成的凸多边型,它能包含点集中所有的点。
在一个示例中,可采用Graham Scan凸包算法来获取坐标集合的凸包,当然,也可以根据实际需求选取其他适合的凸包算法,例如卷包裹算法(Gift Wrapping Algorithm)、快速凸包算法(Quickhull Algorithm)等凸包算法来获取坐标集合的凸包。
以图4c所示的边缘结果为例,在对图4c中的边缘顶点进行凸包算法计算后,得到的结果请参见图5b。
可以看出来,图5b的边缘顶点降低到了11个,经过Graham Scan凸包计算后的顶点是逆时针排列的,我们可以按顺序将其两两连线,所围起来的多边形就是图5b的多边形。
多边形把图像的非透明的部分包围起来。
504部分:将上述凸包和上述图像对应的图像标识,添加至配置文件。
在本实施例中,凸包即为前述的边缘顶点坐标集合。
配置文件所包含的内容可参见前述300部分的介绍。
在一个示例中,当需要生成多个图片对应的配置文件时,可进行批处理。一种批处理方式包括:一次性导入多张图片,并对每一张图片执行502-504部分的操作。
505部分与404和301部分相类似,在此不作赘述。
506部分:从上述配置文件中获取目标图像标识对应的凸包。
获取到的凸包可称为目标凸包。
507部分:将上述位置信息和目标凸包的坐标,转化为同一坐标系下的坐标(此部分可简称为统一坐标系)。
前述提及了,边缘顶点坐标为边缘顶点在图片的坐标系下的坐标。
而505部分获取的位置信息,是在屏幕坐标系或世界坐标系下的坐标。
为了统一,需要将位置信息和目标凸包中的边缘顶点的坐标,转化为同一坐标系下的坐标。后续在508部分才可进行判断。
508部分:判断上述位置信息对应的坐标,是否位于上述凸包中的边缘顶点构成的多边形中;若是,进入509部分,否则进入510部分。
509-510部分与305-306部分、408-409部分相类似,在此不作赘述。
在本发明其他实施例中,在509部分或510部分之后还可包括:
判断当前操作界面所有图像是否都已判定完毕,若是,选中流程结束;否则,获取下一目标图像标识,返回506部分。
在本发明其他实施例中,请参见图5c,还可在502部分与505部分之间包含如下步骤:
5031部分:判断上述所有边缘顶点的个数是否大于最大阈值;如果是,进入5041部分,否则进入5032部分。
最大阈值可根据需要而定,例如可为11、12等等。
5032部分:将上述坐标集合和获取的图像所对应的图像标识,添加至配置文件。
5032部分与403部分相类似,在此不作赘述。
5041部分:获取上述坐标集合的凸包。
5041部分与503部分相类似,在此不作赘述。
5042部分:将上述凸包和上述图像对应的图像标识,添加至配置文件。
5042部分与504部分相类似,在此不作赘述。
在本实施例中,在所有边缘顶点的个数大于最大阈值时,才进行凸包计息,可以减少计算量。
下面,将以游戏场景为例,对本发明的方案进行更为详细的描述。
请参见图6,本实施例的图像选中装置所执行的图像选中方法的另一种示例性流程,其可包括:
601部分:获取(或输入)图片。
601部分与401部分、501部分相类似,在此不作赘述。
602部分:对获取的图片中的图像进行canny算子边缘检测计算,得到包含图像的所有边缘顶点的顶点坐标集合Vpre。
602部分与402部分、502部分相类似,在此不作赘述。
603部分:对顶点坐标集合Vpre进行Graham Scan凸包计算,得到顶点集合V(即前述的凸包)。
603部分与503部分相类似,在此不作赘述。
604部分:将顶点集合V写入配置文件∑(V)。
604部分与504部分相类似,在此不作赘述。
在本实施例中,顶点集合V即为前述的边缘顶点坐标集合。配置文件所包含的内容可参见前述300部分的介绍。
605部分:判断所有图片是否处理完毕,若是,进入606部分,否则,返回601部分。
606部分:输出配置文件∑(V)。
更具体的,可将配置文件放到当前的文件系统中待用。比如,配置文件要被iOS上的应用使用,则将配置文件输出到iOS上的应用对应的文件夹中。再比如,配置文件要被android上的应用使用,则将配置文件输出到android应用对应的文件夹中。总之,将配置文件输出至应用可以读取的、文件系统的一个位置。
在具体实现时,可通过图像选中装置中的图像批处理单元执行上述601-606部分。
在实际应用中,我们可以通过一段通用的程序代码或独立的批处理程序,来预先、批量对游戏内所需的图片按照上述601-606部分所示流程得到配置文件。
607部分:读取配置文件∑(V)。
在一个示例中,上述601-606部分执行的时机最迟是在游戏未启动前,一般在游戏开发过程中执行。
游戏启动时,可将配置文件中的内容读取至内存。
当然,在其他实施例中,也可不将配置文件中的内容读入内存,而是在需要查询时直接查询配置文件。
608部分:玩家输入点击位置。
玩家可通过输入设备,例如鼠标、触摸屏或键盘等,输入点击位置。
608部分可参考505部分、404部分以及301部分,在此不作赘述。
609部分:获取配置文件中目标图像标识A对应的顶点集合VA
609部分与302部分、405部分、506部分相类似,在此不作赘述。
610部分:将上述位置信息和顶点集合VA中的边缘顶点的坐标,转化为同一坐标系下的坐标(此部分可简称为统一坐标系)。
610部分与303部分、406部分、507部分相类似,在此不作赘述。
611部分:判断上述位置信息对应的坐标,是否位于上述顶点集合VA中的边缘顶点构成的多边形中;若是,进入612部分,否则进入613部分。
在一个示例中,可通过计算机图形学中的交点计数检验方式来判断点击位置是否落入上述多边形中。
交点计数检验的核心思想是:从判断点(也即点击位置)作一水平射线至无穷远,计算射线与上述多边形边的交点个数。若交点个数为奇数,则点击位置在上述多边形内;否则点击位置在上述多边形之外。
除了交点计数检验方法外,也可以采用夹角之和检验法等判断点击位置是否落入上述多边形中。本发明对此不作限定。
612部分-613部分与前述的305-306部分、408-409部分、509-510部分相类似,在此不作赘述。
综上,本实施例所提出的图像选中方法的主要思想是:对图像预先进行批量处理,用有限数量的顶点坐标标记出图像,并将其记录到配置文件中;而后在游戏运行时读取上述配置文件,在游戏过程中根据玩家输入的点击位置,实时判断点击位置是否落在配置中所标记的多边形内,进而来确定某图像是否被点击选中。
相比于现有的常用的最小外接矩形以及点击位置像素值的判定技术,本发明所提供的方案具有以下优点:
(1)通用性:采用图像的预处理获得通用的有效范围顶点坐标的配置文件具有通用性,即可以在任意平台任意代码中直接读取配置文件,并进行后续判断,不会受限于游戏或应用开发的代码种类及开发平台;
(2)容错性:配置中的顶点坐标所围成的区域是一个多边形,所有落在这个多边形内的点击位置都会被判定为选中,因此不会出现像素值判定方法可能出现的因物件形状特殊比如边缘毛刺过多或者中间大范围镂空影响判断结果;
(3)灵活性:如果对生成的范围顶点不满意,还可以根据具体需要手动调整来控制图像的有效范围,相比像素值判断方法,本方案具有更大的灵活性。
图7a示出了上述实施例中所涉及的图像选中装置的一种可能的结构示意图,包括:
获取单元701,用于获取通过电子设备的输入设备输入的位置信息;
处理单元702,用于:
从配置文件中获取目标图像标识对应的边缘顶点坐标集合,获取到的边缘顶点坐标集合为目标边缘顶点坐标集合;
将上述位置信息和上述目标边缘顶点坐标集合中的边缘顶点的坐标,转化为同一坐标系下的坐标;
判断上述位置信息对应的坐标,是否位于上述目标边缘顶点坐标集合中的边缘顶点构成的多边形中;
在判断出上述位置信息对应的坐标位于目标边缘顶点坐标集合中的边缘顶点构成的多边形中时,确定该目标图像标识表征的图像被选中。
在本发明其他实施例中,上述处理单元702还用于:
在判断出上述位置信息对应的坐标未位于目标边缘顶点坐标集合中的边缘顶点构成的多边形中时,确定该目标图像标识表征的图像未被选中。
若是,判定上述目标图像标识表征的图像被选中,否则,判定上述目标图像标识表征的图像未被选中。
在本发明其他实施例中,请参见图7b,上述所有实施例中的图像选中装置还可包括:生成单元703,用于生成上述配置文件。
在其他实施例中,也可以是生成单元703应用于某一设备(例如服务器)中,而获取单元701和处理单元702应用于另一设备中(例如终端/客户端)。
获取单元701可用于执行图3a、图3e和图3f所示的301部分,图4a所示的404部分,图5a所示的505部分,图5c所示的505部分,图6所示的608部分。
处理单元702可用于执行图3a所示的302-306部分,图3e所示的302-309部分,图3f所示的302-309部分,图4a所示的402-409部分,图5a、图5c所示的506-510部分,图6所示的607部分、609-613部分。
生成单元703可用于执行图3a、图3e和图3f所示的300部分,图4a所示的400-403部分,图5a所示的500-504部分,图5c所示的500-502部分、5031-5032部分、以及5041-5042部分,图6所示的601-606部分。
上述所有实施例所涉及的图像选中装置/电子设备/终端的另一种可能的结构示意图可参见图2,包括:
总线、处理器1、存储器2、通信接口3、输入设备4和输出设备5。处理器1、存储器2、通信接口3、输入设备4和输出设备5通过总线相互连接。其中:
总线可包括一通路,在计算机系统各个部件之间传送信息。
处理器1可以是通用处理器,例如通用中央处理器(CPU)、网络处理器(NetworkProcessor,简称NP)、微处理器等,也可以是特定应用集成电路(application-specificintegrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
处理器1可包括主处理器,还可包括基带芯片、调制解调器等。
存储器2中保存有执行本发明技术方案的程序或脚本,还可以保存有操作系统和其他关键业务。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。脚本则通常以文本(如ASCII)保存,只在被调用时进行解释或编译。
更具体的,存储器2可以包括只读存储器(read-only memory,ROM)、可存储静态信息和指令的其他类型的静态存储设备、随机存取存储器(random access memory,RAM)、可存储信息和指令的其他类型的动态存储设备、磁盘存储器、flash等等。
输入设备4可包括接收用户输入的数据和信息的装置,例如键盘、鼠标、摄像头、扫描仪、光笔、语音输入装置、触摸屏、计步器或重力感应器等。
输出设备5可包括允许输出信息给用户的装置,例如显示屏、打印机、扬声器等。
通信接口3可包括使用任何收发器一类的装置,以便与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(WLAN)等。
控制器/处理器可用于执行图3a、图3e、图3f、图4a、图5a、图5c、图6涉及图像选中装置/电子设备/终端的处理过程和/或用于本申请所描述的技术的其他过程。控制器/处理器也可用于实现前述处理单元702以及获取单元701的功能。
通信接口则用于支持图像选中装置/电子设备/终端与其他装置进行通信。
可以理解的是,图2仅仅示出了图像选中装置/电子设备/终端的简化设计。在实际应用中,图像选中装置/电子设备/终端可以包含任意数量的发射器,接收器,处理器,控制器,存储器,通信接口等,而所有可以实现本发明的图像选中装置/电子设备/终端都在本发明的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、WD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (17)

1.一种图像选中方法,应用于电子设备,其特征在于,基于配置文件,所述配置文件包括图像标识以及与所述图像标识对应的边缘顶点坐标集合;其中,所述图像标识用于表征图片中的图像,所述图像标识对应的边缘顶点坐标集合包括,所述图像标识表征的图像的边缘顶点在图片中的坐标;
所述方法包括:
获取通过所述电子设备的输入设备输入的位置信息;
从所述配置文件中获取目标图像标识对应的边缘顶点坐标集合,获取到的边缘顶点坐标集合为目标边缘顶点坐标集合;
将所述位置信息和所述目标边缘顶点坐标集合中的边缘顶点的坐标,转化为同一坐标系下的坐标;
判断所述位置信息对应的坐标,是否位于所述目标边缘顶点坐标集合中的边缘顶点构成的多边形中;
在判断出所述位置信息对应的坐标位于所述目标边缘顶点坐标集合中的边缘顶点构成的多边形中时,确定所述目标图像标识表征的图像被选中;所述目标图像标识为存在于当前操作界面中的任一图像对应的标识。
2.如权利要求1所述的方法,其特征在于,
在判断出所述位置信息对应的坐标未位于所述目标边缘顶点坐标集合中的边缘顶点构成的多边形中时,确定所述目标图像标识表征的图像未被选中。
3.如权利要求1所述的方法,其特征在于,在获取所述电子设备的输入设备输入的位置信息之前,还包括:生成配置文件。
4.如权利要求3所述的方法,其特征在于,所述生成配置文件包括:
获取图片;
对所述图片中的图像进行边缘检测,得到包含所述图像的所有边缘顶点的坐标的坐标集合;所述坐标集合即为所述边缘顶点坐标集合;
将所述坐标集合和所述图像对应的图像标识,添加至所述配置文件。
5.如权利要求3所述的方法,其特征在于,所述生成配置文件包括:
获取图片;
对所述图片中的图像进行边缘检测,得到包含所述图像的所有边缘顶点的坐标的坐标集合;
获取包含所述坐标集合的所有凸集的交集;所述交集即为所述边缘顶点坐标集合;
将所述交集和所述图像对应的图像标识,添加至所述配置文件。
6.如权利要求3所述的方法,其特征在于,所述生成配置文件包括:
获取图片;
对所述图片中的图像进行边缘检测,得到包含所述图像的所有边缘顶点的坐标的坐标集合;
判断所述坐标集合中的边缘顶点的个数是否大于最大阈值;
若所述坐标集合中的边缘顶点的个数大于所述最大阈值,获取包含所述坐标集合的所有凸集的交集,所述交集即为所述边缘顶点坐标集合;将所述交集和所述图像对应的图像标识,添加至所述配置文件;
若所述坐标集合中的边缘顶点的个数小于等于所述最大阈值,将所述坐标集合和所述图像对应的图像标识,添加至所述配置文件。
7.如权利要求4-6任一项所述的方法,其特征在于,所述生成配置文件还包括:
编辑所述边缘顶点坐标集合。
8.如权利要求7所述的方法,其特征在于,所述编辑所述边缘顶点坐标集合包括:
接收通过所述电子设备的输入设备输入的图像标识;
查询输入的图像标识对应的边缘顶点坐标集合,并显示获取到的边缘顶点坐标集合中的边缘顶点构成的多边形;
监听所述输入设备;
当监听到输入设备的操作事件时,执行与所述操作事件相对应的动作。
9.如权利要求1所述的方法,其特征在于,所述边缘顶点坐标集合中的顶点坐标的排序为逆时针序。
10.一种图像选中装置,其特征在于,基于配置文件,所述配置文件包括图像标识以及与所述图像标识对应的边缘顶点坐标集合;其中,所述图像标识用于表征图片中的图像,所述图像标识对应的边缘顶点坐标集合包括,所述图像标识表征的图像的边缘顶点在图片中的坐标;
所述图像选中装置包括:
获取单元,用于获取通过电子设备的输入设备输入的位置信息;
处理单元,用于:
从配置文件中获取目标图像标识对应的边缘顶点坐标集合,获取到的边缘顶点坐标集合为目标边缘顶点坐标集合;
将所述位置信息和所述目标边缘顶点坐标集合中的边缘顶点的坐标,转化为同一坐标系下的坐标;
判断所述位置信息对应的坐标,是否位于所述目标边缘顶点坐标集合中的边缘顶点构成的多边形中;
在判断出所述位置信息对应的坐标位于所述目标边缘顶点坐标集合中的边缘顶点构成的多边形中时,确定所述目标图像标识表征的图像被选中;所述目标图像标识为存在于当前操作界面中的任一图像对应的标识。
11.如权利要求10所述的装置,其特征在于,所述处理单元还用于:
在判断出所述位置信息对应的坐标未位于所述目标边缘顶点坐标集合中的边缘顶点构成的多边形中时,确定所述目标图像标识表征的图像未被选中。
12.如权利要求10所述的装置,其特征在于,还包括:
生成单元,用于生成配置文件。
13.如权利要求12所述的装置,其特征在于,在所述生成配置文件的方面,所述生成单元用于:
获取图片;
对所述图片中的图像进行边缘检测,得到包含所述图像的所有边缘顶点的坐标的坐标集合;所述坐标集合即为所述边缘顶点坐标集合;
将所述坐标集合和所述图像对应的图像标识,添加至所述配置文件。
14.如权利要求12所述的装置,其特征在于,在所述生成配置文件的方面,所述生成单元用于:
获取图片;
对所述图片中的图像进行边缘检测,得到包含所述图像的所有边缘顶点的坐标的坐标集合;
获取包含所述坐标集合的所有凸集的交集;所述交集即为所述边缘顶点坐标集合;
将所述交集和所述图像对应的图像标识,添加至所述配置文件。
15.如权利要求12所述的装置,其特征在于,在所述生成配置文件的方面,所述生成单元用于:
获取图片;
对所述图片中的图像进行边缘检测,得到包含所述图像的所有边缘顶点的坐标的坐标集合;
判断所述坐标集合中的边缘顶点的个数是否大于最大阈值;
若所述坐标集合中的边缘顶点的个数大于所述最大阈值,获取包含所述坐标集合的所有凸集的交集,所述交集即为所述边缘顶点坐标集合;将所述交集和所述图像对应的图像标识,添加至所述配置文件;
若所述坐标集合中的边缘顶点的个数小于等于所述最大阈值,将所述坐标集合和所述图像对应的图像标识,添加至所述配置文件。
16.如权利要求13-15任一项所述的装置,其特征在于,在所述生成配置文件的方面,所述生成单元还用于:编辑所述边缘顶点坐标集合。
17.一种电子设备,其特征在于,包括如权利要求10-16所述的图像选中装置。
CN201610776396.8A 2016-08-30 2016-08-30 图像选中方法及装置 Active CN106406693B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610776396.8A CN106406693B (zh) 2016-08-30 2016-08-30 图像选中方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610776396.8A CN106406693B (zh) 2016-08-30 2016-08-30 图像选中方法及装置

Publications (2)

Publication Number Publication Date
CN106406693A CN106406693A (zh) 2017-02-15
CN106406693B true CN106406693B (zh) 2018-04-27

Family

ID=58003096

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610776396.8A Active CN106406693B (zh) 2016-08-30 2016-08-30 图像选中方法及装置

Country Status (1)

Country Link
CN (1) CN106406693B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107885437A (zh) * 2017-11-29 2018-04-06 广州视源电子科技股份有限公司 多元素交互方法、装置、设备和存储介质
CN110992384B (zh) * 2019-11-15 2023-04-11 五邑大学 半自动化图像数据标注方法、电子装置及存储介质
CN112257134B (zh) * 2020-10-30 2022-09-16 久瓴(上海)智能科技有限公司 模型管理方法、装置及电子设备
CN116523738B (zh) * 2023-07-03 2024-04-05 腾讯科技(深圳)有限公司 一种任务触发方法、装置、存储介质以及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103793178A (zh) * 2014-03-05 2014-05-14 成都乐创信息科技有限公司 一种移动设备触摸屏中矢量图形编辑方法
CN104572123A (zh) * 2015-01-27 2015-04-29 广东欧珀移动通信有限公司 一种脚本生成方法及装置
CN104680050A (zh) * 2015-03-18 2015-06-03 深圳市东方拓宇科技有限公司 一种触控屏的控制方法及对应的移动终端
CN105046684A (zh) * 2015-06-15 2015-11-11 华中科技大学 一种基于多边形广义霍夫变换的图像匹配方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103793178A (zh) * 2014-03-05 2014-05-14 成都乐创信息科技有限公司 一种移动设备触摸屏中矢量图形编辑方法
CN104572123A (zh) * 2015-01-27 2015-04-29 广东欧珀移动通信有限公司 一种脚本生成方法及装置
CN104680050A (zh) * 2015-03-18 2015-06-03 深圳市东方拓宇科技有限公司 一种触控屏的控制方法及对应的移动终端
CN105046684A (zh) * 2015-06-15 2015-11-11 华中科技大学 一种基于多边形广义霍夫变换的图像匹配方法

Also Published As

Publication number Publication date
CN106406693A (zh) 2017-02-15

Similar Documents

Publication Publication Date Title
US11880977B2 (en) Interactive image matting using neural networks
US10489956B2 (en) Robust attribute transfer for character animation
CN110058685B (zh) 虚拟对象的显示方法、装置、电子设备和计算机可读存储介质
CN106406693B (zh) 图像选中方法及装置
US11049307B2 (en) Transferring vector style properties to a vector artwork
AU2019202799A1 (en) A method to automatically predict handle locations for skinningtransformations using deep learning
US10902657B2 (en) Jointly editing related objects in a digital image
US20170212661A1 (en) 3D Model Generation from 2D Images
US20100231590A1 (en) Creating and modifying 3d object textures
CN109255767A (zh) 图像处理方法和装置
US9723204B2 (en) Dynamic motion path blur kernel
US8854392B2 (en) Circular scratch shader
CN107632773A (zh) 用于获取信息的方法及装置
US9955065B2 (en) Dynamic motion path blur user interface
CN113608805B (zh) 掩膜预测方法、图像处理方法、显示方法及设备
CN109343924A (zh) Activiti流程图的重绘制方法、装置、计算机设备及存储介质
US11810247B2 (en) Technologies for rendering items within a user interface using various rendering effects
US20200097536A1 (en) Automatic generation of document layouts
US10403040B2 (en) Vector graphics rendering techniques
US9779484B2 (en) Dynamic motion path blur techniques
CN105051788B (zh) 使用多个图元进行图形处理
CN113269781A (zh) 数据生成方法、装置及电子设备
CN112714337A (zh) 视频处理方法、装置、电子设备和存储介质
CN109766034A (zh) 快捷启动应用程序的方法、装置、设备以及存储介质
CN109461203B (zh) 手势三维图像生成方法、装置、计算机设备及存储介质

Legal Events

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