BR102016005244A2 - Método, aparelho e meio não transitório legível por computador para permitir que um usuário pinte uma imagem - Google Patents

Método, aparelho e meio não transitório legível por computador para permitir que um usuário pinte uma imagem Download PDF

Info

Publication number
BR102016005244A2
BR102016005244A2 BR102016005244-0A BR102016005244A BR102016005244A2 BR 102016005244 A2 BR102016005244 A2 BR 102016005244A2 BR 102016005244 A BR102016005244 A BR 102016005244A BR 102016005244 A2 BR102016005244 A2 BR 102016005244A2
Authority
BR
Brazil
Prior art keywords
user
color
tool
area
display
Prior art date
Application number
BR102016005244-0A
Other languages
English (en)
Inventor
Damien Reynolds
Douglas Milsom
Vincent Giosa
Original Assignee
Behr Process Corporation
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 Behr Process Corporation filed Critical Behr Process Corporation
Publication of BR102016005244A2 publication Critical patent/BR102016005244A2/pt

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/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/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/03543Mice or pucks
    • 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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • 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/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/134Hyperlinking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20004Adaptive image processing
    • G06T2207/20012Locally adaptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details
    • G06T2207/20028Bilateral filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • G06T2207/20101Interactive definition of point of interest, landmark or seed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • G06T2207/20104Interactive definition of region of interest [ROI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20216Image averaging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30181Earth observation
    • G06T2207/30184Infrastructure

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)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Processing Or Creating Images (AREA)
  • Business, Economics & Management (AREA)
  • Image Processing (AREA)
  • Coating Apparatus (AREA)
  • Tourism & Hospitality (AREA)
  • User Interface Of Digital Computer (AREA)
  • Materials For Photolithography (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Color Image Communication Systems (AREA)
  • Image Generation (AREA)
  • Image Analysis (AREA)

Abstract

método, aparelho e meio não transitório legível por computador para permitir que um usuário pinte uma imagem uma tela de extremidade dianteira voltada para o usuário de um aplicativo de pintura digital de uma imagem ilustrativa inclui uma ferramenta de balde que permite que um usuário aplique uma cor selecionada para uma área seleciona da de uma imagem digital carregada, como uma parede de um a sala, uma ferramenta de pincel para preencher áreas não atendidas, uma ferramenta de borracha é para remover a cor mal aplicada, ferramentas de máscara para mascarar fora das áreas selecionadas, e uma ferramenta de controle deslizante de tolerância para ajudar adequadamente no preenchimento de áreas pintadas. métodos de imagem de pré-processamento melhoradas permitem uma melhor definição de áreas da imagem a serem pintadas da mesma cor.

Description

MÉTODO, APARELHO E MEIO NÃO TRANSITÓRIO LEGÍVEL POR COMPUTADOR PARA PERMITIR QUE UM USUÁRIO PINTE UMA IMAGEM REFERÊNCIA CRUZADA PARA APLICAÇÕES RELACIONADAS
[0001] Este pedido reivindica o benefício de prioridade para Pedido de Patente Provisório US No. 62/134,250, depositado 17 de março de 2015, e intitulado "Paint Your Place Application for Optimizing Digital Painting of an Image", o conteúdo do qual é aqui incorporado por esta referência na sua totalidade.
CAMPO
[0002] A divulgação do assunto relaciona-se com sistemas de seleção automatizada de cor e coordenação e mais particularmente a um tal sistema que permite que um usuário visualize como uma cor selecionada iria aparecer em uma imagem fotográfica carregada de um ambiente ou outra área que possa ser pintada. A divulgação do assunto refere-se ainda a métodos e aparelhos para pintura digital de uma tal imagem carregada, assim como a métodos e aparelhos para otimizar tais procedimentos.
TÉCNICA RELACIONADA
[0003] Sistemas de seleção automatizada de cores e coordenação são divulgados, por exemplo, na publicação da patente US No. 2012/0062583, publicada em 15 de 2012, intitulada, "Data Driven Color Coordinator", atribuída a Behr Process Corporation, Santa Ana, Califórnia.
SUMÁRIO
[0004] De acordo com uma modalidade ilustrativa, uma tela frontal virada para o usuário de uma aplicação de pintura digital de imagem ilustrativa inclui uma ferramenta de balde, uma ferramenta pincel, uma ferramenta borracha e uma ferramenta de mascaramento. Em uma modalidade ilustrativa, a ferramenta balde de tinta permite que um usuário aplique uma cor selecionada para uma área selecionada de uma imagem carregada como a parede de uma sala, simulando assim a pintura da sala com a cor selecionada e permitindo que um usuário possa visualizar, por exemplo, o próprio ambiente do usuário seria semelhantemente pintado com a cor selecionada. Em uma modalidade ilustrativa, a ferramenta de escova de pintura é utilizada para encher uma área que foi perdida durante a aplicação da cor selecionada para a primeira área, a ferramenta borracha é empregue para remover a cor que escorreu para uma área não desejada durante a aplicação da cor selecionada, e a ferramenta de máscara é utilizada para mascarar uma área que não deve ser pintada. Em uma modalidade ilustrativa, duas ferramentas de máscara podem ser empregues para aplicar uma máscara linear ou uma máscara poligonal.
[0005] Em uma modalidade ilustrativa, uma ferramenta corrediça de tolerância é também fornecida para auxiliar no enchimento adequadamente nas áreas pintadas. A ferramenta de controle deslizante de tolerância pode permitir que o usuário aumente ou diminua a área pintada. Em uma modalidade, o visor da ferramenta corrediça de tolerância compreende uma área escurecida em um triângulo direito que pode ser puxado para a direita ou para a esquerda quer para aumentar ou diminuir a área pintada.
[0006] Outro aspecto da presente divulgação refere-se a um método de pré-processamento de uma imagem digital carregada antes da "pintar" a imagem em que um algoritmo de suavização bilateral é executado a fim de remover o ruído de superfícies planas da imagem mantendo a integridade das bordas e diferenças de cor. Algoritmos de Sobel e Canny de detecção de bordas são, então, correr contra a imagem e os dados de imagem resultantes da execução do algoritmo de Canny são armazenados separadamente dos dados de imagem resultantes da execução do algoritmo Sobel. Um algoritmo de preenchimento por inundação é então executado sobre os dados de imagem de Sobel para realizar a segmentação da imagem em zonas de segmentos que têm a mesma cor, em que o algoritmo de preenchimento por inundação é modificado para ter em conta o gradiente natural do algoritmo Sobel, permitindo, assim, a definição de uma ou mais tolerâncias para a definição das bordas da imagem. Se uma borda de um segmento determinado por aplicação do algoritmo de preenchimento por inundação e o algoritmo Sobel está perto de uma borda Canny, a cor da tinta atribuída a esse segmento é puxada para a extremidade para dar Canny bordas vivas.
[0007] De acordo com uma modalidade ilustrativa, a cor do pixel de uma área identificada por segmentação é calculada a média sobre a área como um todo. Em seguida, a cor média dos pixels da área é iterado anteriormente encontrado segmentos para determinar se a área tem a mesma ou semelhante cor do pixel a média encontrada anteriormente dos segmentos, e se isso acontecer, a área está associada com a cor anteriormente encontrado. Todos os segmentos associados podem ser calculados a média para fora para definir uma luminosidade de base para a mesma cor em vários segmentos, e um segmento em análise com a sua cor média global pode então ser armazenado para o cálculo futuro.
DESCRIÇÃO DOS DESENHO
[0008] A Figura 1 é um diagrama de blocos de um sistema ilustrativo para a implementação de uma aplicação pinte o seu local de acordo com uma modalidade ilustrativa;
[0009] A Figura 2 é um diagrama de blocos de um sistema ilustrativo alternativo para a implementação de uma aplicação pinte o seu local de acordo com uma modalidade ilustrativa;
[0010] A Figura 3 é uma tela ilustrativa de um cliente de frente para seleção de tinta e um sistema de coordenação de uma modalidade ilustrativa;
[0011] A Figura 4 é uma segunda tela ilustrativa de um cliente de frente para seleção de tinta e um sistema de coordenação de uma modalidade ilustrativa;
[0012] A Figura 5 é uma terceira tela ilustrativa de um cliente de frente para seleção de tinta e um sistema de coordenação de uma modalidade ilustrativa;
[0013] A Figura 6 é uma quarta tela ilustrativa de um cliente de frente para seleção de tinta e um sistema de coordenação de uma modalidade ilustrativa;
[0014] A Figura 7 é uma quinta tela ilustrativa de um cliente de frente para seleção de tinta e um sistema de coordenação de uma modalidade ilustrativa;
[0015] A Figura 8 é um sexto tela ilustrativa de um cliente de frente para seleção de tinta e um sistema de coordenação de uma modalidade ilustrativa;
[0016] A Figura 9 é uma sétima tela ilustrativa de um cliente de frente para seleção de tinta e um sistema de coordenação de uma modalidade ilustrativa;
[0017] A Figura 10 é uma tela que permite ao usuário selecionar uma imagem para a pintura;
[0018] A Figura 11 é uma tela que permite a um usuário ajustar o posicionamento de uma imagem selecionada;
[0019] A Figura 12 é uma tela permitindo que um usuário para ver qual a percentagem uma imagem selecionada foi carregado;
[0020] A Figura 13 é uma tela que permite ao usuário selecionar uma característica balde de tinta para pintar a imagem selecionada;
[0021] A Figura 14 é uma tela, que ilustra o uso do balde de tinta e uma ferramenta de cursor associado;
[0022] A Figura 15 é uma outra tela que ilustra o uso do balde de tinta e uma ferramenta de controle deslizante associada;
[0023] A Figura 16 é uma tela que ilustra o uso de uma ferramenta de pincel;
[0024] A Figura 17 é uma outra tela que ilustra o uso de uma ferramenta de pincel;
[0025] A Figura 18 é uma tela que ilustra o uso de uma ferramenta de borracha;
[0026] A Figura 19 é uma outra tela que ilustra o uso de uma ferramenta de borracha;
[0027] A Figura 20 é uma tela, que ilustra o uso de uma primeira ferramenta de mascaramento;
[0028] A Figura 21 é uma outra tela que ilustra o uso de uma primeira ferramenta de máscara;
[0029] A Figura 22 é uma tela que ilustra o uso de uma segunda ferramenta de máscara "poligonal";
[0030] A Figura 23 é uma outra tela que ilustra um de uma segunda ferramenta de máscara "poligonal";
[0031] A Figura 24 é uma outra tela ilustrando o uso de uma segunda ferramenta de máscara "poligonal";
[0032] A Figura 25 é uma outra tela ilustrando o uso de uma segunda ferramenta de máscara "poligonal";
[0033] A Figura 26 é uma tela é uma tela que ilustra retorno à imagem sem pintura original;
[0034] A Figura 27 é uma tela que ilustra ainda mais a ferramenta de balde de tinta;
[0035] A Figura 28 é uma tela que ilustra ainda mais a ferramenta pincel;
[0036] A Figura 29 é um fluxograma ilustrativo de pré-processamento de uma imagem de acordo com uma modalidade ilustrativa;
[0037] A Figura 30 apresenta uma imagem carregada ilustrativa;
[0038] A Figura 31 mostra a imagem da Figura 28 depois da aplicação de um algoritmo de Sobel após a dilatação e a erosão, de acordo com uma modalidade ilustrativa;
[0039] A Figura 32 ilustra os resultados da aplicação de um algoritmo de Canny para a imagem da Figura 28 de acordo com uma modalidade ilustrativa;
[0040] A Figura 33 ilustra a segmentação da imagem da Figura 28 de acordo com uma modalidade ilustrativa;
[0041] A Figura 34 é uma primeira porção de um fluxograma que ilustra uma pintura de imagem de acordo com uma modalidade ilustrativa;
[0042] A Figura 35 é uma segunda parte do fluxograma da Figura 34; e
[0043] A Figura 36 é uma terceira parte do fluxograma da Figura 34.
DESCRIÇÃO DETALHADA
[0044] A figura 1 ilustra um diagrama de blocos de um sistema em que vários computadores remotos 300 podem acessar um site de seleção e coordenação de cores de pintura 301, que em uma modalidade pode fornecer ou baixar um aplicativo Pinte Seu Lugar para usuários finais como mais adiante descritos. O site 301 pode ser acoplado à Internet 303, a fim de proporcionar o acesso a um grande número de terminais remotos / computadores 300, por exemplo, nos locais dos usuários finais em casa. Cada computador remoto 300 controla um aparelho de visualização 305, que pode compreender, por exemplo, um ou mais CRTs ou monitores de computador de tela plana ou monitores.
[0045] O site 301 pode compreender um motor de servidor 309 que compreende um ou mais computadores ou servidores, memória associada 317 e software de servidor como um sistema operacional de servidor e programas aplicativos de servidor. Em uma modalidade, o site 301 está disposto de modo a armazenar e transmitir uma pluralidade de documentos relacionados ou páginas da web 311 em formato digital, por exemplo, tais como os documentos HTML, e pode ainda incluir uma base de dados de cor 315 em que os dados de cor são armazenados como descrito, por exemplo, na Patente US N° 7.999.825, intitulada "Color Selection and Coordination System", aqui incorporada por referência na sua totalidade. Será apreciado que, em uma modalidade, o aparelho de visualização controlado por computador transforma as páginas da web em formato digital em imagens visuais interativas estáticas e/ou animadas para um usuário final. A memória associada 317 pode compreender um computador de meios legíveis por armazenamento digital ou médio, tal como, por exemplo, o armazenamento de disco rígido.
[0046] Um usuário pode interagir com o site 301 através da Internet 303 ou outro meio de comunicação ou mídia através de operações de seleção realizados em telas de exibição de páginas da Web apresentadas ao usuário por meio do aparelho de visualização 305 de um computador remoto 300. Tais operações de seleção podem ser realizadas por, por exemplo, um teclado, mouse, track ball, tela sensível ao toque ou outros meios de entrada de dados. Em tal forma, vários links apresentados no aparelho de fixação 305 podem ser selecionados por vários aponta e clica, e ponto de contato, ou outras operações de seleção.
[0047] Em várias modalidades, os computadores remotos 300 podem compreender ou fazer parte de um terminal de computador, um assistente pessoal digital (PDA), um telefone sem fio, um "smartphone", um computador laptop, desktop ou notebook, e/ou parecido. Em várias modalidades, o meio de comunicação ou meios de comunicação podem compreender uma rede de área local (LAN), uma rede de área larga (WAN), uma rede sem fios, uma intranet, a Internet, e/ou semelhantes.
[0048] Em uma modalidade, a funcionalidade do site pode ser implementada em software armazenado em um meio de armazenamento legível por computador ou meios de comunicação e executada por um dispositivo adequado, por exemplo, tal como um ou mais processadores digitais ou computadores, que podem compreender parte de um servidor de rede ou outro aparelho adequado. Em outras modalidades, tal software pode estar localizado em um computador pessoal ou outro dispositivo semelhante que tem um visor de painel plano, ou outro dispositivo de visualização em um local do usuário sem o envolvimento de um servidor ou a Internet. Nesse caso, telas de exibição são geradas que podem ter o mesmo conteúdo de páginas web, pelo que os termos "página da web", "tela", "visualização" e termos similares são aqui utilizados indiferentemente. Telas ilustrativas de monitores e funcionalidade de uma modalidade ilustrativa pode ser implementada em um ou mais programas de aplicação, que podem ser escritos em, por exemplo, HTTP, PHP, MySQL, JavaScript, Servidor XMPP, Servidor Solr, tecnologia de pilha LAMP, Java, Servidor de Apresentação Laszlo ou C ++ e, o que pode ser executado, por exemplo, em um Windows XP ou outro sistema operacional. Várias telas e funcionalidades do concretizações ilustrativas são descritas abaixo.
[0049] Uma outra modalidade ilustrativa de um site 401 para fornecimento do conteúdo para um usuário final, tal como descrito abaixo é mostrado na Figura 2. O site 401 emprega o primeiro e segundo balanceadores de carga 403, 405, que se comunicam com um par de servidores web 407, 409, por exemplo, como servidores web Apache. Os servidores web 407, 409 comunicam mais com cinco servidores de aplicação (Jboss) 411, 413, 415, 417, 419, que são organizados para acessar um banco de dados compreendendo meios de armazenamento digitais e um servidor de banco de dados 421. Além disso, os servidores de aplicação, por exemplo, 411, podem se comunicar através de um balanceador de carga 423 com primeiro e segundo Servidores de Autonomia 425, 427.
[0050] A operação do sistema da Figura 2 pode ser ilustrado como se segue. O usuário final abre um navegador em seu computador, por exemplo, 301, e entra um pedido para visitar http://www.behr.com. Este pedido atinge os balanceadores de carga de dois servidores da web Apache 407, 409. Um dos balanceadores de carga, por exemplo, 407, passa a solicitação para um dos dois servidores web Apache 407, 409. O servidor web Apache, por exemplo, 409, analisa o pedido e determina se pode ser tratado localmente, isto é, verifica para ver se o objeto existe na raiz de documentos do servidor. Qualquer parte do pedido que pode ser cumprido pelo servidor Apache 409 é tipicamente conteúdo estático, ou seja, .png, .jpg, .swf, .css, .js, .html, .txt, residente em armazenamento digital no servidor 409. Qualquer porção da solicitação que não pode ser servido pelo servidor Apache 409 é passado de volta para o servidor Jboss, por exemplo, 411, por exemplo, raízes configuradas de contexto, conteúdo dinâmico e solicitações de processamento, como um evento de log-on. O servidor de aplicação 411, em seguida, processa a porção do pedido que lhe são transmitidos. Se os dados adicionais são necessários a partir do banco de dados de 421, por exemplo, um nome de usuário, senha ou pasta de trabalho, o servidor de aplicação 411 recupera os dados do banco de dados 421. O servidor de aplicação 411, em seguida, envia os dados processados para trás para fora através do servidor web 409 para o cliente residindo no computador 406 do usuário final, neste caso, o navegador da web 408. O navegador da web 408 reúne novamente os dados e processa a página no navegador, o que faz com que a visualização no aparelho de visualização 410 do computador do usuário 406. Os servidores, em seguida, esperam para o próximo pedido.
[0051] Em uma modalidade, em resposta ao acesso inicial do usuário, um pedido de site (cliente) é transmitido para o computador do usuário, por exemplo, 406 e é executado no navegador do computador do usuário. Em uma modalidade, a aplicação website é um aplicativo SWF que controla animação flash player no visor do usuário, por exemplo, como os vários recursos de animar dentro e para fora ou fade in ou fade out. O conteúdo real de uma determinada página é puxado dinamicamente a partir do sistema de servidor em resposta a ("clicar") nas operações de seleção de usuário. Os dados fontes do servidor web que compõem o código XML, que definem o conteúdo ativo a ser exibido, com flash player do usuário juntamente com o conteúdo estático, por exemplo, um projeto de imagem de "home page", por exemplo, o formato HTML.
[0052] Assim, por exemplo, quando o usuário seleciona uma home page, a aplicação do website acessa o sistema do servidor, que fornece, por exemplo, uma imagem de projeto, locais hot spot, cores para exibir em conexão com qualquer funcionalidade hot spot, elementos suspensos (menus) e instrui o aplicativo SWF o que construir.
[0053] Uma modalidade ilustrativa 11 de uma home page para uma seleção de cores de tinta voltada para o cliente e do site de coordenação é mostrado na Figura 3. Como mostrado na Figura 3, um usuário tem selecionado "Cores" na seção 13 no menu de navegação suspenso 15 na página da web 11. A seleção das "cores" do link 13 revela "as cores da pintura", "Cores da mancha," e "Mobile Apps" dos links 15, 16 , 17, 18.
[0054] Ao clicar nas cores de pintura do link 16, o usuário é levado à página de visualização ColorSmart Figura 4, onde o usuário pode selecionar uma cor com a qual a pode pintar. Mais detalhes sobre a estrutura e funcionamento de tal página e páginas relacionadas são divulgados na Publicação de Patente EUA 2014/0075361 A1, intitulado, "Automated Color Selection Method and Apparatus with Compact Functionality", que é incorporada na sua totalidade por esta referência.
[0055] Depois que o usuário seleciona uma cor, por exemplo, "Timeless Ruby" no visor da Figura 4, o usuário clica no link 19 "pré-visualização das cores da pintura" no visor da Figura 5. O usuário é então levado para a tela da Figura 6, que fornece uma sobreposição 20, que oferece a possibilidade de escolher entre uma lista de salas pré-geradas, por exemplo, 21, 22, 23 ao qual o usuário pode decidir adicionar a cor da pintura.
[0056] Em seguida, o usuário clica em "Minhas Imagens personalizadas" guia 27 no lado superior direito da sobreposição 20. Ao clicar na guia Imagens Minha personalização 27, o usuário vai ver a mudança de sobreposição para uma introdução 28 ao aplicativo Pinte Seu Lugar mostrado na Figura 7. O usuário clica no link "Continuar" 29 para entrar em um procedimento de Pinte Seu Lugar, permitindo ao usuário fazer carregamento de uma imagem, como uma imagem de uma fotografia.
[0057] Se o usuário submeteu imagens antes, as imagens carregadas serão apresentadas - veja imagens 31, 32 da Figura 8. Se nenhuma imagem foi carregada, o usuário só verá o botão 35 "carregar foto", que é selecionado para iniciar o procedimento de carregar fotos. Quando o usuário clicar no botão laranja 35 para fazer o carregamento de uma foto, uma sobreposição 26 mostrada na Figura 9 abre arquivos de imagem 39 no computador do usuário que permite ao usuário escolher que arquivos de imagem que o usuário gostaria de fazer carregamento, seguindo o procedimento da Figura 10.
[0058] Depois do usuário ter selecionado uma imagem, a imagem é então carregada como mostrado na Figura 10, por exemplo, clicando e segurando para agarrar a imagem e, posteriormente, arrastando a imagem. A tela da Figura 11 permite que o usuário faça ajustes como deslocando a imagem 39 ou rodando-o. Uma vez que o usuário tenha assentado sobre o posicionamento desejado da imagem enviada 39, o usuário clica no botão "Pinte Seu Lugar" 40 localizado na parte inferior direita da sobreposição para processar e enviar a imagem para o aplicativo Pinte Seu Lugar descrito detalhadamente mais adiante.
[0059] Depois de clicar no botão de Pinte Seu Lugar 40 na Figura 11, o usuário vê uma barra de carregamento 41 em tempo real, Figura 12. Esta barra 41 informa o usuário qual porcentagem de sua imagem 39 foi processada e enviada para o aplicativo Pinte Seu Lugar. Quando a imagem 39 acaba de ser processada, o usuário é levado à tela da Figura 13 mostrando a imagem do usuário 39, a(s) cor(es) 45 que o usuário tenha selecionado, um número de paletas de cores, por exemplo, 46, 47, cada paleta incluindo a cor selecionada 45 e três cores diferentes que coordenam com elas, e uma sobreposição 48 solicitando que o usuário clique em uma cor e clique em uma parede. A tela da Figura 14 também inclui botões ou ícones para selecionar uma ferramenta de pincel 52, uma ferramenta de borracha 59, e uma ferramenta de máscara 61. A ferramenta balde de tinta é autosselecionada ao entrar no aplicativo, permitindo que o usuário clique em uma parede selecionada, por exemplo, 51, com um cursor de mouse dirigido 49, e adicione uma cor selecionada, por exemplo, 45, a parede 51 na imagem da sala 39, tal como mostrado na Figura 14, onde a cor selecionada 45 é indicada por um tracejado cruzado na parede 51. O usuário pode, naturalmente, utilizar a ferramenta balde para adicionar cor a outras áreas ou objetos na sala retratados na imagem enviada 39.
[0060] A Figura 14 também ilustra uma propagação deslizante da ferramenta 54. O uso da propagação deslizante 54 reduz ou aumenta a quantidade de tinta adicionada à área clicada e cresce o raio da tinta aplicada à superfície 51, permitindo que o usuário preencha as áreas não pintadas, por exemplo, 53 como mostrado nas Figuras 14 e 15. Na modalidade das Figuras 14 e 15, o cursor do mouse puxa a área escura 55 ("deslizador") para a direita dentro do triângulo 56 para aumentar a área pintada e preencher áreas sem pintura, por exemplo, como a área 53.
[0061] No que diz respeito a todas as áreas que não foram abordadas usando a ferramenta do balde de tinta, o usuário pode selecionar a ferramenta pincel 52, como ilustrado na Figura 16. O usuário pode alterar o tamanho da área que o pincel 52 cobrirá através da seleção de um dos círculos destacados ou "tamanhos de pincel" 53. Depois de selecionar o tamanho do pincel desejado, o usuário pode pintar as áreas, por exemplo, 60, 62 da Figura 16, que foram perdidas pela ferramenta balde de tinta para dar uma aparência mais completada como apresentado na Figura 17. Se a tinta é espirrada em uma área não desejada, por exemplo, o travesseiro 57 da Figura 17 e 18, o usuário pode clicar no ícone da borracha 59 e selecionar um tamanho da borracha e, por exemplo, clique na área desejada para remover a tinta da área indesejada, para atingir o resultado mostrado na Figura 19.
[0062] Se o usuário estiver tendo um problema com o escorrimento de pintura em áreas indesejadas e gostaria de tirar uma seção de uma área, o usuário pode clicar na ferramenta de máscara 161, Figura 20. Existem dois tipos de ferramentas de máscara: uma é uma ferramenta de linha que permite que um usuário bloqueie uma área com uma linha reta 58 (Figura 20) e depois pinte, por exemplo, com o pincel 52, sem preocupação de que a tinta vai escorrer para a área 158, que o usuário mascarou, ver Figura 21.
[0063] A outra ferramenta de máscara é uma ferramenta de polígono 62, como mostrado nas Figuras 22 e 23, que permite aos usuários mascarar áreas que a ferramenta de linha reta 61 não é capaz de mascarar com precisão. A ferramenta polígono 62 desenha uma nova linha, por exemplo, 63 (Figura 22), 64, 65, 66 (Figura 23) toda vez que o usuário clica e move o mouse. A ferramenta polígono 62 vai parar de fazer novas linhas quando o usuário se conecta a última linha desejada 66 com o ponto onde o clique inicial foi feito. Em uma modalidade, este ponto de ligação pode aparecer como um pequeno círculo na linha 63 original.
[0064] O usuário pode, em seguida, adicionar cor à área 7 0 do lado de fora ou no interior do polígono, tal como ilustrado na Figura 24. O usuário pode clicar em um ícone "Ocultar Máscara" 72, Figura 25, para esconder a máscara poligonal para ver o que a imagem 70 parece. Mesmo que a máscara poligonal esteja escondida, ainda bloqueia a pintura de escorrer em áreas indesejadas, por exemplo, 71. Ou o usuário pode clicar em um ícone "Remover tudo" 78 para remover completamente uma máscara. Em uma modalidade, a remoção de uma máscara remove a barreira que foi criada pela máscara, e qualquer tipo de tinta adicional adicionada pode agora passar para a área previamente mascarada. Para começar do início com a mesma imagem enviada, o usuário pode clicar em um ícone Despinte a Imagem ou link 73, que devolve a imagem pintada com o qual o usuário iniciou como mostrado na Figura 26.
[0065] Como discutido acima, a tela frontal apresentada ao usuário inclui uma ferramenta de "balde", uma ferramenta "pincel" 52 e ferramenta de "mascarar" 61, 62. Um tamanho de ferramenta de seleção de 53 é fornecido para permitir a seleção de diferentes tamanhos de "escovas" para a ferramenta pincel 52. Um seletor de tolerância 54 também é fornecido para selecionar entre as várias tolerâncias, que faz com que uma área maior ou menor possa ser pintada. Em uma modalidade, a ferramenta de balde pode ser representada por um ícone de balde de movido por mouse 49 sobre uma tela de sala, como mostrado na Figura 27, e a ferramenta de escova pode ser representada por um círculo móvel 50, cujo raio corresponde ao tamanho do pincel selecionado como mostrado na Figura 28.
[0066] Como pode ser apreciado, várias modalidades ilustrativas de um método automatizado, aparelho ou computador de meio legível não transitório ou meios para permitir a um usuário a pintar uma imagem enviada para exibição em um dispositivo de exibição controlado por computador pode compreender qualquer um ou mais de uma ferramenta de pintura de escova, uma ferramenta de borracha, as primeiras e/ou segundas ferramentas de máscara ou uma ferramenta de tolerância deslizante tal como descrito acima.
[0067] Um aspecto da modalidade ilustrativa envolve o pré-processamento da imagem enviada, por exemplo, 39, para determinar com antecedência as áreas que devem ser pintadas da mesma cor, e pegando ou armazenando os resultados para uso posterior durante operações de pintura de usuários que utilizam as ferramentas descritas acima. De acordo com modalidades ilustrativas, as técnicas de processamento de imagem muito diferentes são combinadas para definir melhor tais áreas, incluindo uma nova combinação dos algoritmos de detecção de Canny e Sobel. O uso do algoritmo de Sobel permite criar um deslizador de tolerância para ajudar na definição, por exemplo, as bordas da parede de modo que não haja nenhuma cor escorrida em áreas indesejáveis. De acordo com o enquadramento ilustrativo, o algoritmo de Canny é empregue para endireitar bordas que o algoritmo Sobel é incapaz de endireitar e preencher as lacunas deixadas pela detecção de borda Canny. O resultado global é uma reprodução de cor mais precisa de um ambiente como pintado pelo usuário.
[0068] De acordo com uma modalidade ilustrativa, as etapas de processamento são implementadas para preservar a intensidade relativa (sombreado) da imagem original e aplicá-la à imagem recém-pintada, fornecendo uma forma muito mais realista de renderização. Outro aspecto inovador do sistema ilustrativo é que a aplicação de processamento de imagem é executado no lado do cliente, sem a intervenção de um servidor, o que resulta em um processamento muito mais rápido e responsivo. Todos os cálculos intensivos relativamente descritos abaixo podem ser realizados por uma aplicação escrita utilizando, por exemplo, Javascript, uma linguagem navegador relativamente simples.
Pré-processamento de Aplicação de Pinte Seu Lugar
[0069] O pré-processamento para determinar com antecedência quais áreas de uma imagem carregada devem ser pintadas da mesma cor é ilustrado pelo diagrama de fluxo da Figura 29. Quando a imagem é em primeiro lugar carregada, um algoritmo de suavização bilateral é executado, passo 101, de modo a eliminar o ruído de superfícies planas, mantendo a integridade das bordas e as diferenças de cor. Em seguida, uma captura instantânea é feita de cada pixel de luminosidade, colocando a captura instantânea em um cache ou outra memória, passo 103. Em seguida, os algoritimos de detecção de bordas Sobel e Canny são executados contra a imagem, os passos 105, 107. Os resultados da execução do algoritmo de Canny são armazenados separadamente dos resultados da execução do algoritmo Sobel em duas telas separadas. Como discutido abaixo, os dados de Canny são usados somente para a correção de borda e estiramento.
[0070] Uma vez que os algoritmos de detecção de borda são executados, as iterações de aplicação sobre a imagem, executando um algoritmo de preenchimento por inundação nos dados Sobel no passo 109 para realizar segmentação da imagem em áreas ou "segmentos" que têm a mesma cor. O algoritmo de preenchimento por inundação é modificado para ter em conta o gradiente natural do algoritmo Sobel, permitindo a definição de uma tolerância para a definição dos contornos da imagem. Em particular, um algoritmo de preenchimento por inundação padrão só verifica para ver se pixels são idênticos. De acordo com o enquadramento ilustrativo, em vez de executar o algoritmo de preenchimento por inundação sobre a imagem, ela é executada nos dados Sobel para ignorar as diferenças de cor. Tal como ilustrado na Figura 31, os dados de Sobel são uma tela cheia com preto, e paredes ou margens na imagem são definidos pelo branco, o qual varia em intensidade de 0 a 255. As bordas fracas são definidas por um valor inferior branco, e "tolerância" é o valor do branco que o processo ignora. Por exemplo, uma tolerância zero não ignora nenhuma borda, enquanto uma tolerância "30" ignora bordas que são "30" ou abaixo. Em uma modalidade, o deslizador 54 (Figura 14) é um jogo um pra um com a variável de tolerância.
[0071] No que define a zona de segmentos a serem pintados da mesma cor, de detecção de borda Canny é utilizado para definir linhas retas, e, se uma ponta de um segmento determinado por aplicação do algoritmo de preenchimento por inundação e o algoritmo Sobel está próximo de uma borda Canny, a atribuição de cores de tinta para que o segmento é puxado para que a borda para dar bordas vivas em vez de planas, tal como ilustrado na Figura 32. A função específica aplicada de fazer isso é NearbyPixel (colorData, r, g, b, tolerance, x, y, cannyData) {// implementar detecção de borda canny e ter isso também conta para bordas Canny para endireitar as bordas .} e é apresentado como se segue:
var maxX = x + tolerance;
if (maxX > W) maxX = W - 1;
var minX = x - tolerance;
if (minX < 0) minX = 0;
var maxY = y + tolerance;
if (maxY > H) maxY = H - 1;
var minY = y - tolerance;
if (minY < 0) minY = 0;
var isNearby = false;
var curi = ((y * (W * 4)) + (x * 4));
var actuali = ((y * (W * 4)) + (x * 4));
for (var curX = minX; curX <= maxX; curX++) {
for (var curY = minY; curY <= maxY; curY++) {
var i = ((curY * (W * 4)) + (curX * 4));
if ((colorData[i] == r && colorData[i + 1] == g &&
colorData[i + 2] == b) || (cannyData[i] > 125)) {
if (curX < maxX && curY < maxY && cannyData[curi] < 125) {
if (cannyData[i] < 125) return 2;
else return 1;
}
return true;
}
}
}
return false; }
"Tolerância", como é referido no "NearbyPixel" no código fonte da função acima é definido como 6 pixels do pixel atual que está sendo verificado. A função de verificação para ver se há uma linha de Canny dentro de 6 pixels do pixel corrente e em caso afirmativo, determina que aquele pixel é "ok" para ser pintado. Se uma linha é uma linha de Canny fraca, o processo não continua; se é uma linha forte Canny, o processo continua verificando mais pixels. Em uma modalidade ilustrativa, uma forte linha Canny é definida como acima de 50% de brancos.
[0072] Uma vez que uma área é identificada para a segmentação, a cor do pixel da área é em média sobre a área como um todo no passo 110 da Figura 29. Em seguida, essa cor média dos pixels da área é iterado através de segmentações encontradas anteriormente encontrados no passo 111 para determinar se ele tem a mesma ou similar cor média dos pixels como segmentos anteriormente encontrados. Se isso acontecer, a área está associada com a cor previamente encontrada.
[0073] Em uma modalidade, se um usuário já pintou a imagem, o processo verifica contra a área anterior que foi pintada, dando aquele peso de cor como um meio de correção de erros. Um usuário típico é provável que clique em uma cor semelhante várias vezes, assim que o processo é responsável por esse comportamento de modo que as áreas não são manchadas. Por exemplo, um usuário pode pintar uma parede, mas uma área fortemente iluminada não pode ser pegada, por isso, quando o usuário clica nessa área, o processo usa a associação com a parede que o usuário acabou de pintar para garantir que ambas as áreas estão trabalhando com as mesmas constantes de modo que a área fortemente iluminada não é tratada de forma diferente.
[0074] A funcionalidade de harmonização de cores para a parte do código que atribui a cor do pixel a segmentos no passo 111 emprega um algoritmo DE1994 modificado que prioriza luminosidade como uma verificação e que também influencia o tamanho das áreas encontradas (segmentos) por ponderação por tamanho, uma vez que, por exemplo, uma parede maior é mais provável que seja a cor da imagem principal, como um todo. O algoritmo modificado DE1994 limita o efeito que a luminosidade tem sobre o deltaE e é definido no seguinte código fonte:
ColorUtilities.colorCompareDE1994=function(l1,a1,b1,l2, a2,b2) {
var c1=Math.sqrt(a1*a1+b1*b1);
var c2=Math.sqrt(a2*a2+b2*b2);
var dc=c1-c2;
var dl=l1-l2;
var da=a1-a2;
var db=b1-b2;
var dh=Math.sqrt((da*da)+(db*db)-(dc*dc)); var first=dl/2;
var second=dc/(1+0.045*c1); var third=dh/(1+0.015*c1);
return(Math.sqrt(first*first+second*second+third*third)
);
};
[0075] Para dar uma visão geral das funções de pré-processamento, cada "segmento" é uma área totalmente cercada por linhas de Sobel. Por exemplo, utilizando os dados de Sobel do processamento da imagem da Figura 30, mostrado na Figura 31, cada gaveta 90, 91, 92 é o seu próprio segmento com a sua própria cor. O processo verifica contra a cor média para cada gaveta 90, 91, 92 e uma vez que elas são semelhantes na cor, atribui o processo da mesma cor para todas as gavetas 90, 91, 92. Estes segmentos 90, 91, 92 são em média em conjunto para decidir a cor comum para cada gaveta. Uma vez que as gavetas são um segmento menor, como um todo, o processo reconhece-lhes um peso inferior. A parede 93 no entanto é um grande segmento e é de uma única cor (por exemplo azul), como indicado pelo tracejado cruzado, de modo que o lado esquerdo e direito têm um maior peso na aplicação do algoritmo deltaE, de tal modo que o intervalo de aceitar outra área azul como uma cor semelhante é maior.
[0076] Uma vez que este procedimento de combinação de cores é completa, o segmento em análise é executado através de uma dilatação e, em seguida, um algoritmo de erosão, os passos 113, 115, para fechar lacunas e endurecer bordas. Todos os segmentos associados são então a média para fora no passo 117 para definir uma luminosidade base para a mesma cor em vários segmentos:
Figure img0001
[0077] No passo 119, o segmento é então armazenado em cache com a sua cor média geral para cálculos futuros.
Pintura do Usuário da Imagem Pré-processada
[0078] A porção "pintura" do pedido empregando um "balde de tinta" é ilustrada nas Figuras 34-36. Quando o balde de tinta é chamado, passo 123, o mesmo algoritmo de preenchimento por inundação utilizado na operação de pré-processamento descrito acima é utilizado para encontrar as áreas comuns de cores na área ao redor, onde o usuário clicou, passo 125. Em uma modalidade, trinta preenchimentos de inundação diferentes, cada um com uma tolerância diferente, são executados contra a mesma área pixel, passo 127. O processo começa com a menor tolerância, já ultrapassando pixels encontrados para otimizar o desempenho, mas cada um dos trinta preenchimentos de inundação são armazenados em sua própria matriz para ser referenciado mais tarde. Quando o processo chega ao fim de um preenchimento por inundação para as bordas, a "função isNearbyPixel" detalhada anteriormente é chamada, que preenche as lacunas entre bordas Canny e outras áreas já pintadas com o usuário da cor selecionada e instrui o algoritmo de preenchimento por inundação para mover além da tolerância Sobel, o passo 129.
[0079] No passo 129, além de mover os pixels para linhas Canny durante o procedimento, os pixels são também movidos para mais perto linhas de mascaramento. Em uma modalidade, as linhas de máscara do usuário são tratadas da mesma forma como linhas regulares de máscara. Quando um usuário mascara, linhas de máscara do usuário são acrescentadas à camada de máscara seguindo as mesmas regras. Ao executar o algoritmo de preenchimento por inundação para definir a área da imagem, os pixels selecionados pelo algoritmo de preenchimento por inundação são processados para determinar a luminosidade média da imagem, o passo 131 (Figura 35). Com a seleção definida, algoritmos de dilatação e erosão são executados, passo 133, para fechar lacunas dentro da própria seleção.
[0080] Uma vez que todas as diferentes tolerâncias são definidas, o passo 135 (Figura 35), a aplicação se move para pintar a superfície determinada por terem sido escolhidos pela "chamada de balde" do usuário com base na tolerância estabelecida pelo seletor de tolerância de 54 (Figura 14) , e todos os cálculos a partir deste ponto são em uma base de pixel por pixel. Todas as seleções de tolerância sob a tolerância selecionada são fundidas para definir a área pintada, passo 137. Em uma modalidade, um algoritmo de preenchimento por inundação é realizado para cada tolerância quando a tolerância que é selecionada. A localização e a propagação de cada um é armazenada em cache. Quando é realizada uma ação de tinta, o processo se funde a partir da menor para a maior tolerância em uma superfície da pintura única e as alterações aplicadas ao pixel. Assim, os ajustes para cada pixel são únicos. Cada pixel tem seu LCH ajustado com base na sua cor e a cor aplicada e de outros fatores de ponderação para manter uma aparência natural.
[0081] Uma vez que a área pintada é definida, a aplicação prossegue para determinar se os pixels sendo pintados pertencem a um segmento identificado no pré-processamento, passo 141. Se assim for, que a área a ser pintada esteja associada a esse segmento, passo 149. Se a área selecionada pelo usuário não é parte de um segmento determinado durante o pré-processamento, a aplicação tenta associar com uma tela, os passos 143, 147, 150, através da verificação da diferença de cor deltaE entre a cor base selecionada pelo usuário e todos os segmentos encontrados durante pré-processamento. Existem pesos para tentar associar a cor com o segmento anteriormente verificado, se houve um e peso para o tamanho das telas. Em uma modalidade, os pixels que já foram pintados são armazenados e, se houver uma diferença Delta suficiente, a luminosidade armazenada a partir de uma anterior operação de pintura é utilizada como um meio de correção de erros. Se uma correspondência não for encontrada no teste 147, a cor está associada com a imagem global no passo 145. Uma vez que uma associação foi feita com o pixel, o valor de luminosidade em cache desse segmento de operações de pintura anteriores ou a seleção como um todo é utilizado para determinar a luminosidade base no passo 151.
[0082] Agora, usando a luminosidade de base (bl) do pixel, luminosidade real dos pixels (al) e a luminosidade da cor selecionada pelo usuário (cl) um algoritmo é executado para determinar a luminosidade que irá ser aplicada a que pixel, o passo 153.
[0083] A nova luminosidade (nl) é definida por nl = (al/bl)*cl. A nova luminosidade (nl) é modificada, passo 154, ponderando-a para estar mais perto do valor real (bl) e puxando-o perto da cor média da sala. A execução dessas operações também permite que o código corrija quaisquer mudanças de cor radicais dentro do mesmo segmento, juntamente com a criação de uma representação de cor que tem uma sensação mais natural. Quanto maior a diferença de luminosidade base (bl) para a luminosidade da cor (nl) , maior o modificador. Como resultado, cores claras em cores escuras não aparecem demasiadas brilhante e vice-versa. De acordo com uma concretização, o algoritmo de modificação é a seguinte:
(nl*(modificador))-((bl-cl)/1.5)
[0084] Uma vez que a nova luminosidade de cada pixel é estabelecida, ela é feita a média com luminosidade anteriormente encontrada, passo 155, para reduzir o ruído e criar uma transição mais suave. Com esta média luminosidade, a luminosidade recentemente definida A e B a partir de valores da cor selecionada pelo usuário são usados para definir a cor de substituição, o passo 159 (Figura 36).
[0085] Uma vez que todos os pixels da foram pintados com a cor de substituição, a cor "renderizada" selecionada é colocada em uma tela separada da imagem, o passo 161. Esta tela é atualizada durante alterações de tolerância, passo 163. Uma vez que um usuário aceitou uma tolerância no teste 167, a cor é mesclada para a sala pintada, o passo 172 .
[0086] Em um esforço para preservar a intensidade relativa (sombreamento) da imagem original na imagem recém-pintada, o seguinte procedimento pode ser aplicado de acordo com a seguinte implementação de código-fonte única de substituições de cores gerais. (Comentários no código siga as barras duplas "//") .
// uLumins é a luminosidade da cor de base que nós definimos com as funções anteriores
// modificador é um valor que criamos para que as salas de luz pintadas com cores escuras sejam pintadas um pouco mais leves
// e salas escuras pintadas com cores claras são um pouco mais escuras para preservar uma aparência natural e sentimento.
// toColorLCH [0] é o valor de luminosidade da cor que temos a intenção de pintar com var modifier = uLumins - toColorLCH[0]; if (modifier < 0) {
modifier = (100 + modifier) / 100;
} else if (modifier > 0) {
modifier = (100 / (100 - modifier));
} else {
modifier = 1;
}
//luminMapData é o atual valor de luminosidade da imagem base
var newLumin = ((luminMap.data[i] / uLumins) *
toColorLCH[0]);
newLumin = (newLumin * (modifier)) - ((uLumins -
toColorLCH[0]) / 1.5);
//luminosidade tem um teto de 100, se for acima de 100 nós colocamos em 100
if (newLumin > 100) newLumin = 100;
// as seguintes médias de código pixel contra pixels anteriores como um meio de remoção de ruído e correção de erros
if (ix != 0) {
var leftLuminI = ((iy * (W * 4)) + ((ix - 1) * 4));
var leftLumin =
ColorUtilities.convertRGBToLAB(newImageData.data[leftLuminI ], newImageData.data[leftLuminI + 1],
newImageData.data[leftLuminI + 2])[0];
}
if (prevLumin > 0 && iy != selectionDataBoundingRectMinY && ix != selectionDataBoundingRectMinX && (cachedLumins < 10 || Math.abs(prevLumin - newLumin) > 5 || Math.abs(leftLumin - newLumin)) > 5) {
if (leftLumin > 0 && ix != 0) {
newLumin = ((prevLumin * 2) + (leftLumin * 2) +
newLumin) / 5;
} else {
newLumin = ((prevLumin * 4) + newLumin) / 5;
}
}
// rastrear a Lumin anterior para uso no próximo pixel prevLumin = new Lumin;
// nova cor toma os valores de cores alvo A e B e insere a nossa determinada luminosidade
var newColor = ColorUtilities.convertLABToRGB(newLumin, toColorLCH[1], toColorLCH[2]);
[0087] Se um usuário pinta uma superfície que já foi pintada durante a sessão, não há verificação de tolerância e um preenchimento por inundação é realizado em todas as áreas onde a cor aparece atualmente, tornando todas as áreas contíguas na mesma cor pintada usando a metodologia descrita acima.
[0088] O "pincel" trabalha fora de um algoritmo semelhante ao processo balde de tinta com o fator adicional de que não há nenhuma área global pintada para definir uma luminosidade de base. O processo de busca para determinar se um elemento de imagem é de um segmento definido para determinar a luminosidade de base, se não é, os pixels de luminosidade real é utilizado para definir o pixel. Em uma modalidade, após a pintura com o pincel, a lógica do balde de tinta é executada para corrigir a cor processada com a informação adicional e a lógica de que a operação de balde tem gerado.
[0089] Os especialistas na técnica apreciarão que várias adaptações e modificações das concretizações ilustrativas descritas acima podem ser configuradas sem sair do âmbito e espírito da invenção. Por conseguinte, é para ser entendido que, dentro do âmbito das reivindicações anexas, a invenção pode ser praticada de outro jeito que não o especificamente descrito aqui.

Claims (18)

  1. Método automatizado para permitir que um usuário pinte uma imagem carregada em um dispositivo de tela do computador, o método automatizado caracterizado pelo fato de que compreende:
    empregar um ou mais computadores para executar uma pluralidade de operações em conjunto com um meio legível por computador e um aparelho de visualização controlado por computador, as operações compreendem gerar uma primeira exibição no referido aparelho de visualização controlado por computador, a primeira exibição compreendendo:
    a exibição de uma imagem de um ambiente colocado por um usuário;
    uma exibição de, pelo menos, uma cor selecionada pelo usuário;
    um primeiro ícone compreendendo uma ligação que permite a seleção de uma ferramenta pincel;
    um segundo ícone compreendendo uma ligação que permite a seleção de uma ferramenta borracha; e
    um terceiro ícone que compreende uma ligação que permite a seleção de uma ferramenta de mascaramento; permitir ao usuário realizar uma operação de balde de tinta para aplicar uma cor selecionada a uma primeira área da imagem carregada;
    permitir ao usuário utilizar a ferramenta pincel para preencher uma área que foi perdida durante a aplicação da cor selecionada para a primeira área;
    permitir ao usuário utilizar a ferramenta borracha para remover a cor que escorreu em uma área indesejada durante a aplicação da cor selecionada; e
    permitir que o usuário empregue a ferramenta de mascaramento para mascarar uma área selecionada da referida imagem do ambiente de tal modo que a cor não irá ser aplicada a essa área selecionada;
    em que a seleção da ferramenta pincel faz com que uma exibição de seleção do tamanho do pincel seja exibida na primeira exibição, a exibição de seleção do tamanho do pincel configurada para permitir ao usuário selecionar dentre uma pluralidade de diferentes tamanhos de pincéis, cada um dos pincéis de diferentes tamanhos permitindo a cobertura de uma área de tamanho diferente e em que a ferramenta pincel é representada na primeira exibição por um círculo móvel cujo raio corresponde ao tamanho do pincel selecionado na exibição de seleção do tamanho do pincel.
  2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda a geração de uma exposição de uma ferramenta de tolerância deslizante sobre a referida primeira tela e permitir que o usuário empregue a ferramenta deslizante para aumentar ou diminuir a área pintada.
  3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a exibição da ferramenta deslizante de tolerância compreende uma área escurecida dentro de um triângulo retângulo, que pode ser puxado para a esquerda ou para a direita para aumentar ou diminuir a área pintada.
  4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a referida ferramenta de mascaramento permite a um usuário bloquear uma área que não deve ser pintada com uma linha reta.
  5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a referida ferramenta de mascaramento permite a um usuário gerar um polígono em que o referido primeiro visor mascare uma área dentro do polígono.
  6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a referida operação de balde de tinta compreende em clicar em uma cor selecionada e, em seguida, clicar em uma área em que a cor selecionada é para ser aplicada.
  7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a referida operação de balde de tinta emprega um ícone, móvel por mouse, de balde.
  8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a primeira área pintada é de uma parede, de um teto ou de uma porta.
  9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda:
    determinar uma cor de pixel média dentro de cada segmento da pluralidade de segmentos;
    comparar a cor de pixel média para cada da pluralidade de segmentos para determinar se um primeiro segmento tem a mesma ou uma cor de pixel média similar ao segundo segmento; e
    associar o primeiro e segundo segmentos para ser exibido com a mesma cor.
  10. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda em tirar uma captura instantânea de luminosidade de cada pixel e armazenar a captura instantânea na memória.
  11. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o valor de tolerância é definido como seis pixels.
  12. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o um ou mais computadores programados serem um computador de cliente que realiza o processamento sem a intervenção de um servidor.
  13. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que o método é realizado pelo um ou mais computadores programados dentro do navegador do um ou mais computadores programados.
  14. Aparelho, caracterizado pelo fato de que compreende: um dispositivo de exibição; pelo menos um dispositivo de computação; e memória de armazenamento de dados associada, o dispositivo de exposição, o pelo menos um dispositivo de computação e a memória de armazenamento de dados associada sendo configurados para gerar uma exibição no dispositivo de exibição de uma imagem de ambiente carregada por um usuário e para permitir ao usuário realizar uma operação de balde de tinta para aplicar uma cor selecionada a uma primeira área da imagem carregada, a exibição compreendendo ainda:
    um primeiro ícone compreendendo uma ligação que permite a seleção de uma ferramenta pincel para preencher uma área que foi perdida durante a aplicação da cor selecionada para a primeira área;
    um segundo ícone compreendendo uma ligação que permite a seleção de uma ferramenta borracha para remover a cor que escorreu em uma área indesejada durante a aplicação da cor selecionada; e
    um terceiro ícone que compreende uma ligação que permite a seleção de uma ferramenta de mascaramento para mascarar uma área que não deve ser pintada;
    em que a seleção da ferramenta pincel faz com que uma exibição de seleção do tamanho do pincel seja exibida na exibição, a exibição de seleção do tamanho do pincel configurada para permitir ao usuário selecionar dentre uma pluralidade de diferentes tamanhos de pincéis, cada um dos pincéis de diferentes tamanhos permitindo a cobertura de uma área de tamanho diferente e em que a ferramenta pincel é representada na exibição por um círculo móvel cujo raio corresponde ao tamanho do pincel selecionado na exibição de seleção do tamanho do pincel.
  15. Aparelho, de acordo com a reivindicação 14, caracterizado pelo fato de que compreende ainda a geração de uma exposição de uma ferramenta de tolerância deslizante sobre a referida exibição e permite que o usuário empregue a ferramenta deslizante para aumentar ou diminuir a área pintada.
  16. Aparelho, de acordo com a reivindicação 15, caracterizado pelo fato de que a exibição da ferramenta deslizante de tolerância compreende uma área escurecida dentro de um triângulo retângulo, que pode ser puxado para a esquerda ou para a direita para aumentar ou diminuir a área pintada.
  17. Método de processamento de uma imagem digital carregada de um ambiente realizado por um ou mais computadores programados, o método caracterizado pelo fato de que compreende:
    execução, com o um ou mais computadores programados, de um algoritmo de suavização bilateral na imagem digital carregada, a fim de remover o ruído de superfícies planas mostradas na imagem digital carregada do ambiente;
    execução, com o um ou mais computadores programados, os algoritmos de detecção de borda Sobel na imagem digital carregada para gerar dados de imagem de Sobel incluindo uma pluralidade de bordas Sobel com cada borda Sobel tendo um valor de resistência de borda correspondente gerado pelo algoritmo de detecção de bordas Sobel;
    execução, com o um ou mais computadores programados, um algoritmo de detecção de borda Canny na imagem digital carregada para gerar dados de imagem de Canny incluindo uma pluralidade de bordas Canny, os dados de imagem de Canny sendo armazenados separadamente dos dados de imagem de Sobel;
    execução, com o um ou mais computadores programados, de um algoritmo de preenchimento por inundação sobre os dados de imagem de Sobel para segmentar a imagem digital carregada em uma pluralidade de segmentos que têm a mesma cor pela comparação de um valor de tolerância com os valores de resistência de borda de cada uma da pluralidade de bordas Sobel e gerar uma pluralidade de bordas de segmento correspondentes às bordas Sobel tendo valores de resistência de borda superiores ao valor de tolerância, a pluralidade de segmentos sendo formada por agrupamentos conectados da pluralidade de bordas de segmento;
    comparação, com o um ou mais computadores programados, de bordas de segmento para cada segmento com a pluralidade de bordas Canny para determinar se uma borda de segmento particular está dentro de um número pré-determinado de pixels a partir de uma borda Canny particular e modificar a borda de segmento particular para corresponder à borda Canny particular em resposta a determinar que a borda de segmento particular está dentro do número pré-determinado de pixels a partir da borda Canny particular;
    receber de um usuário, com o um ou mais computadores programados, um segmento selecionado a partir da pluralidade de segmentos e uma cor de tinta selecionada a partir de uma pluralidade de cores de tinta; e
    exibir, em uma exibição controlada pelo um ou mais computadores programados, a imagem digital carregada do ambiente com o segmento selecionado pintado pela cor de tinta selecionada.
  18. Meio não transitório legível por computador armazenando instruções legíveis por computador que são executáveis por um ou mais computadores para realizar um método de processamento de uma imagem digital carregada de um ambiente, o método caracterizado pelo fato de que compreende:
    execução, com o um ou mais computadores programados, de algoritmo de suavização bilateral na imagem digital carregada, a fim de remover o ruído de superfícies planas mostradas na imagem digital carregada do ambiente;
    execução, com o um ou mais computadores programados, de um algoritmo de detecção de borda Sobel na imagem digital carregada para gerar dados de imagem de Sobel incluindo uma pluralidade de bordas Sobel com cada borda Sobel tendo um valor de resistência de borda correspondente gerado pelo algoritmo de detecção de borda Sobel;
    execução, com o um ou mais computadores programados, de algoritmo de detecção de borda Canny na imagem digital carregada para gerar dados de imagem de Canny incluindo uma pluralidade de bordas Canny, os dados de imagem de Canny sendo armazenados separadamente dos dados de imagem de Sobel;
    execução, com o um ou mais computadores programados, de um algoritmo de preenchimento por inundação nos dados de imagem de Sobel para segmentar a imagem digital carregada em uma pluralidade de segmentos tendo a mesma cor por comparação de um valor de tolerância com os valores de resistência de borda de cada uma da pluralidade de bordas Sobel e gerar uma pluralidade de bordas de segmento correspondentes às bordas Sobel tendo valores de resistência de borda superiores ao valor de tolerância, a pluralidade de segmentos sendo formada por agrupamentos conectados da pluralidade de bordas de segmento;
    comparação, com o um ou mais computadores programados, das bordas de segmento para cada segmento com a pluralidade de bordas Canny para determinar se uma borda de segmento particular está dentro de um número pré-determinado de pixels a partir de uma borda Canny particular e modificar a borda de segmento particular para corresponder à borda Canny particular em resposta a determinar que a borda de segmento particular está dentro do número pré-determinado de pixels a partir da borda Canny particular;
    receber de um usuário, com o um ou mais computadores programados, um segmento selecionado a partir da pluralidade de segmentos e uma cor de tinta selecionada a partir de uma pluralidade de cores de tinta; e
    exibir, na exibição controlada pelo um ou mais computadores programados, a imagem digital carregada do ambiente com o segmento selecionado pintado pela cor de tinta selecionada.
BR102016005244-0A 2015-03-17 2016-03-09 Método, aparelho e meio não transitório legível por computador para permitir que um usuário pinte uma imagem BR102016005244A2 (pt)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562134250P 2015-03-17 2015-03-17
US62/134,250 2015-03-17
US15/053,852 US9857888B2 (en) 2015-03-17 2016-02-25 Paint your place application for optimizing digital painting of an image
US15/053,852 2016-02-25

Publications (1)

Publication Number Publication Date
BR102016005244A2 true BR102016005244A2 (pt) 2020-09-24

Family

ID=56360140

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102016005244-0A BR102016005244A2 (pt) 2015-03-17 2016-03-09 Método, aparelho e meio não transitório legível por computador para permitir que um usuário pinte uma imagem

Country Status (8)

Country Link
US (5) US9857888B2 (pt)
KR (2) KR102619261B1 (pt)
CN (2) CN105989622B (pt)
AR (2) AR103948A1 (pt)
BR (1) BR102016005244A2 (pt)
CL (2) CL2016000511A1 (pt)
MX (1) MX2016003310A (pt)
PE (1) PE20161056A1 (pt)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9563342B2 (en) * 2009-07-22 2017-02-07 Behr Process Corporation Automated color selection method and apparatus with compact functionality
US9857888B2 (en) * 2015-03-17 2018-01-02 Behr Process Corporation Paint your place application for optimizing digital painting of an image
US10304125B1 (en) * 2016-02-26 2019-05-28 Amazon Technologies, Inc. Method and system for color capture and presentation enhancement
FR3050672B1 (fr) * 2016-04-29 2018-11-23 Les Companions Automate pour le traitement d'une surface
USD823317S1 (en) 2016-06-07 2018-07-17 Beijing Kingsoft Internet Security Software Co., Ltd. Mobile communication terminal with graphical user interface
US11087388B1 (en) 2016-10-31 2021-08-10 Swimc Llc Product-focused search method and apparatus
US10901576B1 (en) * 2016-11-01 2021-01-26 Swimc Llc Color selection and display
US10452751B2 (en) * 2017-01-09 2019-10-22 Bluebeam, Inc. Method of visually interacting with a document by dynamically displaying a fill area in a boundary
CN107123152B (zh) * 2017-04-06 2023-01-06 腾讯科技(深圳)有限公司 一种编辑处理方法及装置
US11062373B2 (en) 2017-05-10 2021-07-13 Behr Process Corporation Systems and methods for color coordination of scanned products
US10824317B2 (en) * 2017-06-14 2020-11-03 Behr Process Corporation Systems and methods for assisting with color selection
CN107357570B (zh) * 2017-06-20 2021-01-26 广东小天才科技有限公司 一种填色图像的生成方法及用户终端
CN109427036B (zh) * 2017-08-22 2022-09-30 北京搜狗科技发展有限公司 皮肤颜色的处理方法和装置
US10809884B2 (en) 2017-11-06 2020-10-20 The Sherwin-Williams Company Paint color selection and display system and method
USD877183S1 (en) * 2018-05-07 2020-03-03 Google Llc Display screen or portion thereof with transitional graphical user interface
USD870746S1 (en) * 2018-05-07 2019-12-24 Google Llc Display screen or portion thereof with graphical user interface
USD877161S1 (en) * 2018-05-07 2020-03-03 Google Llc Display screen or portion thereof with transitional graphical user interface
USD877181S1 (en) * 2018-05-07 2020-03-03 Google Llc Display screen or portion thereof with graphical user interface
USD870745S1 (en) 2018-05-07 2019-12-24 Google Llc Display screen or portion thereof with graphical user interface
USD877182S1 (en) * 2018-05-07 2020-03-03 Google Llc Display screen or portion thereof with transitional graphical user interface
USD888755S1 (en) 2018-05-07 2020-06-30 Google Llc Display screen or portion thereof with transitional graphical user interface
CN108897881B (zh) * 2018-07-05 2023-08-22 腾讯科技(深圳)有限公司 交互式图像显示方法、装置、设备和可读存储介质
CN109062484B (zh) * 2018-07-30 2022-08-02 安徽慧视金瞳科技有限公司 一种交互式课堂教学系统手动掩膜图获取方法
US20210318796A1 (en) * 2018-08-17 2021-10-14 Matrix Analytics Corporation System and Method for Fabricating Decorative Surfaces
JP7148624B2 (ja) * 2018-09-21 2022-10-05 富士フイルム株式会社 画像提案装置、画像提案方法及び画像提案プログラム
US11995840B2 (en) 2018-12-31 2024-05-28 I-Deal S.R.L. Anthropometric data portable acquisition device and method of collecting anthropometric data
CN111830834B (zh) * 2019-04-15 2021-02-09 南通市联缘染业有限公司 基于环境分析的设备控制方法
CN110895825B (zh) * 2019-11-05 2021-09-17 山东新潮信息技术有限公司 遗漏数据检测系统以及方法
USD921036S1 (en) 2019-11-12 2021-06-01 West Pharmaceutical Services, Inc. Display screen or portion thereof with icon
CN110989897B (zh) * 2019-11-21 2021-12-03 富途网络科技(深圳)有限公司 截屏图片的获取方法、装置、终端设备及存储介质
CN111161378B (zh) * 2019-12-27 2023-10-17 北京金山安全软件有限公司 一种填色方法、装置及电子设备
US11875428B2 (en) * 2020-01-31 2024-01-16 L'oreal System and method of lipstick bulktone and application evaluation
CN111709344B (zh) * 2020-06-09 2023-10-17 上海海事大学 一种基于高斯混合模型的epll图像去光照识别处理方法
US11138775B1 (en) * 2020-08-06 2021-10-05 Richard R. Rosser Interactive illustration system, interactive animation system, and methods of use
KR20230117639A (ko) 2020-09-25 2023-08-08 애플 인크. 사용자 인터페이스와 연관된 몰입을 조정 및/또는 제어하기위한 방법
CN115136112A (zh) * 2020-10-30 2022-09-30 京东方科技集团股份有限公司 人机交互方法、装置和系统,以及计算机可读存储介质
US11995230B2 (en) 2021-02-11 2024-05-28 Apple Inc. Methods for presenting and sharing content in an environment
WO2022221851A1 (en) * 2021-04-13 2022-10-20 Apple Inc. Methods for providing an immersive experience in an environment
CN113568557B (zh) * 2021-09-26 2022-02-11 广州朗国电子科技股份有限公司 一种快速切换画笔书写粗细和颜色的方法及电子设备
US12008766B2 (en) * 2022-07-26 2024-06-11 Behr Process Corporation Image processing to detect edges, walls, and surfaces for a virtual painting application
WO2024053895A1 (ko) * 2022-09-08 2024-03-14 삼성전자 주식회사 현실 공간에서 객체를 제어하는 증강 현실 서비스를 제공하는 증강 현실 디바이스 및 그 동작 방법

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3232942A (en) * 1964-06-02 1966-02-01 Sandoz Ltd 1-substituted (+)-lysergol
US6097853A (en) * 1996-09-11 2000-08-01 Da Vinci Systems, Inc. User definable windows for selecting image processing regions
US6870550B1 (en) * 1999-04-26 2005-03-22 Adobe Systems Incorporated Digital Painting
US7391929B2 (en) 2000-02-11 2008-06-24 Sony Corporation Masking tool
US6850651B2 (en) * 2001-07-02 2005-02-01 Corel Corporation Moiré correction in images
WO2004100044A1 (en) * 2003-05-07 2004-11-18 Evenzo Ab Marking of large surfaces with visual presentations
US20050024328A1 (en) * 2003-07-23 2005-02-03 Graham Oldfield Control area selection in a computing device with a graphical user interface
US7095418B2 (en) 2003-10-30 2006-08-22 Sensable Technologies, Inc. Apparatus and methods for texture mapping
US7230629B2 (en) 2003-11-06 2007-06-12 Behr Process Corporation Data-driven color coordinator
US20060001677A1 (en) 2003-11-06 2006-01-05 Marc Webb Color selection and coordination system
CN1797472A (zh) * 2004-12-20 2006-07-05 甲尚股份有限公司 处理漫画角色的系统及方法
US9418450B2 (en) 2006-08-31 2016-08-16 Ati Technologies Ulc Texture compression techniques
JP4085123B1 (ja) * 2007-03-29 2008-05-14 株式会社サピエンス 画像表示更新方法およびサーバ・クライアントシステム並びに描画操作エコーバックスクリプト
CN101681432B (zh) 2007-05-01 2013-11-06 计算机连接管理中心公司 图片文档分割方法和系统
US20080310747A1 (en) * 2007-05-23 2008-12-18 Dean Robert Gary Anderson As Trustee Of D/L Anderson Family Trust Software for creating engraved images
WO2008147527A1 (en) * 2007-05-23 2008-12-04 Dean Robert Gary Anderson Software for creating engraved images
US20090146961A1 (en) * 2007-12-05 2009-06-11 David Shun-Chi Cheung Digital image editing interface
EP2458552B1 (en) * 2008-05-28 2017-04-12 Apple Inc. Defining a selection border in an image as a pair of deformable curves
CN101739704B (zh) * 2008-11-21 2012-05-02 台达电子工业股份有限公司 多边形快速填色方法
FR2944898B1 (fr) * 2009-04-23 2018-03-16 Lvmh Recherche Procede et appareil de caracterisation des imperfections de la peau et procede d'appreciation de l'effet anti-vieillissement d'un produit cosmetique
CN101602315B (zh) * 2009-06-30 2012-09-12 张磊 一种通过图像处理制备油画的方法
US9563342B2 (en) * 2009-07-22 2017-02-07 Behr Process Corporation Automated color selection method and apparatus with compact functionality
US8335374B2 (en) * 2009-08-12 2012-12-18 Genetix Corporation Image segmentation
US8687015B2 (en) * 2009-11-02 2014-04-01 Apple Inc. Brushing tools for digital image adjustments
US8933962B2 (en) * 2010-11-15 2015-01-13 Microsoft Corporation Clipart cartoon techniques
US8760464B2 (en) 2011-02-16 2014-06-24 Apple Inc. Shape masks
EP2702546B1 (en) * 2011-04-29 2021-03-03 American Greetings Corporation Systems, methods and apparatuses for creating, editing, distributing and viewing electronic greeting cards
EP2709070A4 (en) * 2011-05-12 2014-12-17 Panasonic Corp IMAGE GENERATING DEVICE AND IMAGE GENERATING METHOD
US8854342B2 (en) 2012-03-02 2014-10-07 Adobe Systems Incorporated Systems and methods for particle-based digital airbrushing
US8896579B2 (en) * 2012-03-02 2014-11-25 Adobe Systems Incorporated Methods and apparatus for deformation of virtual brush marks via texture projection
US9569078B2 (en) * 2012-03-06 2017-02-14 Apple Inc. User interface tools for cropping and straightening image
US9123174B2 (en) * 2012-04-03 2015-09-01 Ppg Industries Ohio, Inc. Method and apparatus for displaying a simulated application of at least one coating to a digital image
US20140040789A1 (en) 2012-05-08 2014-02-06 Adobe Systems Incorporated Tool configuration history in a user interface
US8957915B1 (en) * 2012-06-14 2015-02-17 Cinemagram Inc. Method, apparatus and system for dynamic images
US20140240343A1 (en) * 2013-02-22 2014-08-28 Corel Corporation Color adjustment control in a digital graphics system using a vision system
US9190016B2 (en) 2013-03-15 2015-11-17 Valspar Sourcing, Inc. Color-matching tool for virtual painting
WO2014193548A2 (en) * 2013-04-16 2014-12-04 Artware, Inc. Method for iteratively modifying a display image using a mask layer
CN103886589B (zh) * 2014-02-27 2017-11-03 四川农业大学 面向目标的自动化高精度边缘提取方法
US9857888B2 (en) * 2015-03-17 2018-01-02 Behr Process Corporation Paint your place application for optimizing digital painting of an image

Also Published As

Publication number Publication date
CL2016000511A1 (es) 2017-03-31
US10416790B2 (en) 2019-09-17
US20180074605A1 (en) 2018-03-15
CN111666017B (zh) 2023-07-04
CN111666017A (zh) 2020-09-15
MX2016003310A (es) 2016-09-26
US20220269357A1 (en) 2022-08-25
US9857888B2 (en) 2018-01-02
CL2018000898A1 (es) 2018-06-08
US11934590B2 (en) 2024-03-19
KR20240001103A (ko) 2024-01-03
US20200393917A1 (en) 2020-12-17
KR20160111864A (ko) 2016-09-27
CN105989622A (zh) 2016-10-05
AR121849A2 (es) 2022-07-13
AR103948A1 (es) 2017-06-14
US20160275702A1 (en) 2016-09-22
KR102619261B1 (ko) 2024-01-02
CN105989622B (zh) 2020-07-21
US20190339794A1 (en) 2019-11-07
US10795459B2 (en) 2020-10-06
PE20161056A1 (es) 2016-10-26
US11275454B2 (en) 2022-03-15

Similar Documents

Publication Publication Date Title
BR102016005244A2 (pt) Método, aparelho e meio não transitório legível por computador para permitir que um usuário pinte uma imagem
CN110084874B (zh) 对于三维模型的图像风格迁移
US10565757B2 (en) Multimodal style-transfer network for applying style features from multi-resolution style exemplars to input images
US9019310B2 (en) Methods and apparatus for applying complex continuous gradients to images
US10127327B2 (en) Cloud-based image processing web service
JP2023543538A (ja) 拘束されない画像データに対してロバストな視点合成
JP7213616B2 (ja) 情報処理装置、情報処理プログラム及び情報処理方法。
US11651480B2 (en) Systems and methods for selective enhancement of objects in images
US20140198103A1 (en) Method for polygon reduction
US9679398B2 (en) Rendering images using color contribution values of render elements
JPWO2018203374A1 (ja) 線画自動着色プログラム、線画自動着色装置及びグラフィカルユーザインターフェース用プログラム
CN113888398B (zh) 头发渲染方法、装置及电子设备
US9299189B1 (en) Techniques for updating design file lighting values
US11410346B1 (en) Generating and adjusting a proportional palette of dominant colors in a vector artwork
JP2016526232A (ja) 多重分類による画像のボリュームレンダリング
CN113657396A (zh) 训练方法、译文展示方法、装置、电子设备以及存储介质
US20150193950A1 (en) Simulating color diffusion in a graphical display
US20180089906A1 (en) Blend shape system with dynamic partitioning
US9779529B2 (en) Generating multi-image content for online services using a single image
US20180089882A1 (en) Blend shape system with texture coordinate blending
US20140354627A1 (en) Rendering a 3d shape
US20190356904A1 (en) Methods and systems for stereoscopic presentation of digital content
Ha Automatic lighting design

Legal Events

Date Code Title Description
B12F Other appeals [chapter 12.6 patent gazette]
B150 Others concerning applications: publication cancelled [chapter 15.30 patent gazette]

Free format text: ANULADA A PUBLICACAO CODIGO 15.21 NA RPI NO 2458 DE 14/02/2018 POR TER SIDO INDEVIDA.

B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09B Patent application refused [chapter 9.2 patent gazette]
B12B Appeal against refusal [chapter 12.2 patent gazette]