自动化方法和设备及预处理方法和计算机可读媒体与流程

文档序号:22235333发布日期:2020-09-15 19:42阅读:119来源:国知局
自动化方法和设备及预处理方法和计算机可读媒体与流程

本申请是申请日为2016年3月17日、申请号为201610153315.9、发明名称为“自动化方法和设备及计算机可读媒体”的发明申请的分案申请。

相关申请案的交叉引用

本申请主张2015年3月17日申请并且题为“用于优化对图像的数字上色的paintyourplace(上色您的家)应用程序(paintyourplaceapplicationforoptimizingdigitalpaintingofanimage)”的第62/134,250号美国临时专利申请案的权益和优先权,所述美国临时专利申请案的内容以全文引用的方式并入本文中。

本发明涉及自动化色彩选择和协调系统,且更确切地说,涉及使得用户能够形象地看到所选择的色彩将如何出现在房间或其它可上色区域的所上载摄影图像中的系统。本发明进一步涉及用于对此种所上载图像进行数字上色的方法和设备以及用于优化此些程序的方法和设备。



背景技术:

在例如让与给加利福尼亚州圣安娜的贝尔工艺公司(behrprocesscorporation,santaana,california)的2012年3月15日公开、题为“数据驱动的色彩协调器(datadrivencolorcoordinator)”的第2012/0062583号美国专利公开案中揭示了自动化色彩选择和协调系统。



技术实现要素:

根据本发明第一方面,提供一种用于使得用户能够对上载到计算机显示装置的图像进行上色的自动化方法,所述自动化方法包括:

使用一个或多个计算机,以结合计算机可读媒体及计算机控制显示设备执行多个操作,所述操作包括在所述计算机控制的显示设备上产生第一显示,所述第一显示包括:由用户上载的房间图像的显示;由所述用户选择的至少一个色彩的显示;第一图示,其包括使得能够选择笔刷工具的链接;第二图示,其包括使得能够选择橡皮擦工具的链接;以及第三图示,其包括使得能够选择遮蔽工具的链接;

使得所述用户能够执行颜料桶操作,以将所选择的色彩应用于已上载的所述图像的第一区域;

使得所述用户能够使用所述笔刷工具,来填充在将所述所选择的色彩应用于所述第一区域期间遗漏的区域;

使得所述用户能够使用所述橡皮擦工具,来去除在应用所述所选择的色彩期间蔓延到非所要区域中的色彩;以及

使得所述用户能够使用所述遮蔽工具,来遮挡所述房间图像的所选择的区域,使得色彩将不会被应用于所选择的区域。

优选地,所述方法进一步包括在所述第一显示上产生容差滑块工具的显示,并且使得所述用户能够使用所述滑块工具来增大或减小要上色的区域。

优选地,所述容差滑块工具的所述显示包括在直角三角形内的变暗区域,可向左或向右拉动所述变暗区域以增大或减小所述要上色的区域。

优选地,选择所述笔刷图示引出刷大小选择显示,所述刷大小选择显示经配置以使得所述用户能够从多个不同大小的刷当中进行选择,所述不同大小的刷中的每一个使得能够覆盖不同大小的区域。

优选地,所述笔刷工具通过可移动圆表示在所述第一显示上,所述圆的半径对应于在所述刷大小选择显示上选择的所述刷大小。

优选地,所述遮蔽工具使得用户能够利用直线阻挡不上色的区域。

优选地,所述遮蔽工具使得用户能够在所述第一显示上产生多边形以遮挡所述多边形内的区域。

优选地,所述颜料桶操作包括单击所选择的色彩并且接着单击待应用所述所选择的色彩的区域。

优选地,所述颜料桶操作使用鼠标可移动颜料桶图示。

优选地,所述第一上色区域为墙壁、天花板或门中的一个。

根据本发明第二方面,提供一种其中实施有计算机可读程序代码的非暂时性计算机可读媒体,所述计算机可读程序代码适于由一个或多个计算机执行以实施包括以下步骤的方法:

在计算机控制的显示设备上产生第一显示,所述第一显示包括:由用户上载的房间图像的显示;由所述用户选择的至少一个色彩的显示;第一图示,其包括使得能够选择笔刷工具的链接;第二图示,其包括使得能够选择橡皮擦工具的链接;以及第三图示,其包括使得能够选择遮蔽工具的链接;

使得所述用户能够执行颜料桶操作,以将所选择的色彩应用于所述已上载的所述图像的第一区域;

使得所述用户能够使用所述笔刷工具,来填充在将所述所选择的色彩应用于所述第一区域期间遗漏的区域;

使得所述用户能够使用所述橡皮擦工具,来去除在应用所述所选择的色彩期间蔓延到非所要区域中的色彩;以及

使得所述用户能够使用所述遮蔽工具,来遮挡所述房间图像的所选择的区域,使得色彩将不会被应用于所选择的区域。

优选地,所述方法进一步包括在所述第一显示上产生容差滑块工具的显示,并且使得所述用户能够使用所述滑块工具来增大或减小要上色的所述区域。

优选地,所述容差滑块工具的所述显示包括在直角三角形内的变暗区域,其可向左或向右拉动所述变暗区域以增大或减小所述要上色的区域。

根据本发明第三方面,提供一种设备,其包括:显示装置;至少一个计算装置;以及相关联的数据存储存储器,所述显示装置、至少一个计算装置和相关联数据存储存储器经配置,以在所述显示装置上产生由用户上载的房间的图像的显示,并且使得所述用户能够执行颜料桶操作以将所选择的色彩应用于已上载的所述图像的第一区域,所述显示进一步包括:第一图示,其包括使得能够选择笔刷工具以填充在将所述所选择的色彩应用于所述第一区域期间遗漏的区域的链接;第二图示,其包括使得能够选择橡皮擦工具以去除在应用所述所选择的色彩期间蔓延到非所要区域中的色彩的链接;以及第三图示,其包括使得能够选择遮蔽工具以遮挡不上色的区域的链接。

优选地,所述设备进一步包括在所述第一显示上产生容差滑块工具的显示,并且使得所述用户能够使用所述滑块工具来增大或减小要上色的区域。

优选地,所述容差滑块工具的所述显示包括在直角三角形内的变暗区域,可向左或向右拉动所述变暗区域以增大或减小所述要上色的区域。

根据本发明第四方面,提供一种使用一个或多个经编程计算机对已上载的数字图像进行预处理的方法,所述方法包括:运行双侧平滑算法以便从所述图像的平坦表面去除噪点,同时保持所述图像中的边缘的完整性和色差;对所述图像运行索贝尔和坎尼边缘检测算法,并且独立地存储由运行所述坎尼算法产生的图像数据与由运行所述索贝尔算法产生的图像数据;对所述索贝尔图像数据执行填色算法以执行将所述图像分割成具有相同色彩的区段,其中所述填色算法经修改以考虑所述索贝尔算法的自然梯度,由此允许界定一个或多个容差,该一个或多个容差用于界定所述图像中的边缘;以及如果通过应用所述填色算法和所述索贝尔算法而确定的区段的边缘在坎尼边缘的所选择的容差内,那么将指派给所述区段的所述颜料色彩拉动到所述坎尼边缘。

优选地,所述方法进一步包括:在经识别用于分割的整个区域上对所述区域的像素色彩求平均;经由先前所找到区段迭代所述区域的所述平均像素色彩,以确定所述区域是否具有与先前所找到区段相同或类似的平均像素色彩;以及如果所述区域具有与先前所找到区段相同或类似的平均像素色彩,那么使所述区域与先前所找到色彩相关联。

优选地,所述方法进一步包括:对所有相关联区段求平均,以界定跨越多个区段的相同色彩的基础光度;以及将所分析的区段与其总平均色彩一起存储以用于未来计算。

优选地,所述方法进一步包括拍摄每一像素的光度的快照并且将所述快照置于存储器中。

优选地,所述容差界定为从正检查的当前像素起六个像素。

优选地,应用以下函数:

优选地,其中所述图像预处理的应用程序在客户端侧上运行而不依赖于服务器,从而导致更快并且更具响应性的处理。

优选地,其中所述应用程序以浏览器语言编写。

根据本发明第五方面,提供一种其中实施有计算机可读程序代码的非暂时性计算机可读媒体,所述计算机可读程序代码适于由一个或多个计算机执行以实施使用一个或多个经编程计算机对已上载的数字图像进行预处理的方法,所述方法包括:

运行双侧平滑算法以便从所述图像的平坦表面去除噪点,同时保持所述图像中的边缘的完整性和色差;

对所述图像运行索贝尔和坎尼边缘检测算法,并且独立地存储由运行所述坎尼算法产生的图像数据与由运行所述索贝尔算法产生的图像数据;

对所述索贝尔图像数据执行填色算法以执行将所述图像分割成具有相同色彩的区段,其中所述填色算法经修改以考虑所述索贝尔算法的自然梯度,由此允许界定一个或多个容差,该一个或多个容差用于界定所述图像中的边缘;以及

如果通过应用所述填色算法和所述索贝尔算法而确定的区段的边缘在坎尼边缘的所选择的容差内,那么将指派给所述区段的所述颜料色彩拉动到所述坎尼边缘。

根据说明性实施例,说明性数字图像上色应用程序的面向用户的前端屏幕画面包含颜料桶工具、笔刷工具、橡皮擦工具和遮蔽工具。在说明性实施例中,颜料桶工具使得用户能够将所选择的色彩应用于例如房间的墙壁等所上载图像的所选择的区域,由此模拟利用所选择的色彩对房间进行上色,并且允许用户形象地看到(例如)用户自身的房间在利用所选择的色彩上色后看起来将如何。在说明性实施例中,使用笔刷工具来填充在将所选择的色彩应用于第一区域期间遗漏的区域,使用橡皮擦工具来去除在应用所选择的色彩期间蔓延到非所要区域中的色彩,并且使用遮蔽工具来遮挡不上色的区域。在一个说明性实施例中,可使用两个遮蔽工具来应用直线遮蔽或多边形遮蔽。

在说明性实施例中,还提供容差滑块工具以辅助恰当地填充要上色的区域。容差滑块工具可使得用户能够增大或减小要上色的区域。在一个实施例中,容差滑块工具的显示包括在直角三角形中的变暗区域,其可向右或向左拉动所述变暗区域以增大或减小要上色区域。

本发明的另一方面涉及在对已上载的数字图像“上色”之前对所述图像进行预处理的方法,其中运行双侧平滑算法以便从所述图像的平坦表面去除噪点,同时保持边缘的完整性和色差。接着对所述图像运行索贝尔(sobel)和坎尼(canny)边缘检测算法,并且独立地存储由运行坎尼算法产生的图像数据与由运行索贝尔算法产生的图像数据。接着对索贝尔图像数据执行填色算法以执行将所述图像分割成具有相同色彩的区段,其中所述填色算法经修改以考虑索贝尔算法的自然梯度,由此允许界定一个或多个容差,该一个或多个容差用于界定图像边缘。如果通过应用填色算法和索贝尔算法而确定的区段的边缘接近于坎尼边缘,那么将指派给所述区段的颜料色彩拉动到坎尼边缘以给出渐变边缘。

根据一个说明性实施例,接着在经识别用于进行分割的整个区域上对区域的像素色彩求平均。接着通过先前所找到区段迭代所述区域的平均像素色彩,以确定所述区域是否具有与先前所找到区段相同或类似的平均像素色彩,并且如果所述区域具有与先前所找到区段相同或类似的平均像素色彩,那么使所述区域与先前所找到色彩相关联。可对所有相关联区段求平均,以界定跨越多个区段的相同色彩的基础光度,并且可接着将所分析的区段与其总平均色彩一起存储以用于未来计算。

附图说明

图1为根据说明性实施例的用于实施paintyourplace(上色您的家)应用程序的说明性系统的框图;

图2为根据说明性实施例的用于实施paintyourplace应用程序的替代说明性系统的框图;

图3为说明性实施例的面向客户的颜料选择和协调系统的说明性屏幕显示;

图4为说明性实施例的面向客户的颜料选择和协调系统的第二说明性屏幕显示;

图5为说明性实施例的面向客户的颜料选择和协调系统的第三说明性屏幕显示;

图6为说明性实施例的面向客户的颜料选择和协调系统的第四说明性屏幕显示;

图7为说明性实施例的面向客户的颜料选择和协调系统的第五说明性屏幕显示;

图8为说明性实施例的面向客户的颜料选择和协调系统的第六说明性屏幕显示;

图9为说明性实施例的面向客户的颜料选择和协调系统的第七说明性屏幕显示;

图10为使得用户能够选择用于上色的图像的屏幕显示;

图11为使得用户能够调整所选择的图像的定位的屏幕显示;

图12为使得用户能够看到已上载所选择的图像的多少百分比的屏幕显示;

图13为使得用户能够选择颜料桶特征以对所选择的图像进行上色的屏幕显示;

图14为说明颜料桶画面和相关联滑块工具的使用的屏幕显示;

图15为说明颜料桶显示和相关联滑块工具的使用的另一屏幕显示;

图16为说明笔刷工具的使用的屏幕显示;

图17为说明笔刷工具的使用的另一屏幕显示;

图18为说明橡皮擦工具的使用的屏幕显示;

图19为说明橡皮擦工具的使用的另一屏幕显示;

图20为说明第一遮蔽工具的使用的屏幕显示;

图21为说明第一遮蔽工具的使用的另一屏幕显示;

图22为说明第二“多边形”遮蔽工具的使用的屏幕显示;

图23为说明第二“多边形”工具的使用的另一屏幕显示;

图24为说明第二“多边形”遮蔽工具的使用的另一屏幕显示;

图25为说明第二“多边形”遮蔽工具的使用的另一屏幕显示;

图26为说明返回到原始未上色图像的屏幕显示;

图27为进一步说明颜料桶工具的屏幕显示;

图28为进一步说明笔刷工具的屏幕显示;

图29为说明根据说明性实施例的对图像进行预处理的流程图;

图30呈现说明性已上载的图像;

图31展示根据说明性实施例的在应用索贝尔算法之后在膨胀与腐蚀之后的图28的图像;

图32说明根据说明性实施例的将坎尼算法应用于图28的图像的结果;

图33说明根据说明性实施例的图28的图像的分割;

图34为说明根据说明性实施例的对图像进行上色的流程图的第一部分;

图35为图34的流程图的第二部分;以及

图36为图34的流程图的第三部分。

具体实施方式

图1说明其中多个远程计算机300可访问颜料色彩选择和协调网站301的系统的框图,在一个实施例中,该网站可提供或下载paintyourplace应用程序到最终用户,如下文进一步描述。网站301可耦合到因特网303以便为例如处于家中最终用户地点处的大量远程终端/计算机300提供访问。每一远程计算机300控制显示设备305,该显示设备可包括例如一个或多个crt或平坦屏幕计算机监视器或显示器。

网站301可包括服务器引擎309(其包括一个或多个计算机或服务器)、相关联存储器317和服务器软件(例如服务器操作系统和服务器应用程序)。在一个实施例中,网站301经配置而以数字格式存储和传输多个相关文档或网页311(例如html文档),并且进一步可包含存储色彩数据的色彩数据库315,如(例如)以全文引用的方式并入本文中的题为“色彩选择和协调系统(colorselectionandcoordinationsystem)”的第7,999,825号美国专利中所描述。将了解,在一个实施例中,计算机控制的显示设备将数字格式网页变换成用于最终用户的静态及/或动画化互动式视觉图像。相关联存储器317可包括计算机可读数字存储媒体或媒介,例如硬盘存储装置。

用户可经由因特网303与网站301互动或经由在网页显示屏幕上执行的选择操作而与其它通信媒体或媒介互动。该网页显示屏幕经由远程计算机300的显示设备305呈现给用户。此些选择操作可通过例如键盘、鼠标、轨迹球、触摸屏或其它数据输入构件来执行。以此方式,呈现在显示设备305上的各种链接可通过各种指向和单击、指向和触摸,或其它选择操作而加以选择。

在各种实施例中,远端计算机300可包括计算机终端、个人数字助理(pda)、无线电话、“智能电话”、膝上型计算机、桌上型或笔记本计算机和/或类似者或形成其部分。在各种实施例中,通信媒体可包括局域网(lan)、广域网(wan)、无线网络、企业内部网络、因特网和/或类似者。

在一个实施例中,网站功能性可以存储在计算机可读储存媒体上的软件来实施并且通过例如一个或多个数字处理器或计算机等合适装置执行,所述装置可包括网络服务器或其它合适设备的部分。在其它实施例中,此种软件可位于处于用户站点处而不牵涉服务器或因特网的个人计算机或具有平板显示器或其它显示装置的类似装置上。在此情况下,产生可能具有与网页相同的内容的显示屏幕,使得术语“网页”、“屏幕显示”、“显示”和类似术语在本文中可互换地使用。说明性实施例的说明性画面显示和功能性可实施于一个或多个应用程序中,该应用程序可以例如http、php、mysql、javascript、xmpp服务器、solr服务器、lamp技术堆叠、java、laszlo呈现服务器或c++编写,且可在例如windowsxp或其它操作系统上运行。下文描述说明性实施例的各种显示显示屏幕和功能性。

用于如下所述将内容提供到最终用户的网站401的另一说明性实施例展示于图2中。网站401使用第一负载均衡器403和第二负载均衡器405,该均衡器与一对网络服务器407、409(例如apache网络服务器)通信。网络服务器407、409进一步与五个应用(jboss)服务器411、413、415、417、419通信,该应用(jboss)服务器经配置以访问包括数字存储媒体和数据库服务器421的数据库。另外,应用服务器(例如411)可经由负载均衡器423与第一自主服务器425、和第二自主服务器427通信。

图2的系统的操作可说明如下。最终用户打开其计算机(例如301)上的浏览器,并且输入访问http://www.behr.com的请求。该请求到达两个思科(cisco)负载均衡器403、405。该负载均衡器中的一个(例如403)将该请求传递到两个apache网络服务器407、409中的一个。apache网络服务器(例如409)分析该请求,并且确定是否可在本地对其进行处置,即检查以查看目标是否存在于服务器文件根中。请求的任何可由apache网络服务器409满足的部分通常为驻留在网络服务器409上的数字存储装置中的静态内容,即.png、.jpg、.swf、.css、.js、.html、.txt。请求的任何不可由apache网络服务器409服务的部分被传递回到jboss服务器(例如411),例如经配置的上下文根、动态内容和处理请求(例如注册事件)。应用服务器411接着处理转发到其的请求部分。如果需要来自数据库421的额外数据(例如,用户名、密码或工作簿),那么应用服务器411从数据库421检索所述数据。应用服务器411接着将经处理的数据经由网络服务器409发送回到驻留在最终用户的计算机406上的客户端(在此情况下为网络浏览器408)。网络浏览器408重新汇编该数据,且在浏览器中显现网页,所述网页引起在用户的计算机406的显示设备410上的显示。服务器接着等待下一请求。

在一个实施例中,响应于用户的初始访问,网站(客户端)应用程序传输到用户的计算机(例如406),并且在用户计算机的浏览器中运行。在一个实施例中,网站应用程序为控制用户的显示器上的flashplayer动画的swf应用程序,例如各种特征如何以动画进出或如何淡入或淡出。特定网页的实际内容响应于用户选择(“单击”)操作而从服务器系统动态地拉动。网络服务器将包括xml代码(其界定待显示的有效内容)的数据连同静态内容(例如,呈例如html格式的主页投影图像)供应到用户的动画编辑播放器(flashplayer)。

因此,例如,在用户选择主页时,网站应用程序访问服务器系统,该服务器系统供应例如投影图像、热点位置、结合任何热点功能性显示的色彩、下拉元件(菜单),并且指示swf应用程序要建置何内容。

用于面向客户的颜料色彩选择和协调网站的主页的说明性实施例11展示于图3中。如图3中所展示,用户已在网页11上的下拉导览菜单15中选择了“色彩”区段13。选择“色彩”链接13展现“颜料色彩”(paintclors)、“斑点色彩”(staincolors)和“移动应用程序”(mobileapps)链接16、17、18。

在单击颜料色彩链接16之后,用户即刻进入粉刷精灵(colorsmart)视觉化器(visualizer)页面(图4),其中用户可选择要上色的色彩。此页面和相关页面的结构和操作的进一步细节揭示于以全文引用的方式并入本文中的题为“具有紧凑功能性的自动化色彩选择方法和设备(automatedcolorselectionmethodandapparatuswithcompactfunctionality)”的美国专利公开案2014/0075361a1中。

在用户选择色彩(例如,图4的画面上的“永恒红宝石”)之后,用户单击图5的显示中的“预览颜料色彩”链接19。用户接着进入图6的屏幕显示,其提供覆盖图20,该覆盖图提供从用户可能对其决定添加颜料色彩的预先产生的房间(例如21、22、23)列表进行选择的能力。

接下来,用户单击在覆盖图20右上侧上的“我的自定义图像”选项卡27。通过单击“我的自定义图像”选项卡27,用户将看到覆盖图改变为展示于图7中的paintyourplace应用程序的介绍28。用户接着单击“继续”链接29以进入paintyourplace程序,从而使得用户能够上载图像,例如相片的图像。

如果用户之前已上载图像,那么将描绘先前上载的图像,见图8的图像31、32。如果尚未上载图像,那么用户将仅看到“上载照片”按钮35,选择所述按钮以开始上载照片程序。在用户单击橙色按钮35以上载照片时,展示于图9中的覆盖图26打开用户计算机上的图像文件39,从而使得用户能够通过遵循图10的程序而选择用户想要上载的图像档案。

在用户已选择图像之后,接着例如通过单击并保持抓取所述图像并且随后拖曳所述图像而加载所述图像,如图10中所展示。图11的显示使得用户能够作出调整,如使图像39移位或使其旋转。一旦用户已选定在所上载图像39的所要定位,用户就可单击位于覆盖图右下方处的“上色您的家(paintyourplace)”按钮40以处理并且上载所述图像到下方进一步详细描述的paintyourplace应用程序上。

在单击图11中的“上色您的家”按钮40之后,用户看到图12的实时加载条41。此加载条41向用户通知其图像39已被处理并且上载到paintyourplace应用程序的百分比。在图像39的处理时,用户进入图13的画面,其展示:用户的图像39;用户已选择的色彩45;色彩调色板的数目(例如46、47),每一调色板包含所选择的色彩45和与其协调的三个不同色彩;以及覆盖图48,其提示用户单击色彩,接着单击墙壁。图14的屏幕还包含用于选择笔刷工具52、橡皮擦工具59和遮蔽工具61的按钮或图示。颜料桶工具在进入应用程序之后被自动选择,从而使得用户能够利用鼠标引导的光标49单击所选择的墙壁(例如51),并且添加所选择的色彩(例如45)到房间图像39中的墙壁51,如图14中所示,其中所选择的色彩45由墙壁51上的交叉影线指示。用户当然可以使用颜料桶工具来添加色彩到所上载图像39中所描绘的房间中的其它区域或对象。

图14还说明扩展滑块工具54。使用扩展滑块工具54来减少或增大添加到所单击区域的颜料量并且扩大施加到表面51的颜料的半径,从而允许用户填充未上色区域(例如53),如图14和图15中所示。在图14和图15的实施例中,鼠标光标将暗区域55(“滑块”)在直角三角形56内向右拉动以增大上色区域且填充未上色区域,例如区域53。

对于任何未通过使用颜料桶工具而覆盖的区域,用户可选择笔刷工具52,如图16中所说明。用户可通过在区域53中从经高亮的圆圈或“刷大小”中的一个进行选择而改变笔刷52将覆盖的区域大小。在选择所要的刷大小之后,用户可对颜料桶工具遗漏的区域(例如图16的60、62)进行上色以给出更完整的外观,如图17中所示。如果颜料蔓延到非所要区域(例如图17和图18的枕头57)中,那么用户可单击橡皮擦图示59并且选择橡皮擦大小,并且例如单击所述非所要区域以从非所要区域去除颜料,从而实现展示于图19中的结果。

如果用户具有颜料蔓延到非所要区域中的问题并且想要截断一区域,那么用户可单击图20的遮蔽工具161。存在两种类型的遮蔽工具:一个是线型工具,其允许用户用直线58(图20)阻挡一区域并且接着上色(例如利用笔刷52)而不必担心颜料会蔓延到用户遮挡的区域158,见图21。

另一遮蔽工具为如图22和图23中所示的多边形工具62,其允许用户遮挡直线工具61不能够准确遮挡的区域。多边形工具62在每次用户单击并且移动鼠标时绘制一条新线,例如63(图22)、64、65、66(图23)。在用户将最后想要线66与作出初始单击的点连接时,多边形工具62将停止制作新线。在一个实施例中,此连接点可作为小圆圈出现在原始线63上。

用户可接着将色彩70添加到在多边形外部或内部的区域,如图24中所说明。用户可单击图25的“隐藏遮蔽”图示72以隐藏多边形遮蔽物,以查看图像70看起来是什么样子。即使隐藏多边形遮蔽物,其仍阻止颜料蔓延到非所要区域,例如71。或者,用户可单击“去除所有”图示78以完全去除遮蔽物。在一个实施例中,去除遮蔽物会去除由遮蔽物建立的屏障(barrier),并且所添加的任何额外颜料现在可穿越到先前掩蔽的区域中。为从头从相同的所上载图像开始,用户可单击未上色图像图示或链接73,其返回用户借以开始的未上色图像,如图26中所示。

如上文所论述,呈现给用户的前端屏幕显示包含“颜料桶”工具、“笔刷”工具52和“遮蔽”工具61、62。提供大小选择工具53以使得能够选择不同大小的“刷”用于笔刷工具52。还提供容差滑块54以在各种容差当中进行选择,其引致待上色的较大或较小区域。在一个实施例中,颜料桶工具可由如图27中所示的房间屏幕显示上的鼠标可移动颜料桶图示49来表示,并且笔刷工具可由可移动圆50来表示,该可移动圆50的半径对应于如图28中所示的所选择的刷大小。

如可能了解的,用于使得用户能够对已上载以在计算机控制的显示装置上显示的图像进行上色的自动化方法、设备或非暂时性计算机可读媒体的各种说明性实施例,可包括如上文所描述的笔刷工具、橡皮擦工具、第一和/或第二遮蔽工具或容差滑块工具中的任何一个或多个。

说明性实施例的一个方面涉及对已上载的图像(例如39)进行预处理以预先确定应上色为相同色彩的区域,并且高速缓冲存储或以其它方式存储结果以供在用户上色操作(使用上文所描述的工具)期间的后续使用。根据说明性实施例,差异极大的图像处理技术经组合以更好地界定此些区域,包含坎尼与索贝尔边缘检测算法的新颖组合。使用索贝尔算法使得能够建立容差滑块以辅助界定例如墙壁边缘,以使得不存在到非所要区域的色彩蔓延。根据说明性实施例,使用坎尼算法以拉直索贝尔算法不能够拉直的边缘,并且填充坎尼边缘检测所留下的间隙。总的结果为如由用户上色的房间的较准确色彩显现。

根据一个说明性实施例,处理步骤经实施以保留原始图像的相对强度(阴影)并且将其应用于新上色的图像,从而提供看起来更为实际的呈现。说明性系统的另一新颖方面是图像处理应用程序在客户端侧上运行而不依赖于服务器,其导致快得多并且更具响应性的处理。下文描述的所有相对密集的计算可通过使用例如javascript(相对简单的浏览器语言)编写的应用程序来执行。

paintyourplace应用程序预处理

通过图29的流程图说明预先确定已上载的图像的哪些区域应上色为相同色彩的预处理。在第一次上载图像时,运行双侧平滑算法(步骤101),以便从平坦表面去除噪点,同时保持边缘的完整性和色差。接下来,拍摄每一像素的光度的快照,将快照置于高速缓冲存储器或其它存储器中(步骤103)。接着,对图像运行索贝尔与坎尼边缘检测算法(步骤105、107)。在两个单独画布上独立地存储运行坎尼算法的结果与运行索贝尔算法的结果。如下文所论述,坎尼数据仅用于边缘校正和拉直。

一旦运行边缘检测算法,应用程序在图像上迭代,在步骤109中对索贝尔数据执行填色算法以执行将图像分割成具有相同色彩的区域或“区段”。修改该填色算法以考虑索贝尔算法的自然梯度,从而允许界定用于界定图像边缘的容差。明确地说,标准填色算法仅检查以查看像素是否相同。根据说明性实施例,并非对图像执行填色算法,而是对索贝尔数据执行填色算法以忽略色差。如图31中所说明,索贝尔数据为以黑色填充的画布,且图像中的墙壁或边缘由白色界定,其强度范围是从0到255。弱边缘由较低白色值界定,并且“容差”为忽略处理的白色的值。举例来说,零容差不忽略任何边缘,而“30”容差忽略“30”或“30”以下的边缘。在一个实施例中,滑块54(图14)为具有容差变量的一对一匹配。

在界定具有待上色为相同色彩的区段的区域时,使用坎尼边缘检测来界定直线,并且如果通过应用填色算法与索贝尔算法确定的区段的边缘接近于坎尼边缘,那么将指派到所述区段的颜料色彩拉动到所述边缘以给出如图32中所说明的渐变而非平坦边缘。用来进行此操作的特定函数为nearbypixel(colordata,r,g,b,tolerance,x,y,cannydata){//实施坎尼边缘检测,并且此函数还考虑坎尼边缘以拉直边缘。}且阐述如下:

在以上“nearbypixel”函数源代码中提及的“容差(tolerance)”,界定为从被检查的当前像素起6个像素。该函数检查以查看是否在当前像素的6个像素内存在坎尼线,并且如果存在,那么确定像素“可以”被上色。如果线为弱坎尼线,那么处理不继续;如果其为强坎尼线,则处理继续检查其它像素。在一个说明性实施例中,强坎尼线界定为高于50%白色。

一旦一区域被识别用于进行分割,则在图29的步骤110中在整个区域上对所述区域的像素色彩求平均。接下来,在步骤111中贯穿先前所找到分割来来重复区域的此平均像素色彩以确定其是否具有与先前所找到区段相同或类似的平均像素色彩。如果其具有与先前所找到区段相同或类似的平均像素色彩,那么使所述区域与先前所找到色彩相关联。

在一个实施例中,如果用户已经对图像上色,那么处理对照被上色的先前区域进行检查,给出色彩权重作为错误校正手段。典型用户可能单击类似色彩多次,因此处理考虑这样的行为以使得区域没有斑点。举例来说,用户可能对墙壁进行上色,但亮度很高的区域可能未被选取,因此在用户单击那个区域时,处理使用与用户刚刚上色的墙壁的关联来确保两个区域以相同常数处理,以使得亮度很高的区域不会以不同方式进行处理。

在步骤111中,用于将像素色彩指派到区段的代码部分的色彩匹配功能性采用经修改的de1994算法,该算法忽略光度检查并且还通过按大小加权而考虑所找到区域(区段)的大小,这是因为(例如)较大墙壁最可能为整个图像的主要色彩。经修改的de1994算法限制光度对△e的影响,并且在以下源代码中阐述:

为给出预处理功能的全貌图,每一“区段”为由索贝尔线完全围封的区域。举例来说,使用索贝尔数据处理图30的图像(展示于图31中),每一梳妆台抽屉90、91、92为具有其自身色彩的其自身区段。该处理对照每个抽屉90、91、92的平均色彩进行检查,并且由于其色彩类似,该处理将相同色彩归于所有抽屉90、91、92。将那些区段90、91、92一起求平均以决定每个抽屉的共同色彩。由于抽屉为较小的整体区段,因此所述处理给予其较低权重。然而,墙壁93为大区段并且具有如由交叉影线指示的单一色彩(例如,蓝色),因此左手侧和右手侧在应用△e算法时具有较高权重,从而接受另一蓝色区域为类似色彩的范围较高。

一旦此色彩匹配程序完成,就对所分析的区段运行膨胀并且接着运行腐蚀算法(步骤113、115)以弥合间隙并且使边缘变直。接着在步骤117中对所有相关联区段求平均以界定用于跨越多个区段的相同色彩的基础光度:

在步骤119中,接着将该区段与其总平均色彩一起高速缓冲存储以用于未来计算。

用户对经预处理图像的上色

在图34到图36中说明采用“颜料桶”的应用程序的“上色”部分。在调用颜料桶(步骤123)时,使用用于上文所描述的预处理操作中的相同填色算法来在围绕用户单击的区域中找出共同色彩区域(步骤125)。在一个实施例中,对相同像素区域运行各自具有不同容差的三十个不同填色(步骤127)。所述处理开始于最低容差,忽视已经找到的像素以优化性能,但三十个填色中的每一个存储于其自身的阵列中以供稍后参考。在所述处理朝向边缘到达填色的末期时,调用早先详述的“isnearbypixel函数”,其利用用户所选择的色彩填充坎尼边缘与其它已经上色的区域之间的间隙,并且指示填色算法移动经过索贝尔容差(步骤129)。

在步骤129中,除了在所述程序期间将像素移动到坎尼线之外,像素还移动得较接近于遮蔽线。在一个实施例中,对用户遮蔽线与规则的遮蔽线进行相同处理。在用户遮蔽时,用户的遮蔽线附接到遵循相同规则的遮蔽层。在执行填色算法以界定图像的区域的同时,处理通过填色算法选择的像素以确定图像的平均光度(步骤131,图35)。利用所界定的选择,运行膨胀与腐蚀算法(步骤133)以弥合选择自身内的间隙。

一旦已界定所有不同容差(步骤135,图35),应用程序移动到以下区域进行上色:该区域是所确定的基于由容差滑块54(图14)设定的容差已由用户的“颜料桶调用”所选择的区域,并且自此点的所有计算都是基于每像素基础。合并在所选择的容差下的所有容差选择以界定上色区域(步骤137)。在一个实施例中,在选择每一容差时,针对那个容差执行填色算法。对每一容差的位置和扩展进行高速缓冲存储。在执行上色动作时,所述处理将最低到最高容差合并到单个上色表面,并合并应用于所述像素的改变。因此,对每一像素的调整是唯一的。每一像素基于其色彩以及所应用色彩和其它加权因数来调整其lch以维持自然外观。

一旦已界定上色区域,应用程序继续进行以确定所上色像素是否属于在预处理中识别的区段(步骤141)。如果是,那么使待上色的那个区域与那个区段相关联(步骤149)。如果用户选择的区域不是在预处理期间确定的区段的部分,那么应用程序通过检查用户选择的基础色彩与预处理期间所找到的全部所找到区段之间的色差△e而尝试与画布相关联(步骤143、147、150)。存在以尝试使色彩与该先前所找到区段(如果存在先前所找到区段的话)相关联的权重以及存在与画布的大小相关联的权重。在一个实施例中,存储已经上色的像素,并且如果存在足够的差量差异,那么来自先前上色操作的所存储光度用作错误校正手段。如果测试147处未见匹配,那么在步骤145处使色彩与总体图像相关联。一旦已作出与像素的关联,那么在步骤151中,使用来自先前上色操作的那个区段的高速缓冲存储光度值或选择作为整体来确定基础光度。

现在,使用像素的基础光度(bl)、像素的实际光度(al)和用户选择的色彩的光度(cl),运行算法以确定将应用于所述像素的光度(步骤153)。

新光度(nl)由nl=(al/bl)*cl界定。对新光度(nl)通过对其进行加权以较接近于原始值(bl)并且拉动其接近于房间的均值色彩而进行修改(步骤154)。执行这些操作还允许代码校正相同区段内的任何激进的色彩移位并且建立具有更自然感觉的色彩表示。基础光度(bl)与色彩光度(nl)的差异越大,修改符越大。结果,暗色彩上的亮色彩将不会显得过亮,且反之亦然。根据一个实施例,修改算法如下:

(nl*(modifier))-((bl-cl)/1.5)。

一旦建立每一像素的新光度,就将其与先前所找到光度求平均(步骤155)以减少噪点且建立更光滑转变。使用此平均光度(新界定的光度)以及来自用户所选择的色彩的a和b值来界定替换色彩(步骤159,图36)。

一旦已利用替换色彩对所有像素上色,就将所选择的“显现”色彩置于来自图像的单独画布上(步骤161)。在容差改变期间更新此画布(步骤163)。一旦用户已在测试167处接受一容差,就将色彩合并到已上色房间(步骤172)。

在试图在新上色图像中保留原始图像的相对强度(阴影)时,可根据以下通用色彩替代的独特源代码实施应用以下程序。(代码中的注释在双斜杠“//”之后)

如果用户对在作业阶段期间已经上色的表面进行上色,则不存在容差检查,并且横越当前出现该色彩的所有区域执行填色,其中使用上文所描述的方法呈现在相同上色色彩下的所有连续区域。

“笔刷”利用不存在总体已上色区域的额外因子以类似于颜料桶处理的算法起作用以界定基础光度。该处理试图确定以下:如果像素是在所界定区段上,则确定基础光度;如果像素不在所界定区段上,则使用像素的实际光度来界定像素。在一个实施例中,在利用笔刷进行上色之后,执行颜料桶逻辑以利用颜料桶操作已产生的额外信息和逻辑来校正所显现色彩。

所属领域的技术人员将理解,可在不脱离本发明的精神和范围的情况下配置刚刚描述的说明性实施例的各种调适和修改。因此,应理解,在所附权利要求书的范围内,可不同于本文所具体描述者来实践本发明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1