本发明涉及图像处理技术领域,特别涉及一种颜色识别方法及装置。
背景技术:
在现有技术中,电子产品(诸如智能手机、平板电脑、导航仪、笔记本电脑)一般具有图像处理功能。这些电子产品在实现其基本的通信、导航等业务功能的基础上,集成了图像处理模块,从而支持拍照和摄像等功能,从而给使用者带来便利。
但是,本申请的发明人在实现本申请的过程中发现,对于某些特殊人群的使用者,例如无法辨别颜色的色盲人群,目前的具有图像处理功能的电子产品并不能针对这些特殊人群提供颜色识别业务,以帮助其进行颜色识别。
技术实现要素:
本发明的目的在于提供一种颜色识别方法及装置,能够辅助特殊人群进行颜色的识别。
为解决上述技术问题,本发明的实施方式提供了一种颜色识别方法,包括:获取显示的图像;获取所述图像中的目标位置的位置信息;根据获取的所述图像和获取的所述位置信息,识别所述图像中的目标位置的颜色;以及输出识别到的所述颜色。
本发明的实施方式还提供了一种颜色识别装置,包括:显示模块,用于显示图像;图像获取模块,用于获取显示的所述图像;位置获取模块,用于获取显示的所述图像中的目标位置的位置信息;识别模块,用于根据获取的所述图像和所述位置信息,识别所述图像中的目标位置的颜色;以及输出模块,用于输出识别到的所述颜色。
本发明实施方式相对于现有技术而言,通过获取正显示的图像以及该显示的图像中的目标位置的位置信息,并根据获取的信息,来识别并输出图像中的目标位置的颜色,从而能够辅助特殊人群进行颜色的识别,进而弥补现有技术的不足之处。
另外,所述获取显示的图像,包括:通过安卓操作系统中的媒体投影函数来创建所述图像的虚拟显示;以及根据创建的所述虚拟显示,获取显示的所述图像。本实施方式,利用安卓系统中的媒体投影(media projection)功能来获取显示的图像。此种方式,一方面可以快速、准确地获取到显示的图像,另一方面可以在后台获取而不再前台呈现,从而不影响显示的图像,也就是说不会对用户的正常浏览造成影响。
另外,所述获取显示的所述图像中的目标位置的位置信息,包括:获取指针所选取的位置的位置信息,其中所述指针浮动在显示的所述图像的上层;以及将所述指针所选取的位置的位置信息作为所述目标位置的位置信息。本实施方式,借助浮动在显示的图像的上层的指针,从而可以方便用户通过控制指针来选取目标位置。
另外,所述输出识别到的所述颜色,包括:显示识别到的所述颜色;和/或,语音提示识别到的所述颜色。本实施方式,可以采用显示(如文字提示)或者语音提示等方式来辅助用户理解目标位置的颜色。
另外,所述输出识别到的所述颜色之后,还包括:根据识别到的所述颜色,识别显示的所述图像中与所述目标位置具有相同颜色的其他位置;以及突出显示所述目标位置及识别到的所述其他位置的颜色。本实施方式,将目标位置和显示的图像中与目标位置的颜色相同的其他位置一并突出显示(如高亮显示),从而辅助特殊人群了解图像中的颜色分布情况。
附图说明
图1是根据本发明的第一实施方式的颜色识别方法的流程示意图;
图2是图1中的步骤102的实施方式的流程示意图;
图3是图1中的步骤104的实施方式的流程示意图;
图4是根据本发明的第二实施方式的颜色识别方法的流程示意图;
图5是根据本发明的第三实施方式的颜色识别装置的结构示意图;
图6是根据本发明的第五实施方式的用户终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
本发明的第一实施方式涉及一种颜色识别方法。具体流程如图1所示。图1所示的颜色识别方法可以在用户终端中使用,其中该用户终端可以为例如智能手机、平板电脑、个人数字助理、台式电脑、笔记本电脑、车载电子设备和可穿戴式电子设备,等等。具体而言,图1涉及的颜色识别方法的流程可以包括:
步骤102:获取显示的图像。
步骤104:获取显示的图像中的目标位置的位置信息。
步骤106:根据获取的图像和获取的位置信息,识别显示的图像中的目标位置的颜色。以及
步骤108:输出步骤106识别到的颜色。
其中,在步骤102中,可通过显示屏来显示图像。获取的图像可以是整个显示屏幕的图像,或者可以是部分显示屏幕的图像。例如步骤102可以获取手机的显示屏上显示的全部图像。又例如步骤102可以获取手机的显示屏上的部分图像,举例而言,当手机支持多屏操作时(即手机可以同时显示多个屏幕),可以仅获取其中一个屏幕的图像。
步骤102的获取显示的图像的流程示意图,如图2所示。其包括:在步骤202中,可以运行安卓操作系统自带的媒体投影(media projection)函数来创建显示屏显示的图像的虚拟显示(virtual display),然后在步骤204中可以根据所创建的虚拟显示,获取到显示屏显示的图像。举例而言,首先调用Media Projection函数来创建Virtual Display,然后通过创建Virtual Display时传入的由Image Reader(图像阅读)函数提供的Surface(可理解为画布)来获得屏幕图像。
本实施方式,利用安卓系统中的媒体投影(media projection)功能来获取显示屏显示的图像。此种方式,一方面可以快速、准确地获取到显示屏显示的图像,另一方面可以在后台获取图像而不再前台呈现,从而不影响显示屏显示的图像,也就是说不会对用户的正常浏览造成影响。
步骤104的获取显示的图像中的目标位置的位置信息的流程示意图,如图3所示,其包括:在步骤302中,获取显示屏中的指针所选取的位置的位置信息,其中该指针浮动在显示屏显示的图像的上层。接着,在步骤304中,将指针所选取的位置的位置信息作为目标位置的位置信息。本实施方式,通过在显示屏中为用户提供一个可操控的指针,并且用户可以通过控制该指针来选择需要识别颜色的位置,然后获取指针所选择的位置的位置信息。例如,可以创建一个浮动在屏幕的最上层的指针。并且,将该指针所选取的位置作为目标位置。例如,可以直接向WindowManager(窗口管理)添加一个显示在普通应用之上的View(指针),比如将Window type(窗口类型)设为TYPE_PHONE,然后可以通过拖动指针来选取要识别颜色的位置。其中,目标位置可以是指针所在的点也可以是指针所选出的一个区域,也就是说本实施方式可以对一个点的颜色进行识别,也可以对一个区域的颜色进行识别。
本实施方式,借助浮动在显示屏显示的图像的上层的指针,从而可以方便用户通过控制指针来选取目标位置。
在步骤106中,获取到图像和位置信息之后,可以对图像中目标位置的像素进行分析,以获取该位置的颜色信息,例如该颜色信息可以为颜色值。例如,首先由目标位置的位置信息,获取图像中该目标位置处的像素点(一个或多个),并对各像素点进行分析,从而得到每个像素点的颜色值,然后将这些像素点的颜色值进行平均,并将得到的平均值作为该目标位置的颜色值。另外,颜色值可以利用诸如红色、黑色等一般用户更容易理解的方式来表示。
其中,在步骤108中,可以在显示屏中显示识别到的颜色;和/或,语音提示识别到的颜色。例如,可以在显示屏显示的图像中的目标位置处创建一文本提示框,并在该文本提示框中显示该目标位置的颜色,例如显示其为红色、蓝色或黄色。当然,除此之外,也可以采用语音等方式来提示该目标位置的颜色,这些本实施方式均不进行限制。
本实施方式,通过获取显示屏正显示的图像以及该显示的图像中的目标位置的位置信息,并根据获取的信息,来识别并输出图像中的目标位置的颜色,从而辅助特殊人群进行颜色的识别,进而弥补现有技术的不足之处。举例而言,色盲用户在网购衣服时,一般很难区分衣服的实际颜色,因此一般不容易挑选到自己满意的衣服。而采用了本实施方式的颜色识别方法之后,则可以准确地识别衣服中各个部位的颜色并提示给色盲用户,使得色盲用户能够了解的衣服的颜色情况,从而保证色盲用户的网购能够顺利进行。
本发明的第二实施方式涉及一种颜色识别方法,其具体流程如图4所示。如图4所示,该颜色识别方法包括:
步骤402:获取显示的图像。
步骤404:获取显示的图像中的目标位置的位置信息。
步骤406:根据获取的图像和获取的位置信息,识别显示的图像中的目标位置的颜色。
步骤408:输出步骤406识别到的颜色。
步骤402~步骤408与图1中的步骤102~步骤108完全相同,在此不再赘是。除此之外,图4的方法流程还包括:
步骤410:根据识别到的颜色,识别显示的图像中与目标位置具有相同颜色的其他位置。
步骤412:突出显示该目标位置及识别到的与该目标位置具有相同颜色的其他位置的颜色。
其中,本实施方式中,在识别到目标位置的颜色之后,自动识别图像中与目标位置具有相同颜色的位置,并将这些位置及目标位置的颜色一起突出显示出来。具体的,可以依次对图像中的各个像素点进行扫描,以获取各个像素点的颜色值,然后将各个像素点的颜色值与目标位置的颜色值进行比较,若两者相同(包括在误差范围内),则确定该像素点的颜色值与目标位置的颜色相同;如果不相同,则确定该像素点的颜色与目标位置的颜色不相同。通过上述方式,当遍历完图像中的各个像素点之后,就可以确定图像中所有与目标位置的颜色相同的位置。
其中,上述的突出显示的方式例如可以是提高目标位置和这些识别到的位置的显示亮度,例如进行高亮显示。
在本实施方式中,通过将图像中与目标位置的颜色相同的区域突出显示,从而可以使得用户能够更清楚地了解屏幕图像中颜色信息的分布情况。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明的第三实施方式涉及一种颜色识别装置。具体结构如图5所示。图5所示的颜色识别装置可以应用于用户终端中,该用户终端例如可以为智能手机、平板电脑、个人数字助理、台式电脑、笔记本电脑、车载电子设备等等。具体的,图5的颜色识别装置500可以包括:
显示模块510,用于显示图像。
图像获取模块502,用于获取显示模块510显示的图像。
位置获取模块504,用于获取显示模块510显示的图像中的目标位置的位置信息。
识别模块506,用于根据图像获取模块502获取的图像和位置获取模块504获取的位置信息,识别显示模块510显示的图像中的目标位置的颜色。
输出模块508,用于输出识别模块506识别到的颜色。
其中,显示模块510可以是颜色识别装置500(如智能手机)的显示屏。图像获取模块502获取的图像可以是整个屏幕的图像,或者可以是部分屏幕的图像。例如,图像获取模块502可以获取手机的显示屏显示的全部图像。又例如图像获取模块502可以获取手机的显示屏上的部分图像,例如当手机支持多屏操作时,可以仅获取其中一个屏幕的图像。
其中,图像获取模块502可以利用安卓操作系统中的Media Projection Manager(媒体投影管理)功能来实现屏幕图像的获取。例如,可以通过安卓操作系统中的媒体投影(media projection)函数来创建显示屏显示的图像的虚拟显示(virtual display),然后根据创建的虚拟显示,获取显示屏显示的图像。例如,首先利用Media Projection创建Virtual Display,然后通过创建Virtual Display时传入的由Image Reader(图像阅读)提供的Surface(可理解为画布)来获得屏幕图像。
其中,位置获取模块504可以为用户提供一个可操控的指针,用户可以通过控制该指针来选择需要识别颜色的位置,然后获取指针所选择的位置的位置信息,其中指针所选择的位置即为目标位置,指针所选择的位置的位置信息即为目标位置的位置信息。例如,可以创建一个浮动在获取的屏幕图像的上层的指针;以及将所述指针所选取的位置作为目标位置。例如,可以直接向WindowManager(窗口管理)添加一个显示在普通应用之上的View(指针),比如Window type为TYPE_PHONE,然后可以通过拖动指针来选取要识别颜色的位置。其中目标位置可以是指针所在的点也可以是指针所选择的一个区域。
其中,识别模块506,用于在图像获取模块402获取到图像以及位置获取模块406获取到位置信息之后,对图像中的目标位置的像素进行分析,以获取该目标位置的颜色信息,例如该颜色信息可以为颜色值。例如首先由该目标位置的位置信息,获取图像中该目标位置处的所有像素点的颜色信息(如颜色值),然后将这些像素点的颜色值进行平均,并将得到的平均值作为该目标位置的颜色值。另外,可以用诸如红色、黑色等一般用户更容易理解的方式来表示该颜色值。
其中,输出模块508中,可以在显示屏中显示识别到的颜色(此时输出模块508和显示模块510可集成为同一模块);和/或,语音提示识别到的颜色(此时输出模块可具体为一语音输出模块)。例如,可以在显示屏显示的图像中的目标位置处创建一文本提示框,并在该文本提示框中显示该目标位置的颜色,例如显示其为红色、蓝色或黄色。当然,除此之外,也可以采用语音等方式来提示该目标位置的颜色,这些本实施方式均不进行限制。
本实施方式,通过获取正显示的图像以及该显示的图像中的目标位置的位置信息,并根据获取的信息,来识别并输出图像中的目标位置的颜色,从而辅助特殊人群进行颜色的识别,进而弥补现有技术的不足之处。举例而言,色盲用户在网购衣服时,一般很难区分衣服的实际颜色,因此一般不容易挑选到自己满意的衣服。而采用了本实施方式的颜色识别方法之后,则可以准确地识别衣服中各个部位的颜色并提示给色盲用户,使得色盲用户能够了解的衣服的颜色情况,从而保证色盲用户的网购能够顺利进行。
不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
本发明的第四实施方式也涉及一种颜色识别装置,其具体结构可以继续参考图5所示。该颜色识别装置500包括:图像获取模块502、位置获取模块504、识别模块506和输出模块508和显示模块510。
本实施方式与第三实施方式不同的是,识别模块506,还用于根据其识别到的目标位置的颜色,识别显示模块510(如显示屏)显示的图像中与目标位置具有相同颜色的其他位置;以及通过显示模块510突出显示该目标位置及识别到的其他位置的颜色。
其中,本实施方式中,在识别到目标位置的颜色之后,识别模块506自动识别图像中与目标位置具有相同颜色的位置,并将这些位置及目标位置一起突出显示出来。具体的,识别模块506可以依次对图像中的各个像素点进行扫描,以获取各个像素点的颜色值,然后将各个像素点的颜色值与目标位置的颜色值进行比较,若两者相同(包括在误差范围内),则确定该像素点的颜色值与目标位置的颜色相同;如果不相同,则确定该像素点的颜色与目标位置的颜色不相同。通过上述方式,当遍历完图像中的各个像素点之后,就可以确定图像中所有与目标位置的颜色相同的位置。其中,上述的突出显示的方式例如可以是提高目标位置和这些识别到的位置的显示亮度,例如进行高亮显示。
在本实施方式中,通过将图像中与目标位置的颜色相同的区域突出显示,从而可以使得用户能够更清楚地了解屏幕图像中颜色信息的分布情况。
不难发现,本实施方式为与第二实施方式相对应的系统实施例,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。
值得一提的是,以上实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本发明的第五实施方式涉及一种用户终端,其结构如图6所示。该用户终端600例如可以是智能手机、平板电脑、个人数字助理、可穿戴式设备,等等。如图6所示,该用户终端600包括:显示屏602、处理器604、通信组件606和存储器608。其中显示屏602可以为触控屏,其不仅具有显示功能还有接收用户的输入控制的功能,例如接收用户对指针的控制,以在屏幕图像上选择需要识别颜色的位置。其中处理器604为终端的核心,其可以由CPU等实现,处理器604可以实现上述图像获取模块、位置获取模块和识别模块的功能,实现屏幕图像的获取,位置信息的获取,颜色的识别等。其中通信组件606用于实现用户终端600的无线或有线通信功能,从而使得终端能够与服务器交互,例如从服务器中获取图像,然后由显示屏602对该图像进行显示。其中,存储器608用于存储处理器604可执行的程序代码或者其他信息。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。