BR102014005996A2 - segmentação de uma imagem com base em cor e diferenças de cores - Google Patents

segmentação de uma imagem com base em cor e diferenças de cores Download PDF

Info

Publication number
BR102014005996A2
BR102014005996A2 BR102014005996A BR102014005996A BR102014005996A2 BR 102014005996 A2 BR102014005996 A2 BR 102014005996A2 BR 102014005996 A BR102014005996 A BR 102014005996A BR 102014005996 A BR102014005996 A BR 102014005996A BR 102014005996 A2 BR102014005996 A2 BR 102014005996A2
Authority
BR
Brazil
Prior art keywords
region
image
value
color
positions
Prior art date
Application number
BR102014005996A
Other languages
English (en)
Inventor
Young Harvill
Original Assignee
Zazzle Inc
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 Zazzle Inc filed Critical Zazzle Inc
Publication of BR102014005996A2 publication Critical patent/BR102014005996A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/56Extraction of image or video features relating to colour
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0621Electronic shopping [e-shopping] by configuring or customising goods or services
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0641Electronic shopping [e-shopping] utilising user interfaces specially adapted for shopping
    • G06Q30/0643Electronic shopping [e-shopping] utilising user interfaces specially adapted for shopping graphically representing goods, e.g. 3D product representation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/00Two-dimensional [2D] image generation
    • G06T11/10Texturing; Colouring; Generation of textures or colours
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/187Segmentation; Edge detection involving region growing; involving region merging; involving connected component labelling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Color Image Communication Systems (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Processing Or Creating Images (AREA)

Abstract

segmentação de uma imagem com base em cor e diferenças de cor. uma imagem de entrada de um produto customizável que compreende uma marcação que é dividida em uma pluralidade de regiões de imagem com base em cores e diferenças de cor. a divisão compreende a atribuição de um valor de diferença de cor à pluralidade de posições dentro da imagem de entrada. a divisão compreende ainda a atribuição de cada uma da pluralidade de posições a uma região de imagem da pluralidade de regiões de imagem, onde a atribuição ocorre de acordo com uma ordem específica. a ordem específica é baseada, pelo menos em parte, em valores de diferença de cor associados à pluralidade de posições. os dados que representam pelo menos uma porção específica da marcação na imagem de entrada, com base na divisão, são identificados. os dados que representam pelo menos a porção da marcação são usados numa visualização do produto customizável, ou num controle de fabricação relacionado ao produto customizável.

Description

SEGMENTAÇÃO DE UMA IMAGEM COM BASE EM COR E DIFERENÇAS DE
CORES
CAMPO TÉCNICO 001. A presente divulgação diz respeito a técnicas de segmentação de uma imagem de marcação de produto em regiões com base em cores e diferenças entre cores.
ANTECEDENTES 002. As abordagens descritas nesta seção são abordagens que poderiam ser obtidas, mas não necessariamente abordagens que tenham sido préviamente concebidas ou obtidas. Portanto, a menos que indicado de outra forma, não deve ser suposto que quaisquer das abordagens descritas nesta seção qualificam-se como estado da técnica meramente em virtude da sua inclusão nesta seção. 003. Informações sobre uma imagem digital, tais como a posição e forma de objetos específicos na imagem digital podem ser extraídas através da execução de segmentação da imagem digital. A segmentação de imagens é um processo de divisão da imagem digital em uma pluralidade de diferentes regiões. Por exemplo, um fabricante ou fornecedor de um produto customizado, tal como Zazzle, Inc., pode desejar extrair a posição e forma de marcação impressa sobre um produto para fins de compreensão da geometria do produto customizado, tal como uma peça de vestuário ou acessório, quando usado. 004. Uma abordagem da segmentação de imagens é a de transformar a representação em cores de uma imagem em uma imagem de luminância monocromática, onde a sombra de cada pixel representa o valor de luminância de pixel na imagem original. As partições de regiões podem ser determinadas com base na luminância de pixels dentro da imagem. No entanto, essa abordagem muitas vezes produz resultados imprecisos, já que algumas das informações de cor necessárias para determinar precisamente as partições de regiões estão perdidas na transformação em imagem de luminância monocromática. São necessárias abordagens para melhor reconhecimento das partições de imagem em imagens de produtos marcados.
RESUMO DA INVENÇÃO 005. As reivindicações anexas podem servir como um resumo da invenção.
BREVE DESCRIÇÃO DOS DESENHOS 006. Nos desenhos: 007. A FIG. 1 ilustra um exemplo de imagem de entrada, que pode ser dividida numa pluralidade de regiões de imagem. 008. A FIG. 2 ilustra um exemplo de sistema de renderização de imagem de customização que pode utilizar informações de região determinadas de acordo com o processo de divisão. 009. A FIG. 3 ilustra um exemplo de processo que pode ser implementado em um sistema de renderização de imagem de customização, tal como o sistema de renderização de imagem de customização ilustrado na FIG. 2. 0010. A FIG. 4 ilustra um exemplo de processo para dividir uma imagem em regiões e utilizar a informação da região, que pode ser determinada como um resultado do processo de divisão. 0011. A FIG. 5 ilustra um exemplo de processo para dividir uma imagem de entrada em uma pluralidade de regiões de imagem, em parte, com base na cor e em diferenças de cor. 0012. A FIG. 6 ilustra um exemplo de diagrama de posição cujas cores podem ser analisadas para determinar um valor de diferença de cor para uma posição central. 0013. A FIG. 7 ilustra um exemplo de dados de diferença de cor, que podem ser usados para classificar as posições com base nos seus valores de diferença de cor associados e um exemplo de lista de classificação e matriz de diferença de cor que podem ser utilizados, que podem resultar do processo de ordenação. 0014. A FIG. 8 ilustra um exemplo de processo para classificar posições de imagem com base em valores de diferença de cor. 0015. A FIG. 9 ilustra o conteúdo de uma lista de classificação parcialmente preenchida e matriz de região vinculada que pode ser preenchida com base nos valores de diferença de cor armazenados em uma matriz de diferença de cor, de acordo com o processo ilustrado pela FIG. 7. 0016. A FIG. 10 ilustra um exemplo de processo para atribuição de posições de imagens a regiões. O processo pode ser realizado pelo sistema de processamento de imagem 204. 0017. A FIG, 11 ilustra exemplo de informações de região que podem ser determinadas como um resultado do processo de divisão. 0018. A FIG. 12 mostra uma imagem de grade de marcação que pode ser determinada com base, em parte, na informação da região identificada através da divisão da imagem de entrada representado na FIG. 1. 0019. A FIG. 13 é um diagrama em blocos que ilustra um sistema de computador através do qual as técnicas aqui podem ser implementadas.
DESCRIÇÃO DE CONCRETIZAÇÕES EXEMPLIFICATIVAS 0020. Na descrição que se segue, para os fins de explicação, numerosos detalhes específicos são apresentados a fim de proporcionar um completo entendimento da presente invenção. Será evidente, contudo, que o presente invento pode ser praticado sem esses detalhes específicos. Em outros casos, estruturas e dispositivos bem conhecidos são mostrados em forma de diagrama em bloco, a fim de evitar obscurecer desnecessariamente a presente invenção. 0021. As concretizações são descritas aqui de acordo com o esquema seguinte: 1. Visão Geral 2. Visão Estrutural e Funcional 2.1 Exemplo de Sistema de Renderização da Imagem de Customização 2.2 Exemplo de Processos de Utilização de Informações de Região 2.3 Exemplo de Processo de Divisão da Imagem de Marcação 2.4 Alternativas e Extensões 3. Mecanismos de Implementàção - Visão Geral do Hardware 4. Exemplo de Instruções de Divisão 0022. 1. VISÃO GERAL 0023. São descritas técnicas de segmentação de uma imagem de marcação de produto com base em cor e diferenças de cor. Presume-se que os leitores da presente divulgação têm conhecimento e compreensão do pedido US 13/736.844. Numa concretização, a imagem de marcação de produto é uma imagem de um produto customizável que compreende marcação. A imagem de produto pode ser dividida em diferentes regiões, com base, em parte, em diferenças dé Cor. Em específico, para cada posição da imagem de entrada da imagem de marcação de produto pode ser atribuído um valor de diferença de cor, que indica quão diferente a posição é a partir de posições vizinhos em termos de cor. Para cada posição pode ser atribuída uma região de imagem da pluralidade de regiões de imagem, e posições podem ser consideradas para as atribuições de região, de acordo com uma ordem que se baseia, pelo menos em parte, no valor de diferença de cor atribuído ao pixel. Por exemplo, para posições com baixos valores associados de diferença de cor podem ser atribuídas regiões antes de posições com altos valores associados de diferença de cor. 0024. Um sistema de processamento de imagem pode utilizar informações de região determinadas na visualização do produto customizável ou um controle de fabricação relacionado com o produto customizável. Por exemplo, o sistema de processamento de imagem pode determinar a posição de determinadas porções de marcação com base em informações de região. Com base nas informações de posição determinadas, o sistema de processamento de imagem pode determinar um recurso de renderização de imagem de customização, que inclui instruções para o processamento de visualização gerado por computador de produtos customizados. As informações de região podem também ser utilizadas para verificar a qualidade de um produto customizado depois de o produto customizado ter sido fabricado.
0025. 2. VISÃO ESTRUTURAL E FUNCIONAL
0026. 2.1 EXEMPLO DE SISTEMAS DE UTILIZAÇÃO DE INFORMAÇÕES DE REGIÃO 0027. A FIG. 1 ilustra um exemplo de imagem de entrada que pode ser dividida numa pluralidade de regiões de imagem. Uma camisa 104 é um produto customizável sobre o qual texto ou imagem customizada pode ser impressa. Marcação 102 é um padrão quadriculado de duas cores composto por quadrados de cor sólida, onde cada quadrado é de uma única cor e cada quadrado adjacente é da cor oposta Os processos aqui descritos podem particionar, pelo menos, a porção de marcação da imagem de entrada num conjunto de regiões, onde cada região do conjunto de regiões representa um único quadrado correspondente da marcação. Em outras concretizações, a marcação pode conter padrão(ões), forma(s) ou cor(es) diferente(s). 0028. O processo de divisão de imagem pode resultar em regiões de informação que identificam, por exemplo, para cada região encontrada, os posições de imagem que pertencem à região, à área de cada região, e / ou à cor representativa da região. Em algumas concretizações, cada posição de imagem é um pixel separado. Em outras concretizações, cada posição de imagem é um grupo de pixels. 0029. Numa concretização, as informação de região resultante é utilizada na visualização automática de um produto customizado, que podé ser customizado de acordo com parâmetros fornecidos pelo çliente. A FIG. 2 ilustra um exemplo de geração de imagem de customização e sistema de renderização que podem utilizar as informações de região determinadas de acordo com o processo de divisão. 0030. Uma ou mais câmeras 202 podem capturar uma fotografia do produto customizável impresso ou, de outra maneira, embelezado com a marcação. O sistema de processamento de imagem 204 pode receber e armazenar imagens digitais não tratadas 206 recebidas de câmera(s) 202. O sistema de processamento de imagem 204 compreende geração de instruções do recurso de renderização de imagem customizada 208, que podem ser implementadas como um ou mais programas de computador, Scripts ou outros elementos de software armazenados. Um ou mais processadores do sistema de processamento de imagem 204 podem executar a geração de instruções do recurso de renderização de imagem customizada 208 para conceber a geração de instruções de renderização de imagens de customização. A geração de instruções do recurso de renderização de imagem customizada 208 pode incluir instruções de identificação de região de marcação 210, que incluem instruções para a análise de imagens de entrada para identificar regiões de imagem particionadas e coletar informações sobre as regiões de imagem, tal como uma cor representativa da região, a área da região e o conjunto de posições de imagem incluída na região. A geração de instruções do recurso de renderização de imagem customizada pode incluir determinar instruções para gerar uma renderização de imagem de customização com base nas informações de região. O recurso de renderização de imagem de customização pode conter instruções para a renderização de uma imagem de customização gerada por computador que visualiza um produto customizado. 0031. O sistema de processamento de imagem 204 pode enviar um recurso de renderização de imagem customizada gerado para o servidor web 212, tais como recurso de renderização de imagem de customização 214 para ser armazenado e utilizado em servidor web 212. O servidor web 212 pode receber e armazenar um ou mais recursos de renderização de imagem de customização, tal como o recurso de renderização de imagem de customização 214. O servidor web 212 também compreende gerador de página web 216, que determina HTML e / ou outro conteúdo da página web. O servidor Web 212 pode receber solicitações de páginas da web a partir de um sistema de usuário, tal como o sistema de usuário 220. Em resposta, o servidor web 212 pode enviar uma página web para visualização no sistema de usuário, e pode incluir uma imagem de customização que é gerada pela execução de instruções incluídas no recurso de renderização de imagem de customização. O servidor Web 212 pode ser operado por um varejista on-line para a geração de sites on-line de varejo. 0032. O sistema de usuário 220 pode ser o sistema através do qual um cliente navega no site de um varejista on-line, seleciona um produto para customizar, especifica a forma como o produto deve ser customizado e recebe a imagem de customização. O sistema de usuário 220 pôde solicitar páginas web e conteúdo web a partir do servidor web 212 através da rede 28, que pode ser a rede mundial (WWW). 0033. O sistema ilustrado na FIG. 2 é apenas um exemplo de sistema de renderização de imagem de customização. Sistemas de outras concretizações podem não incluir cada um dos componentes e subcomponentes ilustrados ná FIG. 2. Além disso, com a finalidade de ilustrar claramente um exemplo, a FIG. 2 mostra exemplos individuais de vários elementos funcionais, conforme descrito acima; no entanto, em várias concretizações, cada um dos elementos funcionais pode ser implementado como um ou mais computadores, processos, elementos de software ou outra lógica posição ou distribuída.
0034. 2.2 EXEMPLO DE PROCESSO DE UTILIZAÇÃO DE INFORMAÇÃO DE REGIÃO 0035. A FIG. 3 ilustra um exemplo de processo de que pode ser implementado em um sistema de renderização de imagem de customização, tal como o sistema de renderização de imagem de customização ilustrado na FIG. 2. De acordo com o processo da FIG. 3, um recurso de renderização de imagem de customização, que contém instruções para a geração de uma imagem de customização, é determinado com base, em parte, em informações de região determinada de acordo com o processo de divisão. O processo da FIG. 3 pode ser realizado pelo sistema de processamento de imagem 204. 0036. No bloco 302, são capturadas fotografia(s) de um produto. O produto fotografado talvez visivelmente impresso ou, de outra forma, embelezado com marcação. Em algumas concretizações, o produto a ser fotografado é modelado por uma pessoá ou animal. A(s) fotografia(s) pode(m) ser capturada(s) por uma ou mais câmera(s), tal como a(s) eâmera(s) 102. No bloco 304, uma coleção de fotografias e sistema de processamento, tal como o sistema de processamento de imagem 204 da FIG. 2, recebe a(s) fotografia(s) capturada(s) do produto. No bloco 306, as instruções de geração do recurso de renderízação de imagem de customização são executadas na coleção de fotografias e sistema de processamento. A execução das instruções de geração do recurso de renderízação de imagem de customização produz a geração de um recurso de renderízação de imagem de customização. 0037. No bloco 308, o recurso de renderízação de imagem de customização é enviado para o servidor web. Vários produtos podem ser fotografados individualmente, e um recurso dé renderízação de imagem de customização diferente pode ser criado para cada um dos vários produtos da coleção de fotografias e sistema de processamento, e cada um dos recursos de renderízação de imagem de customização podem ser enviados para o servidor web. 0038. No bloco 310, os recursos de renderízação de imagem de customização são recebidos e armazenados em um servidor web, como o servidor web 112. O servidor web pode armazenar vários recursos de renderízação de imagem de customização. No bloco 312, o servidor web recebe uma especificação de customização do cliente. O cliente pode ter fornecido a especificação através da interação com uma interface gráfica apresentada dentro de uma página web vista em um sistema de usuário. A especificação de customização do usuário pode incluir um projeto definido pelo usuário para impressão no produto customizável, informações de posição de customização especificando onde uma customização específica deve ser localizada, uma cor para uma área de detalhe do produto, tais como a cor de acabamento, uma cor para o produto inteiro e outras informações de especificação de customização. 0039. No bloco 314, são executadas as instruções do recurso de renderízação de imagem de customização específico. O servidor web pode armazenar um recurso de renderízação de imagem de customização para cada produto customizável. O servidor web pode selecionar automaticamente um recurso de renderízação de imagem de customização específico para a execução de suas instruções com base na especificação de customização recebida. Por exemplo, o servidor web pode selecionar um recurso de renderízação de imagem de customização específico, que corresponde a um produto customizável específico erri resposta à determinação de que o cliente escolheu customizar o produto customizável específico. As informações fornecidas pelo usuário, e incluídas na especificação de customização de usuário recebida podem ser usadas para determinar automaticamente entradas para o recurso de renderízação de imagem de customização. Por exemplo, um cliente pode selecionar uma determinada cor de camisa e a cor selecionada, ou uma curva de cor correspondente à cor selecionada, pode ser fornecida como uma entrada para as instruções do recurso de renderização de imagem de customização quando as instruções do recurso de renderização de imagem de customização são executadas. A execução das instruções do recurso de renderização de imagem de customização resulta numa imagem que retrata o produto customizado selecionado pelo clientè, de acordo com as especificações do cliente. 0040. No bloco 316, o servidor web envia o conteúdo da página web para o sistema de usuário que forneceu as especificações de customização, que pode ser o sistema de usuário 120. O conteúdo da página web inclui uma imagem de customização determinada como um resultado da execução de instruções do recurso de renderização de imagem de customização, ou uma versão modificada de tal imagem. No bloco 320, uma página da web que inclui a imagem de customização recebida é exibida no sistema de usuário. 0041. A FIG. 3 ilustra apenas um exemplo de processo que pode ser implementado num sistema de renderização de imagem de customização. Em outras concretizações, diferentes etapas podem ser realizadas, podendo ser o ordenamento das etapas alterado, certas etapas podem não ocorrer, ou etapas adicionais podem ocorrer além das etapas ilustradas na FIG. 3. 0042. A FIG. 4 ilustra um exemplo de processo para a utilização da informação de região que pode ser determinada como um resultado do processo de divisão na visualização de um produto customizável. O processo da FIG. 4 pode ser realizado pelo sistema de processamento de imagem 204. No bloco 402, é recebida uma imagem de entrada de um produto customizável compreendendo marcação. O sistema de processamento de imagem 204 pode modificar a imagem de entrada antes de iniciar o processo de divisão para melhor segmentação. Por exemplo, o sistema de processamento de imagem 204 pode remover informações de luminância da imagem de entrada antes da divisão. 0043. No bloco 404, a imagem de entrada é dividida numa pluralidade de regiões de imagem com base, em parte, em cor e diferenças de cor. A FIG. 5 ilustra um exemplo de processo para divisão de uma imagem de entrada em uma pluralidade de regiões de imagem com base, em parte, em cor e diferenças de cor. 0044. A FIG. 11 ilustra exemplo de informações de região que podem ser determinadas como resultado do processo de divisão. A lista de região 1108 inclui registros de região para cada região determinada. Para cada região, a lista de região 1108 identifica um posição da imagem que tenha sido atribuído à região, ou seja, a identificação do posição 1110, uma cor representativa para a região da imagem, que pode ser uma cor média da região ou a cor do primeiro posição atribuído à região, ou seja, o valor da cor da região 1112, e uma área da região, ou seja, valor da área da região 1114. De acordo com diferentes concretizações, os registros de região podem incluir tipos adicionais ou diferentes de informações, tais como o número de posições incluídos na região que são posições de borda que estão localizados na borda de uma região. A identificação correspondente a uma região específica pode ser determinada com base no posição da entrada que corresponde a uma região específica da lista de região. Por exemplo, a primeira entrada da lista de região 1108 pode corresponder à região identificada por uma identificação de região “1”. 0045. A lista de região 1108 pode ser qualquer uma de uma pluralidade de estruturas de dados que inclui, mas não é limitada a uma lista vinculada, matriz ou um conjunto de listas vinculadas. 0046. A matriz de região vinculada 1102 ilustra um exemplo de fôrma final da matriz de região vinculada, de acordo com uma concretização. Para cada entrada da matriz de região vinculada 1102, o campo de identificação da região pode identificar a região atribuída ao posição correspondente à entrada da matriz de região vinculada e o próximo campo de posição pode identificar um próximo posição da imagem de entrada, que tenha sido atribuído à mesma região que o posição correspondente à entrada da matriz de região vinculada. Por exemplo, o campo de identificação de região 1104 corresponde ao segundo posição da imagem de entrada e o valor contido no campo de identificação de região 1104, “7”, indica que o segundo posição da imagem de entrada foi atribuído à região sete. O próximo campo de posição 1106 também corresponde ao segundo posição da imagem de entrada e o valor contido no próximo campo de posição 1106, “3 ”, indica que o terceiro posição da imagem de entrada também foi atribuído à mesma região que o segundo posição da imagem de entrada. 0047. No bloco 406, os dados que representam pelo menos uma porção específica da marcação na imagem de entrada são identificados com base na divisão. Os dados que representam as porções da marcação podem ser o conjunto de posições da imagem, que estão dentro da porção específica da marcação. Os dados podem ser determinados com base nas informações de região espécíficas, como a matriz de região vinculada 1002 e lista de região 1008. 0048. O sistema de processamento de imagem 204 pode identificar as regiões de imagem específicas que correspondem à porção específica com base nas informações do registro de região contidas na lista de região 1008. Por exemplo, se a marcação é um padrão quadriculado de amarelo e roxo, o sistema de processamento de imagem 204 pode localizar de forma eficiente todas as partes amarelas da marcação, através da identificação de todas as regiões cuja cor da região é semelhante ao amarelo, e, em seguida, identificar os posições que foram atribuídos a essas regiões. O sistema de processamento de imagem 204 pode identificar todas as regiões cujo valor de cor da região é semelhante ao amarelo, calculando um valor de diferença de cor para cada região representada em uma lista de regiões, onde o valor de diferença de cor para a região indica quão diferente a cor representativa da região, conforme indicado na lista de região 1008, é da cor amarela. Cada uma das regiões cujo valor de diferença de cor correspondente for inferior a um valor limiar pode ser identificada como uma região amarela e cada posição pertencente àquela região pode ser definido como amarelo. 0049. Todo o conjunto de posições de imagem pertencentes a uma região específica pode ser eficientemente determinado, observando-se a identificação do posição da primeira posição no campo de identificação de posição correspondente da lista de região 1008, e os posições restantes podem ser determinados examinando os próximos campos de posição de matriz de região vinculada 1002, começando com o próximo campo de posição que corresponde ao posição identificado pela identificação de posição contida na lista de região 1008. Por exemplo, cada um dos posições que pertencem à região sete podem ser determinados observando-se a identificação de posição 1010 na lista de região 1008, cujo valor é “2”. O próximo posição pertencente à região sete pode ser determinado observando-se o próximo campo de posição correspondente ao segundo posição de imagem, o próximo campo de posição 1006, que contém o valor “3”. O próximo posição pertencente à região sete pode ser determinado observando-se o próximo campo de posição correspondente à terceira posição da imagem, o próximo campo de posição 1006, que contém o valor “0”. Numa concretização, um valor tal como “0” pode ser utilizado para indicar que não há mais posições de imagem pertencentes à região. 0050. Os dados que representam pelo menos a porção especifica podem indicar outras informações, tais como a cor da porção específica do padrão de marcação na imagem de entrada. Por exemplo, uma vez que o sistema de processamento de imagem 204 determina a(s) posição(ões) da imagem de entrada, que pertence(m) à porção específica da marcação, o sistema de processamento de imagem 204 pode aceder a imagem de entrada original para determinar a informação de cor para os posições determinados. 0051. No bloco 408, faz-se uso dos dados que representam pelo menos a porção da marcação numa visualização do produto customizável ou um controle de fabricação relacionado com o produto customizável. Fazer-se uso dos dados que representam pelo menos a porção da marcação numa visualização do produto customizável pode compreender determinar um recurso de renderização de imagem de customização, que compreende instruções para a renderização de uma imagem de customização com base nos dados, onde o recurso de renderização de imagem de customização pode ser enviado a um servidor web para uso posterior pelo servidor web. Fazer-se uso dos dados que representam pelo menos a porção da marcação numa visualização do produto customizável pode compreender ainda determinar uma imagem de customização com base nos dados. 0052. Numa concretização, o recurso de renderização de imagem de customização 214 gera uma imagem de customização que exibe um produto customizado como ele parecería quando em uso, com o contorno e formato natural. Por exemplo, a cor e / ou o formato do produto customizado na imagem de customização pode descrever as ondulações ou contornos naturais que ocorrem quando õ produto customizado é usado por um modelo. O sistema de processamento de imagem 204 pode determinar um recurso de renderização de imagem de customização que gera tais imagens de customização com base na análise de uma imagem de entrada, tal como a imagem de entrada representado na FIG. 1. 0053. O sistema de processamento de imagem 204 pode utilizar a informação de região determinada pelo processo de divisão para determinar como a porção específica da imagem de entrada difere em relação à cor ou posição das mesmas porções específicas de uma imagem de referência da amostra, que descreve a mesma marcação. Por exemplo, as linhas de cada quadrado de marcação 102 podem aparecer retas e paralelas entre si na imagem de referência da amostra, enquanto aparecem inclinadas e dissociadas em algumas áreas da imagem de entrada, tais como em áréàs onde o produto customizável é retorcido ou ondulado. A imagem de referência da amostra pode representar a mesma marcação representada na imagem de entrada, exceto uma imagem plana. O sistema de processamento de imagem 204 pode mapear posições na imagem de referência da amostra para os posições na imagem de entrada e comparar a forma como a posição e cor dos dois posições diferem nas duas imagens. O sistema de processamento de imagem 204 pode gerar o recurso de renderização de imagem de customização 214 com base em uma análise de como diferem a imagem de entrada e a imagem de referência da amostra. 0054. O recurso de renderização da imagem de customização 214 pode renderizar a imagem de customização com base em uma imagem de especificação de customização plana que descreve a customização a ser aplicada a um produto customizável. A especificação de customização pode ser uma imagem carregada pelo cliente, criação ou texto que é para ser impresso no produto customizável. O recurso de renderização de imagem de customização 214 pode gerar a imagem de customização, em parte, alterando a imagem de especificação de customização, para descrever as ondulações e os contornos, conforme representado na imagem de entrada. 0055. Numa concretização, o sistema de processamento de imagem 204 determina uma imagem da grade de marcação com base nas informações de região, onde a imagem da grade de marcaçãò identifica as bordas entre as diferentes porções de marcação. Por exemplo, o sistema de processamento de imagem 204 pode determinar uma imagem da grade de marcação com base, em parte, nas informações de região identificada, dividindo uma imagem de entrada. A FIG. 12 mostra uma imagem da grade de marcação que pode ser determinada com base, em parte, na informação da região identificada, dividindo a imagem de entrada representada na A FIG. 1. O sistema de processamento de imagem 204 pode determinar o recurso de renderização da imagem de customização 214 com base, em parte, na imagem da grade de marcação. 0056. Exemplo de processos para a utilização de uma imagem da grade de marcação, para determinar um recurso de renderização de imagem de customização pode ainda ser descritos nos pedidos de patentes US 13/736.844, 13/342.103, 12/790.711 e nas patentes US 8.174.521, 8.175.931, 8.090.461, embora outros processos possam ser usados em diferentes concretizações. O conteúdo de todos os pedidos de patentes e patentes citadas neste parágrafo é aqui incorporado em sua totalidade, para referência, para todos os fins, como se estivessem completamente apresentados aqui. 0057. As linhas da grade de marcação podem corresponder à forma das bordas entre os quadrados na marcação da imagem segmentada a cores. As formas das linhas da grade de marcação indicam a geometria do produto nas áreas de criação. Por exemplo, uma linha inclinada pode indicar que o produto é inclinado no posição correspondente. Essas informações podem indicar como um projeto de customização parecería quando impresso na região de criação de um produto customizado. Numa concretização, onde pode haver várias áreas de criação, informações de geometria do projeto podem ser determinadas para cada uma das áreas de criação. Embora a imagem da grade de marcação da FIG. 12 seja ilustrada como linhas aproximadamente paralelas, em outras concretizações, a imagem da grade de marcação pode ser quaisquer de uma variedade de diferentes formas e / ou padrões determinados com base na marcação. Numa concretização, uma grade determinada com base numa imagem de desenho plano é mapeada para uma grade determinada com base na imagem da grade de marcação, para determinar as instruções para comparar como vários posições das imagens diferem em posição e / ou cor nas duas imagens. 0058. A imagem da grade de marcação da FIG. 12 pode ser anàlisada para determinar um recurso de renderização de imagem de customização. Ó recurso de renderização de imagem de customização pode compreender instruções para renderizar uma imagem que descreve um produto customizado de acordo com especificações do usuário. O usuário pode fornecer uma imagem de usuário para ser impressa sobre um produto e o recurso de renderização de imagem de customização pode descrever como o produto ficaria com a imagem impressa sobre o produto. A imagem de customização gerada pelo recurso de renderização de imagem de customização pode apresentar a mesma geometria e contornos do exemplo de imagem de entrada. Por exemplo, a imagem de customização pode descrever a camisa como sendo dobrada no mesmo posição, conforme descrito no exemplo de imagem de entrada. 0059. A FIG. 4 ilustra apenas um exemplo de processo de identificação e utilização das informações de região. Em outras concretizações, diferentes etapas podem ser realizadas, podendo ser alterado o ordenamento das etapas, certas etapas podem não ocorrer ou etapas adicionais podem ocorrer além das etapas ilustradas na FIG. 4. 0060. Em outras concretizações, a informação de determinada região pode ser utilizada no controle de fabricação de um produto customizado. “Fabricação”, conforme aqui utilizado, pode referir-se à impressão de uma customização específica em um produto pré-fabricado. Por exemplo, a informação de região pode ser utilizada para determinar a posição de uma porção de customização específica no produto customizado e assegurar què a cor e posição da porção de customização específica estão dentro de um intervalo esperado de cores e posições. 0061. Como outro exemplo, um fornecedor de um produto customizado pode fornecer especificações especificadas pelo cliente para um produto customizado para um fabricante que faz o produto customizado. Ao introduzir um novo produto para a impressão customizada, õ fabricante pode especificar um traçado de impressão de seus produtos, onde o traçado de impressão especifica os posições do produto sobre o qual as criações podem ser impressas. Por exemplo, o fabricante de uma capa de telefone celular pode especificar que uma determinada região da capa de telefone celular, que corresponde ao orifício da câmera da capa do telefone celular, é uma região em que não pode ser impressa uma criação customizada. O traçado de impressão pode especificar que na região abaixo do orifício da câmera pode ser impressa uma criação customizada. 0062. Em resposta ao recebimento do traçado de impressão do produto, a partir do fabricante, o fornecedor pode enviar uma imagem de marcação ao fabricante, para impressão no produto customizado. O fabricante pode imprimir a imagem de marcação no produto e enviar o produto customizado para o fornecedor. O fornecedor pode examinar visualmente a impressão do produto customizado para assegurar-se de que a impressão do desenho customizado, em relação às características do produto, é visualmente atraente. O fornecedor pode fazer ajustes no traçado de impressão com base no exame. Por exemplo, um fabricante pode ter deixado de especificar que um desenho customizado não pode ser impresso em uma posição da capa de telefone celular que corresponde ao orifício da câmera. Ao receber o produto customizado impresso, o fornecedor pode determinar que a colocação do desenho sobre a capa do telefone celular não é visualmente atraente, uma vez que parte do desenho está incompleto, uma vez que sua posição se sobrepõe ao orifício da câmera. O fornecedor pode modificar o tamanho da região do desenho, para não cobrir a região do orifício da câmera, ou pode mudar a região do desenho para um posição diferente do telefone. Numa concretização, o fornecedor pode propor um traçado de impressão alternativo ao fabricante, para análise e aprovação pelo fabricante.
0063. 2.3 EXEMPLO DE PROCESSO DE DIVISÃO DA IMAGEM DE MARCAÇÃO 0064. A FIG. 5 ilustra um exemplo de processo de divisão de imagem. O processo da FIG. 5 pode ser realizado por um sistema de processamento de imagem 204. No bloco 502, um valor de diferença de cor é atribuído a cada posição de uma pluralidade de posições no interior da imagem de entrada. Em algumas concretizações, cada posição é um pixel separado da imagem de entrada è a cada pixel da imagem de entrada é atribuído um valor de cor diferente. Urri valor de diferença de cor indica o quão diferente é a cor do posição correspondente em relação a cores de posições vizinhos. 0065. Numa concretização, o valor de diferença de cor de um posição específico é determinado com base numa comparação da cor do posição específico, e a cor de posições que estão a duas, quatro e seis posições de distância. Um valor de diferença de cor pode ser calculado para cada uma das distâncias e os três valores de cor, cada um associado a uma distância diferente, podem ter a média calculada para determinar o valor final de diferença de cor. A média dos valores de diferença de cor pode compreender valores ponderados de diferença de cor, associados com a maior distância mais fortemente do que os valores de diferença de cor associados com a menor distância. Um valor de diferença de cor pode ser calculado para uma distância determinando-se o quão diferente uma média das cores dos diferentes posições da amostra daquela distância está da cor do pixel central. O valor da diferença de cor de dois posições pode ser obtido calculando-se um produto de pontos da diferença entre as duas cores. 0066. A FIG. 6 ilustra um exemplo de diagrama de posições cujas cores podem ser analisadas para determinar um valor de diferença de cor de uma posição central. Numa concretização, um valor de diferença de cor da posição central 602 é calculado usando a Equação 1: Equação 1 0067. Em outras concretizações, a determinação dos valores de diferença de cor pode compreender a amostragem de mais ou menos posições, posições de amostragem em distâncias diferentes e / ou a atribuição de pesos diferentes para os valores de diferença de cor determinados. 0068. No bioco 504, os valores de diferença de cor são suavizados para reduzir a variação entre os valores de diferença de cor. Numa concretização, apenas os valores relativamente altos e relativamente baixos de diferença de cor são modificados para serem, respectivamente, inferiores e superiores. Por exemplo, apenas valores de diferença de cor que estão entre os 10 por cento mais altos dentre os valores de diferença de cor ou entre os 10 por cento mais baixos dentre os valores de diferença de cor podem ser modificados. Numa concretização, uma imagem monocromática é criada com base na imagem de entrada, em que a cor de cada pixel representa o valor de diferença de cor do pixel. Suavizar valores de diferença de cor pode incluir a aplicação de um filtro Gaussiano ao valor de diferença de cor da imagem monocromática. Suavizar valores de diferença de cor antes da atribuição da região pode evitar o excesso de segmentação da imagem de entrada. 0069. No bloco 506, os posições são ordenados com base em seus valores de diferença de cor associados. O ordenamento pode incluir agrupar posições de imagem em diferentes grupos com base em seus valores de diferença de cor associados. A FIG. 8 ilustra um exemplo de processo para ordenar posições de imagem com base em valores de diferença de cor. No bloco 508, as posições são atribuídos a regiões, e a atribuição de posições a regiões ocorre com base, pelo menos em parte, na ordem de classificação. A FIG. 10 ilustra um exemplo de processo para a atribuição de posições de imagem a regiões. 0070. O sistema de processamento de imagem 204 pode analisar e dividir uma porção de uma imagem de entrada em regiões, ou pode analisar e dividir uma imagem de entrada inteira em uma pluralidade de regiões de imagem. Numa concretização em que o sistema de processamento de imagem 204 analisa e divide uma porção de uma imagem de entrada em regiões concretização, os valores de diferença de cor e as atribuições de região somente podem ser determinados para os posições no interior da porção da região da imagem de entrada. 0071. A FIG. 5 ilustra apenas um exemplo de processo de divisão de imagem. Em outras concretizações, diferentes etapas podem ser realizadas, podendo ser o ordenamento das etapas alterado, certas etapas podem não ocorrer ou podem ocorrer etapas adicionais além das etapas ilustradas na FIG. 5. 0072. A FIG. 7 ilustra exemplo de dados de diferença de cor, que podem ser usados para classificar os posições com base nos seus valores de diferença de cor associados e um exemplo de lista de classificação e matriz de diferença de cor que podem ser utilizadas, que podem resultar do processo de ordenação. A lista de classificação 712 e a matriz de região vinculada 706 podem ser preenchidas com base na matriz de diferença de cor 702. 0073. A matriz de diferença de cor 702 identifica os valores de diferença de cor determinados para cada posição na imagem de entrada. Cada entrada de matriz de diferença de cor 702 corresponde a um posição específico da imagem de entrada, e o valor na entrada identifica o valor de diferença de cor da posição da imagem de entrada correspondente. 0074. A lista de classificação 712 pode incluir uma entrada para cada magnitude de valor de diferença de cor incluída na matriz de diferença de cor 702. Por exemplo, se os valores de diferença de cor na matriz de diferença de cor 702 estiverem na faixa de i a 5, a lista de classificação 712 pode incluir cinco entradas. De acordo com uma concretização, após a lista de classificação 712 estiver totalmente preenchida, cada entrada da lista de classificação 712 é associada a uma magnitude específica e inclui um valor que ou (1) identifica uma posição de imagem què está associada ao valor de diferença de cor específico e / ou vinculada à entrada da matriz de região que corresponde a um posição da imagem que está associada ao valor de diferença de cor específico ou (2) indica que nenhum posição da imagem de entrada tem um valor de diferença de cor da magnitude específica (isto é, um valor “0”). Por exemplo, a entrada da lista de classificação 714, que é a primeira entrada da lista de classificação 712, pode estar associada ao valor de diferença de cor magnitude Ί”. A entrada da lista de classificação 714 contém o valor “12”, que identifica a décima segunda posição da matriz de região vinculada 706, a entrada da matriz de região vinculada 712, bem como a décima segunda posição da imagem de entrada. A décima segunda posição da imagem de entrada está associada ao valor de diferença de cor 704 “1”, conforme indicado pelo valor de diferença de cor 704 de valor “1”. 0075. A matriz de região vinculada 706 pode conter uma entrada para cada posição da imagem de entrada, onde cada entrada corresponde a uma determinada posição. Cada entrada pode incluir um campo de identificação de região e um próximo campo de posição. Depois que os campos de identificação de região da matriz dè região vinculada 706 estão totalmente preenchidos, cada campo de identificação de região pode conter um valor que identifica a região a que estão atribuídas as posições correspondentes. Por exemplo, o campo de identificação de região 708 corresponde à segunda posição da imagem de entrada e o valor “7”contido no campo de identificação de região 708 indica que a segunda posição da imagem de entrada está atribuída à região sete. Os campos de identificação de região da matriz de região vinculada 706 podem permanecer vazios ou podem ser iniciados por zero ou outro valor, até que ocorra o processo de atribuição de região. 0076. Depois que os próximos campos de posição de matriz de região vinculada 706 estejam totalmente preenchidos, de acordo com o processo de classificação, o valor em cada próximo campo de posição específico ou (1) identifica outra posição de imagem que está associada com o mesmo valor de diferença de cor, como a posição da imagem de entrada associada à próxima posição específica e / ou de outra entrada de matriz de região vinculada que corresponde à outra posição que está associada ao mesmo valor de diferença de cor que a posição da imagem de entrada associada ao próximo campo de posição específico ou (2) indica que não existem mais entradas da matriz de região vinculadas que correspondem a posições de imagem com o mesmo valor diferença de cor que a posição da imagem de entrada a que corresponde o próximo campo de posição específico. 0077. Numa concretização, o sistema de processamento de imagem 204 mantém mapeamentos que identificam, para cada posição de imagem, a entrada da matriz de região vinculada e entrada da matriz de diferença de cor que corresponde à posição da imagem de entrada. Numa outra concretização, o ordenamento dos dados na matriz de região vinculada 706 e matriz de diferença de cor 702 correspondem ao ordenamento das posições de imagem, de tal modo que uma única identificação de posição identifica uma entrada específica da matriz de diferença de cor 702, uma entrada específica na matriz de região vinculada 706 e uma posição de imagem específica. Por exemplo, o valor “12” na entrada da lista de classificação 714 identifica tanto a décima segunda entrada da matriz de diferença de cor 702 quanto a décima segunda entrada da matriz de região vinculada 706, que ambas correspondem à décima segunda posição na imagem de entrada. O valor “12” na entrada da lista de classificação 714 também identifica a décima segunda posição na imagem de entrada. 0078. A lista de classificação 712 e a matriz de região vinculada 706 podem ser utilizadas durante o processo de atribuição de região para localizar de forma eficiente todas as posições de imagem que estão associadas a um determinado válor de diferença de cor e / ou suas entradas da matriz de região vinculada correspondentes. As várias entradas da matriz de região vinculada que correspondem à posições de imagem com os mesmos valores de diferença de cor podem estar ligadas através de próximos campos de posição da matriz de região vinculada. Cada posição associada a um valor de diferença de cor específico pode ser eficientemente identificada primeiro pesquisando a entrada da lista de classificação correspondente ao valor de diferença de cor específico na lista de classificação 712, que identifica a posição da imagem correspondente ao valor de diferença de cor. As demais posições da imagem associadas ao valor de diferença de cor específico podem ser identificadas seguindo-se os próximos campos de posição da matriz de região vinculada 706, cada um dos quais identifica a próxima posição da imagem associada ao valor de diferença de cor específico ou a próxima posição da matriz de região vinculada correspondente à próxima posição de imagem associada ao valor de diferença de cor específico. 0079. Por exemplo, cada posição da imagem de entrada que corresponde ao valor “1" de diferença de cor pode ser identificada acessando-se a entrada da lista de classificação correspondente ao valor “1”, que é a primeira entrada na lista de classificação 712, entrada da lista de classificação 714. A entrada da lista de classificação 714 identifica a primeira posição da imagem que corresponde ao valor “1" de diferença de cor. Uma vez que a entrada da lista de classificação 714 contém um valor “10”, o sistema de processamento de imagem 204 pode determinar que a décima segunda posição da imagem de entrada está associada a um valor “1” de diferença de cor. A próxima posição da imagem de entrada associada com um valor “1” de diferença de cor pode ser determinada acessando-se o próximo campo de posição 710, que é o “próximo campo de posição” que corresponde à décima segunda posição na matriz de região vinculada 706. O próximo campo de posição 710 pode conter um valor, tal como “0”, que indica que não existem outros posições associados ao valor “1” de diferença de cor. Numa outra concretização, ò próximo campo de posição que corresponde à décima segunda posição pode identificar outra posição da imagem associada ao valor “1” de diferença de cor ou outra entrada da matriz de região vinculada que corresponde a uma posição de imagem associada ao valor “1 ” de diferença de cor. 0080. A FIG. 8 ilustra um exemplo de processo para classificar posições de imagem com base em valores de diferença de cor. O processo compreende preencher uma lista de classificação e matriz de região vinculada com base numa matriz de diferença de cor. O processo pode ser realizado pelo sistema de processamento de imagem 204. O sistema de processamento de imagem 204 pode percorrer os valores de uma matriz de diferença de cor, cada um dos quais estão associados a uma posição da imagem correspondente e armazenar um identificador de posição que identifica a posição de imagem correspondente tanto na lista de classificação quanto na matriz de região vinculada. A ordenação pode compreender o agrupamento de posições de imagem com os mesmos valores de diferença de cor, por exemplo, adicionando o identificador de posição de uma posição específica a uma lista de identificadores de posição que identificam outras posições do mesmo valor de diferença de cor. 0081. A FIG. 9 ilustra o conteúdo de uma lista de classificação parcialmente preenchida e matriz de região vinculada que pode ser preenchida com base nos valores de diferença de cor armazenados numa matriz de diferença de cor 702, de acordo com o processo ilustrado pela FIG. 8. As listas de classificação 902A, 902B e matrizes de região vinculadas 906A, 906B ilustram diferentes situações de uma mesma lista de classificação e matriz de região vinculada, que são preenchidas com base na matriz de diferença de cor 702 e de acordo com o processo da FIG. 8. A lista de classificação 902A e a matriz de região vinculada 906A ilustram a lista de classificação e a matriz de região vinculada após uma única iteração do processo ilustrado na FIG. 7. A lista de classificação 902B e a matriz de região vinculada 906B ilustram a lista de classificação e a matriz de região vinculada após duas iterações do processo ilustrado na FIG. 8. Antes de iniciar o processo da FIG. 8, a lista de classificação 902A e a matriz de região vinculada podem apenas conter seus valores iniciais. Por exemplo, a lista de classificação 902A e a matriz de região vinculada 906A podem não ter contido valores antes de iniciar o processo da FIG. 4 ou podem ter contido todos os valores “0”. 0082. No bloco 802, o sistema de processamento de imagem 204 determina o valor de diferença de corda posição atual. No início do processo, a posição atual pode ser a primeira posição da imagem de entrada. O valor de diferença de cor da posição atual pode ser determinado acessando-se o valor da entrada da matriz de diferença de cor que corresponde à posição atual. Em algumas concretizações, os valores de diferença de cor da matriz de diferença de cor são ordenados de acordo com a ordem das posições às quais correspondem os valores de diferença de cor. Por exemplo, o valor de diferença de cor associado à primeira posição da imagem pode ser o valor na primeira entrada da matriz de diferença de cor. 0083. Em seguida, no bloco 804, o sistema de processamento de imagem 204 determina se a entrada da lista de classificação que corresponde ao valor de diferença de cor determinado já contém uma identificação de posição. Determinar se a entrada da lista de classificação que corresponde ao valor de diferença de cor determinado contém uma identificação de posição pode incluir determinar se a entrada da lista de classificação contém um valor diferente do valor inicial. Por exemplo, a lista de classificação Θ02Α pode ser inicializada para conter valores “0” e determinar se a entrada da lista de classificação que corresponde ao valor da diferença de cor determinado contém uma identificação de posição que pode incluir determinar se a entrada da lista de classificação contém um valor diferente de zero. 0084. Se o sistema de processamento de imagem 204 determina que a entrada da lista de classificação que corresponde ao valor de diferença de cor determinado não contém uma identificação de posição, o processo prossegue para o bloco 806 e a identificação da posição da posição atual é armazenada na entrada da lista de classificação que corresponde ao valor de diferença de cor determinado. A lista de classificação pode não conter uma identificação da posição se nenhuma posição com o mesmo valor de diferença de cor igual à posição atual tiver sido anteriormente considerada durante o processo de preenchimento da lista de classificação e da matriz de região vinculada. Por exemplo, durante a primeira iteração do processo, o sistema de processamento de imagem 204 pode determinar o valor de diferença de cor para a primeira posição da imagem localizando o primeiro valor na matriz de diferença de cor 502, que é “4”. Deste modo, a quarta entrada na lista de classificação 902A, entrada da lista de classificação 904A pode ser atualizada para armazenar o valor “1”, que é a identificação de posição da primeira posição da imagem. A entrada da lista de classificação 904A pode anteriormente ter contido “0” ou algum outro valor de inicial. 0085. No bloco 812, o sistema de processamento de imagem 204 determina se a posição atual é a última posição da imagem de entrada. Sé a posição atual não for a última posição da imagem de entrada, o processo prossegue para o bloco 814 e a posição atual é incrementada para ser a próxima posição da imagem de entrada. Por exemplo, depois que a primeira iteração do processo está completa, a posição atual pode ser incrementada para ser a segunda posição da imagem de entrada e o processo da FIG. 8 pode repetir com a posição atual da imagem de entrada sendo a segunda posição da imagem de entrada. 0086. No bloco 802, o valor de diferença de cor da nova posição atual pode ser determinado para ser “4", localizando-se o valor de diferença de cor 716 na matriz de diferença de cor 702. No bloco 804, o processo determina se a entrada da lista de classificação correspondente ao valor de diferença de cor determinado já contém uma identificação de posição. A entrada da lista de classificação que corresponde ao valor “4”, entrada da lista de classificação 904A contém uma identificação de posição “1”. Assim, o processo passa ao bloco 808 porque a entrada da lista de classificação que corresponde ao valor de diferença de cor determinado já contém uma identificação de posição. 0087. No bloco 808, a identificação da posição já armazenada na entrada da lista de classificação é movida para o próximo campo de posição que corresponde à posição atual na lista de regiões vinculadas. Por exemplo, o valor “1”, que foi armazenado na entrada da lista de classificação 904A é movido para o próximo campo da posição 908, que é o próximo campo de posição que corresponde à segunda posição da imagem na matriz de região vinculada 906B. No bloco 810, a identificação de posição da posição atual é armazenada na entrada da lista de classificação que corresponde ao valor de diferença de cor determinado na matriz da lista de classificação. Por exemplo, o valor “2”, que é a identificação de posição da segunda posição da imagem de entrada é armazenado na entrada da lista de classificação que corresponde ao valor de diferença de cor “4”, entrada da lista de classificação 90413. 0088. No bloco 812, o sistema de processamento de imagem 204 determina se a posição atual é a última posição da imagem de entrada. Se a posição atual for a última posição da imagem de entrada, o processo termina no bloco 816. Se a posição atual não for a última posição da imagem de entrada, o processo prossegue para o bloco 814 e a posição atual é incrementada para a próxima posição da imagem de entrada. O processo se repete com cada posição até que não haja mais posições de imagem para analisar. Quando o processo da FIG. 8 estiver concluído, a lista de classificação e os próximos campos de posição da matriz de região vinculada podem ser totalmente preenchidos com identificações de posição para cada posição da imagem de entrada, 0089. A matriz de região vinculada e a lista de classificação podem ser utilizadas durante o processo de atribuição de região para deslocar informações para cada posição, onde as posições são consideradas de acordo com uma ordem baseada em valores de diferença de cor das posições. Numa concretização, posições com valores baixos de diferença de cor, ou seja, posições que são muito semelhantes em cor em relação a suas posições vizinhas são atribuídas regiões antes de posições com valores de diferença de cor elevados. Por exemplo, para uma imagem cujos valores de diferença cor determinados variam de 1 a 5, o sistema de processamento de imagem 204 pode atribuir primeiro regiões para cada posição cujo valor de diferença de cor é um, seguido de atribuições de região para cada posição da imagem cujo valor de diferença de cor é dois, e assim por diante, até que a todas as posições tenham sido atribuídas regiões. 0090. De acordo com uma concretização, a uma posição de imagem é mais provável· que seja atribuída uma nova região, à qual não tenham sido atribuídas outras posições de imagem, caso tenha sido atribuída região a relativamente poucas posições de imagem. Por exemplo, se já tenham sido atribuídas regiões a uma ou mais posições de imagem próximas à posição da imagem de entrada em consideração, a região da posição da imagem de entrada em análise é selecionada dentre uma das regiões vizinhas. Se a posição da imagem de entrada em consideração está próxima apenas de posições de imagem a que não tenha sido atribuída região, à posição da imagem de entrada pode ser atribuída uma nova região de imagem, à qual nenhuma posição de imagem tenha sido atribuída. De acordo com esse processo, as posições da imagem de entrada que são consideradas para atribuição de região podem primeiro ter maior probabilidade de estar no centro das regiões determinadas ou outras posições não fronteiriças das regiões. Assim, através da atribuição de região a posições com base nos seus valores de diferença de cor, posições com baixos valores de diferença de cor (isto é, posições que são muito semelhantes às suas posições circundantes) podem ser mais prováveis estar no centro das regiões determinadas ou em outras posições não fronteiriças das regiões. Essa abordagem de divisão da imagem pode fazer com que a imagem dividida resultante seja dividida erri regiões que são mais uniformemente coloridas que regiões determinadas de acordo com abordagens alternativas. 0091. A FIG. 8 ilustra apenas um exemplo de processo para classificar posições de imagem com base em valores de diferença de cor. Em outras concretizações, diferentes etapas podem ser realizadas, o ordenamento das etapas pode ser alterado, certas etapas podem não ocorrer ou etapas adicionais podem ocorrer, além das etapas ilustradas na FIG. 8. 0092. A'FIG. 10 ilustra um exemplo de processo para atribuição de posições de imagem a regiões. O processo pode ser realizado pelo sistema de processamento de imagem 204. No bloco 1002, a posição da imagem de entrada é selecionada como posição atual. De acordo com uma concretização, determinar a posição atual compreende acessar-se ou uma entrada da lista de classificação ou entrada de matriz de região vinculada para determinar a primeiro ou a próxima posição de imagem. Durante a primeira iteração do processo da FIG. 10, a primeira posição atual pode ser determinada através do acesso da entrada da lista de classificação que corresponde à menor magnitude do valor de diferença de cor de todos os valores de diferença de cor encontrados. O valor contido na entrada da lista de classificação pode identificar uma posição de imagem que possui o menor valor de diferença de cor da imagem de entrada. Por exemplo, uma primeira posição atual pode ser determinada através do acesso à entrada da lista de classificação 514 na lista de classificação 512. Com base na identificação da posição “12” contida na entrada da lista de classificação 514, o sistema de processamento de imagem 204 pode determinar que a décima segunda posição da imagem de entrada é a primeira posição atual. 0093. No bloco 1004, é identificado o conjunto de regiões que está próxima à posição atual. O conjunto de regiões que está próxima à posição atual inclui todas as regiões a que são atribuídas uma ou mais posições que estão próximas à posição atual. Por exemplo, se uma posição está próxima de quatro outras posições, a uma das quais tenha sido atribuída a região “1” e duas das quais tenha sido atribuída a região “2”, o conjunto de regiões que está próxima à posição atual inclui “1”e “2”. As posições específicas qüe são considerados posições vizinhas podem variar de acordo com diferentes concretizações. Por exemplo, as posições vizinhas podem incluir todas as quatro posições diretamente acima, abaixo, à esquerda e à direita da posição atual. Numa outra concretização, as posições vizinhas podem incluir, adicionalmente, as quatro posições diagonalmente adjacentes às posições atuais. 0094. Em seguida, no bloco 1006, o sistema de processamento de imagem 204 determina se o número de diferentes regiões vizinhas é igual a zero. Se assim for, o sistema de processamento de imagem 204 executa a ação do bloco de 1008 e atribui a posição atual a uma nova região, à qual não são atribuídas outras posições. Se o sistema de processamento de imagem 204 determina que o número de diferentes regiões vizinhas não é igual a zero, no bloco 1010 o sistema de processamento de imagem 204 determina se o número de diferentes regiões vizinhas é igual a um. Se assim for, no bloco 1012 o sistema de processamento de imagem 204 atribui a posição atual à única região vizinha. 0095. Se o sistema de processamento de imagem 204 determina que o número de diferentes regiões vizinhas não é igual a zero ou um, o sistema de processamento dé imagem 204 determina, no bloco 1014, se o número de diferentes regiões vizinhas é igual a dois. Se assim for, no bloco 1016, o sistema de processamento de imagem 204 determina se as duas regiões vizinhas são semelhantes o suficiente para serem fundidas. Determinar se duas regiões vizinhas são semelhantes o suficiente para serem fundidas pode compreender comparar uma cor representativa de uma região à cor representativa da outra região. 0096. De acordo com uma concretização, duas cores são suficientemente semelhantes para serem fundidas, se o produto escalar de sua diferença for inferior a um valor limiar de diferença específico. Por exemplo, se as cores representativas das duas regiões são (A, B, C) e (X, Y, Z), as duas regiões podem ser fundidas se a Expressão 1 for verdadeira: Expressão 1 ({A-X),(B-Y),(C-Z))-((A-X),(B-Y),(C-Z)) < Valor Limiar 0097. Em algumas concretizações, a cor da imagem é representada em três dimensões. Por exemplo, a cor pode ser expressa usando o modelo RGB, compreendendo um valor de cor tridimensional. Em outras concretizações, as cores da imagem podem ser representadas num número diferente de dimensões. Por exemplo, a cor pode ser expressa usando o modelo de cor CMYK, de quatro dimensões. Assim, os processos aqui descritos não precisam ser limitados a imagens cujas cores são expressas numa dimensionalidade específica. 0098. De acordo com várias concretizações, a cor representativa pode ser a cor média da posição atribuída às regiões até o momento, ou a cor da primeira posição designada para a região. A cor representativa de uma região pode ser determinada através do acesso a um registo de região da região que é atualizada em resposta a cada adição de uma nova posição para a região. 0099. Se o sistema de processamento de imagem 204 determina que as duas regiões são suficientemente semelhantes para serem tendidas, no bloco 1022 o sistema de processamento de imagem 204 funde uma região das duas regiões na outra região das duas regiões. Numa concretização, a região que foi descoberta depois das duas é incorporada pela região que foi descoberta antes das duas. 00100. Numa concretização, a atribuição de uma posição a uma região compreende o armazenamento de um valor que identifica a região em uma enfiada de uma lista de região que corresponde à posição. A primeira posição que é atribuída a uma região pode ser atribuída a uma região com uma identificação de região “1”. Da próxima vez qüe uma posição é para ser atribuída a uma nova região a que não tenham sido previamente atribuídas quaisquer posições, a identificação de região “2” pode ser selecionada como a identificação de região da nova região. Assim, cada região recentemente atribuída pode ser associada a um valor numérico maior do que as regiões que já tenham sido atribuídas a uma ou mais posições. De acordo com esta abordagem, a região mais recente de duas regiões pode ser identificada através da comparação das identificações de região das duas regiões. 00101. Numa concretização em que a região que foi descoberta depois das duas está sempre na região que foi descoberta antes das duas, uma região específica pode ser selecionada como a região que mantém sua identificação de região após a fusão com base na comparação dos valores de identificação de região que identifica as duas regiões a serem fundidas. A região com a identificação de região do menor valor numérico pode ser selecionada como a região que mantém a sua identificação de região. A outra região pode ser “fundida na” região selecionada por todas as instâncias da identificação de região na lista de região que é substituída pela identificação de região que identifica a região selecionada. 00102. Por exemplo, se duas regiões estão sendo fundidas e uma primeira identificação de região está associada a uma identificação de região “10” e a outra região está associada a uma identificação de região “14”, a região correspondente à identificação da região “14” é fundida na região correspondente à identificação de região “10”. Gada ocorrência do valor “14” na lista de região pode ser substituída pelo valor “10”. 00103. Em outras concretizações, a cada nova região um número de valor maior pode ser atribuído e a região com a identificação de região mais alta pode ser selecionada como a região a que a outra região deve ser incorporada. 00104. Numa concretização, em resposta à determinação para fundir a região de uma posição vizinha à região da outra posição vizinha, a posição atual é atribuída à região que é selecionada para ser fundida pela outra região (“a região selecionada”). Numa concretização em que a atribuição de uma posição a uma região compreende armazenar um valor que identifica a região em uma entrada de uma lista de regiões que corresponde à posição, um valor que identifica a região escolhida é armazenado na entrada correspondente à posição atual. Numa concretização, todos os outros valores que identificam a região não selecionada na . lista de região são imediátamente substituídos pelo valor que identifica a região selecionada, em resposta à determinação de fundir as duas regiões. “Imediatamente”, neste contexto, indica que nenhum outro valor é considerado para atribuição a região até que os valores sejam atualizados. 00105. Numa outra concretização, apenas â entrada que corresponde à posição atual é atualizada imediatamente, em resposta à determinação. Uma indicação de quais as regiões que foram fundidas em outras regiões pode ser armazenada, e as entradas restantes na lista de regiões que contêm as identificações de região que identificam a região não selecionada são atualizadas para incluir a identificação de região que identifica a região selecionada depois que a cada posição da imagem tenha sido atribuída uma identificação de região. 00106. Numa concretização onde a região com o valor de identificação de região mais alto consistentemente adota a identificação de região da região com o valor de identificação de região mais baixo, ou onde o contrário é verdadeiro de forma consistente, a atualização de identificações de região de regiões fundidas pode ser completada em um único deslocamento da lista de que armazena identificações de região para cada posição. 00107. No bloco 1024, depois que as duas regiões são fundidas, a posição atual é atribuído à região na qual a outra região foi fundida.: 00108. Se o sistema de processamento de imagem 204 determina que as duas regiões não são semelhantes o suficiente para serem fundidas, no bloco 1018 o sistema de processamento de imagem 204 atribui a posição atual à região de cor mais semelhante em relação à posição atual, com base em comparações de cores da posição atual e as cores representativas das regiões vizinhas. Numa concretização, são calculados dois valores de diferença de cor, sendo um valor de diferença de cor relativo à cor da posição atual e à cor representativa de uma região, e sendo 0 outro valor de diferença de cor relativo à cor da posição atual e à cor representativa da outra região. Um valor de diferença de cor relativo a duas cores pode ser determinado através do cálculo do produto escalar da diferença entre as duas cores. A região de onde a posição atual é a menos diferente em termos de cor pode ser identificada como a região selecionada. 00109. O sistema de processamento de imagem 204 pode passar para o bloco 1020 se o sistema de processamento de imagem 204 determina que o número de regiões vizinhas não é igual a 0, 1 ou 2. Neste caso, a posição atual está próxima de pelo menos três regiões diferentes. No bloco 1020, o sistema de processamento de imagem 204 atribui a posição atual à região do conjunto de regiões vizinhas, cuja cor representativa é mais semelhante, em cor, à posição atual. Essa região pode ser identificada através do cálculo de um valor de diferença de cor de cada uma das três regiões, onde o valor de divergência de uma região indica o quão diferente a cor representativa da região é da cor da posição atual. A região com o menor valor de diferença de cor pode ser selecionada como a região para atribuição, à qual a posição atual deve ser atribuída. 00110. Depois que uma região tenha sido atribuída à posição atual, no bloco 1026, o sistema de processamento de imagem 204 atualiza os registros de região da região atribuída à posição atual. Os registos de região mantidos para uma região podem identificar a primeira cor atribuída à região, a média das cores atribuídas à região e / ou a área da região. ooin. No bloco 1028, se houver mais posições a considerar, a posição atual pode ser incrementada para ser a próxima posição de classificação. A próxima posição ordenada pode ser identificada, pelo menos em parte, através do acessar do próximo campo de posição que corresponde à posição atual. Por exemplo, se a posição atual for a décima segunda posição da imagem de entrada, q próximo campo dé posição que corresponde à décima segunda posição da imagem de entrada pode identificar a próxima posição de classificação. Se a todas as outras posições do mesmo valor de diferença de cor como a posição atual da imagem de entrada já tiver sido atribuída uma região, o próximo campo de posição pode conter um valor de inicialização como 0. Neste caso, a próxima posição ordenada pode ser determinada através do acesso à entrada da lista de classificação que corresponde ao próximo valor de diferença de cor de maior magnitude. Por exemplo, a entrada da lista de classificação 718 corresponde ao valor diferença de cor de magnitude “2” e contém o valor “7”. Assim, a próxima posição de classificação pode ser a sétima posição da imagem de entrada. Por exemplo, se a posição atual tem um valor de diferença de cor “1”, a próxima posição pode ser determinada acessando-se a entrada da lista de classificação que corresponde a um valor de diferença de cor “2”. Se não houver mais entradas na lista de classificação que não foram consideradas, não há mais posições a considerar, e õ processo da FIG. 10 pode terminar. 00112. A FIQ. 10 ilustra apenas um exemplo de processo para a atribuição de posições de imagem á regiões. Em outras concretizações, diferentes etapas podem ser realizadas, o ordenamento das etapas pode ser alterado, podem não ocorrer certas etapas ou etapas adicionais podem ocorrer, além das etapas ilustradas na FIG. 10. 00113. Numa concretização, após a conclusão do processo de atribuição de região, pelo menos algumas das identificações de posição contidas nos próximos campos de posições de matriz de região vinculada 706 são substituídas por identificações de posição diferentes. Antes da substituição, a identificação de posição armazenada em um próximo campo de posição, que corresponde a uma posição de imagem específica, pode identificar outra posição de imagem ou entrada de matriz de região vinculada, que corresponde a outra posição de imagem, em que a outra posição de imagem está associada ao mesmo valor de diferença de cor que a posição específica. Após a substituição, a identificação da posição armazenada em um campo de posição próximo, que corresponde a uma posição de imagem específica, podé identificar a posição de imagem ou outra entrada da matriz de região vinculada, que corresponde a outra posição de imagem, em que a outra posição de imagem é atribuído à mesma região da posição específica. Isto é, após a substituição, os próximos campos de posição da matriz de região vinculada se ligam a outras posições da mesma região, em vez de outras posições associadas ao mesmo valor de diferença de cor. A matriz de região vinculada 1102 é um exemplo de matriz de região vinculada que ilustra os valores que podem ser armazenados na matriz de região vinculada após a modificação.
00114. 2.4 ALTERNATIVAS E EXTENSÕES 00115. Para o propósito de ilustrar claramente um exemplo, ás FIG; 7, 9 e 11 mostram estruturas de dados individuais, conforme descrito acima; no entanto, em várias concretizações, cada uma das estruturas de dados pode ser implementada como uma pluralidade de estruturas de dados. Além disso, em outras concretizações, cada um dos dados aqui descritos, tais como os valores de diferença de cor, as informação de posição seguinte, as identificações de região e as identificações de posição podem ser armazenadas em qualquer tipo de estrutura de dados, incluindo, mas não se limitando a, uma matriz ou uma lista vinculada. 00116. Concretizações alternativas são descritas ao longo da descrição anterior, e em posições que melhor facilitam a compreensão do contexto das concretizações. Além disso, o invento tem sido descrito com referência a concretizações específicas da mesma. Será, no entanto, evidente que várias modificações e alterações podem ser feitas na mesma, sem se afastar de quaisquer conceitos invéntivos mais amplos. Portanto, a descrição e os desenhos são, consequentemente, para serem considerados num sentido ilustrativo, em vez de num sentido restritivo. 00117. Além disso, nesta descrição, certas etapas do processo são apresentadas numa ordem específica, e marcadores alfabéticos e alfanuméricos podem ser usados para identificar certas etapas. A menos que especificamente indicado na descrição, as concretizações não estão, necessariamente, limitadas a uma ordem específica de realização de tais etapas. De modo especifico, os marcadores são usados apenas para a identificação conveniente de etapas, e não se destinam a especificar ou requerer uma ordem específica de realização de tais etapas. 00118. A aplicação funcional das diferentes concretizações aqui descritas pode ser implementada de forma equivalente em hardware, software, firmware e / oü outros componentes funcionais disponíveis ou blocos de construção. Não se pretende nenhuma limitação especifica a um dispositivo específico ou sequência programática. Outras variações e concretizações são possíveis à luz dos ensinamentos acima.
00119. 3. MECANISMO DE IMPLEMENTAÇÃO - VISÃO GERAL DO HARDWARE 00120. De acordo com umâ concretização, as técnicas aqui descritas são implementadas por um ou mais dispositivos de computação para fins especiais. Os dispositivos de computação para fins especiais podem ser hard-wired para executar as técnicas, ou podem incluir dispositivos eletrônicos digitais, tais como um ou mais circuitos integrados de aplicações específicas (ASICs) ou matrizes de portas lógicas programáveis ém campo (FPGAs) que são persistentemente programadas para executar as técnicas, ou podem incluir um ou mais processadores de finalidade geral programados para executar as técnicas em conformidade com instruções de programa em firmware, memória, outras formas de armazenamento, ou uma combinação. Esses dispositivos de computação para fins especiais também podem combinar lógica personalizada hard-wired, ASICs ou FPGAs com programação personalizada para concluir as técnicas. Os dispositivos de computação para fins especiais podem ser sistemas de computadores desktop, sistemas portáteis de computador, dispositivos portáteis, dispositivos de rede ou qualquer outro dispositivo que incorpore hard-wired e / ou lógica de programação para implementar as técnicas. 00121. Por exemplo, a FIG. 13 é um diagrama em blocos que ilustra um sistema de computador 1300 no qual uma concretização da invenção pode ser implementada. O sistema de computador 1300 inclui um barramento 1302 ou outro mecanismo de comunicação para comunicar informações e um processador 1304 acoplado ao barramento 1302 para o processamento de informações. O processador 1304 pode ser, por exemplo, um microprocessador para fins gerais. 00122. O sistema de computador 1300 inclui ainda uma memória principal 1306, tal como uma memória de acesso aleatório (RAM) ou outro dispositivo de armazenamento dinâmico, acoplado ao barramento 1302 para armazenar informações e instruções para serem executadas pelo processador 1304. A memória principal 1306 também pode ser usada para armazenar variáveis temporárias ou outras informações intermediárias durante a execução de instruções a serem executadas pelo processador 1304. Essas instruções, quando armazenadas em mídias de armazenamento acessíveis pelo processador 804, torna o sistema de computador 1300 em uma máquina para fins especiais, que é customizado para executar as operações especificadas nas instruções. 00123. O sistema de computador 1300 inclui ainda uma memória somente leitura (ROM) 1308 ou outro dispositivo de armazenamento estático acoplado ao barramento 1302 para o armazenamento de informações estáticas e instruções no processador 1304. Um dispositivo de armazenamento 1310, tal como um disco magnético ou um disco óptico, é fornecido e acoplado ao barramento 1302 para armazenar informações e instruções. 00124. O sistema de computador 1300 pode ser acoplado através do barramento 1302 a um visor 1312, tal como um tubo de raios catódicos (CRT), para exibir informações a um usuário de computador. Um dispositivo de entrada 1314, incluindo alfanumérico e outras teclas, é acoplado ao barramento 1302 para comunicar informações e enviar comandos de seleções ao processador 1304. Outro tipo de dispositivo de entrada do usuário é o controle de cursor 1316, como um mouse, um traekball ou as teclas de direção do cursor, para a comunicação de informações de direção e enviar comando de seleções ao processador 1304 e controlar o movimento do cursor no visor 1312. Este dispositivo de entrada tem normalmente dois graus de liberdade, em dois eixos, de um primeiro eixo (por exemplo, x) e de um segundo eixo (por exemplo, y), que permite que o dispositivo especifique posições num plano. 00125. O sistema de computador 1300 pode implementar as técnicas descritas aqui usando lógica hard-wired customizada, um ou mais ASICs ou FPGAs, firmware e / ou a lógica de programa, que em combinação com programas de sistema de computador faça com que o sistema de computador 1300 seja uma máquina para fins específicos. De acordo com uma concretização, as técnicas aqui são realizados pelo sistema de computador 1300 em resposta ao processador 1304, que executa uma ou mais sequências de uma ou mais instruções contidas na memória principal 1306. Essas instruções podem ser lidas para a memória principal 1306 a partir de outro meio de armazenamento, tais como dispositivo de armazenamento 1310. A execução das sequências de instruções contidas na memória principal 1306 faz com que o processador 1304 execute as etapas do processo aqui descritos. Em concretizações alternativas, um circuito com fios pode ser usado em lugar de ou em combinação com instruções de software. 00126. O termo "mídia de armazenamento”, conforme utilizado aqui refere-se a qualquer tipo de mídia que armazena dados e / ou instruções que fazem com que uma máquina opere de uma forma específica. Essas mídias de armazenamento podem incluir mídias não voláteis e / ou mídias voláteis. Mídia não volátil inclui, por exemplo, discos ópticos ou magnéticos, tais como dispositivo de armazenamento 1310. A mídia volátil inclui memória dinâmica, como memória principal 1306. As formas mais comuns de mídia de armazenamento incluem, por exemplo, um disquete, um disco flexível, disco rígido, unidade de estado sólido, fita magnética ou qualquer outro meio de armazenamento de dados magnéticos, um CD -ROM, qualquer outro meio de armazenamento de dados ópticos, qualquer meio físico, com padrões de furos, uma RAM, uma PROM e EPROM, uma FLASH-EPROM, NVRAM, qualquer outro chip de memória ou cartucho. 00127. Mídias de armazenamento são diferentes de, mas pode ser utilizadas em conjunto com meios de transmissão. As mídias de transmissão participam da transferência de informação entre mídias de armazenamento. Por exemplo, meios de transmissão incluem cabos coaxiais, fios de cobre e fibra óptica, incluindo os fios que compõem o barramento 1302. Os meios de transmissão também podem assumir a forma de ondas acústicas ou de luz, tais como as geradas durante a comunicações de dados por onda de rádio e infravermelho. 00128' Várias formas de mídia podem estar envolvidas na transmissão de uma ou mais sequências de uma ou mais instruções para o processador 1304 para execução. Por exemplo, as instruções podem inicialmente ser transportadas num disco magnético ou unidade de estado sólido de um computador remoto. O computador remoto pode carregar as instruções em sua memória dinâmica e enviar as instruções através de uma linha telefônica usando um modem. Um modem local pára sistema de computador 1300 pode receber os dados da linha telefônica e usar o transmissor de infravermelho para converter os dados num sinal infravermelho. Um detector de infravermelho pode receber os dados transportados pelo sinal infravermelho e um circuito apropriado pode colocar os dados no barramento 1302. O barramento 1302 transporta os dados para a memória principal 1306, a partir da qual o processador 1304 recupera e executa as instruções. As instruções recebidas pela memória principal 1306 podem, opcionalmente, ser armazenadas no dispositivo de armazenamento 1310 quer antes quer após a execução pelo processador 1304. 00129. O sistema de computador 1300 também inclui uma interface de comunicação 1312 acoplada ao barramento 1302. A interface de comunicação 1312 proporciona uma comunicação bidirecional de dados acoplada a um link de rede 1320 que é ligado a uma rede local 1322. Por exemplo, a interface de comunicação 1318 pode ser um cartão de rede digital integrada de serviços (RDIS), modem a cabo, modem via satélite ou um modem para fornecer uma conexão de comunicação de dados para um tipo correspondente de linha telefônica. Como outro exemplo, a interface de comunicação 1312 pode ser um cartão de rede de área local (LAN), para proporcionar uma ligação de comunicação de dados a uma rede LAN compatível.
Ligações sem fio podem ser implementadas. Em qualquer implementação, a interface de comunicação 1312 envia e recebe sinais elétricos, eletromagnéticos ou ópticos que carregam fluxos de dados digitais que representam vários tipos de informação. 00130. O link de rede 1320 normalmente fornece comunicação de dados através de uma ou mais redes de dados para outros dispositivos. Por exemplo, o link de rede 1320 pode fornecer uma conexão através de rede local 1322 a um computador host 1324 ou para equipamento de dados operado por um provedor de serviços de Internet (ISP) 1326. O ISP 1326, por sua vez, fornece os serviços de comunicação de dados através da rede mundial de comunicação de dados por pacotes, agora comumente referido como “Internet” 1328. A rede local 1322 e a Internet 1328 ambas usam sinais elétricos, eletromagnéticos ou ópticos que carregam fluxos de dados digitais. Os sinais através das várias redes e os sinais do link de rede 1320 e através de interface de comunicação 1312, que carregam os dados digitais de e para o sistema de computador 1300, são exemplos de formas de mídia de transmissão. 00131. O sistema de computador 1300 pode enviar mensagens e receber dados, incluindo o código do programa, através da(s) rede(s), link de rede 1320 e interface de comunicação 1312. No exemplo da Internet, um servidor 630 pode transmitir um código de pedido para um programa de aplicação através da Internet 1328, ISP 1326, rede local 1322 e interface de comunicação 1312. 00132. O código recebido pode ser executado pelo processador 1304, uma vez que é recebido, e / ou armazenado no dispositivo de armazenamento 1310 ou outro dispositivo de armazenamento não volátil, para execução posterior. 00133. Na especificação anterior, as concretizações do invento foram descritas com referência a vários detalhes específicos que podem variar de implementação para implementação. A especificação q os desenhos devem, por conseguinte, ser consideradas, num sentido ilustrativo em vez de um sentido restritivo. O indicador único e exclusivo do escopo da invenção, e o que os depositantes pretendem ser o escopo da invenção, é o escopo literal e equivalente ao conjunto dé reivindicações que emitem a partir deste pedido, na forma específica em que tais reivindicações resultam, incluindo qualquer correção posterior.
00134. EXEMPLO DE INSTRUÇÕES DE DIVISÃO 00135. O seguinte é um exemplo de conjunto de instruções para dividir uma imagem em uma pluralidade de regiões. Pelo menos uma parte das instruções pode ser incluída numa concretização de instruções de identificação da região de marcação 210. 1. Initialization a. Take the Colorlmagelnput, BucketSortList, LinkedRegionlmage and ColorDistanceThreshoid as inputs. b. Allocate output Objects b.i. aRegionList = new RegionList(); b. ii. aRegionList.lnit() c. Allocate temporary variables c. i. Uínt32 array pointer LinkedPixelBüffer c.ii. Uintl 6 array pointer ColorPixeIBuffer c.iii. Uint32 currentPixelIndex c.iv. Uint32 array pointer CurrentLinkedPixel c.v. Uintl 6array pointer CurrentColorPixel c.vi. Üint32 currentRegionID. c.vü. Uint32 nextRegionID. c.viii. Uint32 aRegionFound c.ix. Uint32 currentRegionFoundCount. c.x. Uint64 minDifference c.xí. Uint64 currentDifference d. Set LinkedPixelBüffer = AddressOf(LinkedRegionÍmage[0][0j) e. Set ColorPixeIBuffer = AddressOff(Colorlmagelnput[0][0])) f. Allocate temporary static arrays f.i. tempRegionRecord Array f.ii. Neighborhood Array f.iii. FoundRegions f.iii.i. FoundCount f.iii.i.a. Number of regions found f.iii.2. Fields f.iii.2.a. Uint32 RegionlD f.iii.3. Size f.io.a. Neighborhood.Sizé 2. For each non zero value, n, in the BucketSortList //traverse the bucket sort list a. Set currentPixelIndex = n b. While currentPixelIndex != 0 // traverse the linked list in LinkedPixeIBuffer b.i. Set CurrentLinkedPixel to LinkedPixelBuffer+ currentPixelIndex b.ii. Set CurrentColorPixel to ColorPixeIBuffer + (currentPixellndex*2) b.iii. Set FoundRegions. FoundCount = 0 b.iv. Set aRegionFound = 0 b.v. For each element, k, of the NeighboorHood Array b.v.i. Set currentRegionlD = CurrentLinkedPixel[NeighboorHood[k]-1] b.v.2. If currentRegionlD != 0) b.v.2.a. currentRegionlD = tempRegionRecord[currentRegionlD]. RegionTag b.v.2.b. For eâch element, j, ofthe FoundRegions Array where (j < FoundRegions .FoundCount) b.v.2.b.i. If currentRegionlD = FoundRegions[k]. RegionlD b.v.2.b.i.i. Set aRegionFound = currentRegionlD b.v.2.b.ii. If aRegionFound != 0 b.v.2.b.ii. 1. Set FoundRegions[FoundRegions .FoundCount]. RegionlD * aRegionFound b.v.2.b.ii.2. Increment FoundRegions .FoundCount b.vi. If FoundRegions.FoundCount = 0 b.vi.i. Set currentRegionlD = tempRegionRecord.RegionCount b.vi.2. Copy CurrentColorPixel to tempRegionRecord[currentRegionlD].AccumulatedColor b.vi.B Set tempRegionRecord[currentRegionlD].RegionArea = 1 b.vi.4. Set tempRegionRecord[currentRegionlD].CalcAverageDone = FALSE b.vi.5. Copy CurrentColorPixel to tempRegionRecord[currentRegionlD].FirstFoundColor b.vi.6. Set tempRegionRecord[currentRegionlD].RegionTag = currentRegionlD b.vi.7. Increment tempRegionRecord.RegionCount b.vi.8. Set CurrentLinkedPixel[-1] = currentRegionlD. b.vii. if FoundRegions.FoundCount =1 b.vii.i. Set currentRegionlD = FoundRegions[0]. RegionlD b.vii.2. Add CurrentColorPixel to tempRegionRecord[currentRegionlD].Accumu!atedColor b.vii.3. lncrementtempRegionRecord[tempRegíonRecord.RegionCount].RegionArea. b.vii.4. Set tempRegionRecord[currentRegionlD].CalcAverageDone = FALSE b.vii.5. Set CurrentLinkedPixel[-1] = currentRegionID. b.viii. If FoundRegions.FoundCount = 2 b.viii.l. Set currentRegionID = FoundRegions[0]. RegionlD b.viii.2. Set nextRegionlD = FoundRegions[1], RegionlD b.viii.3. If currentRegionID > nextRegionlD b.viii.3.a. Swap currentRegionID, nextRegionlD b.viii.4. UpdateAverageColor(currentRegionlD) b.viii.5. UpdateAverageColor(nextRegionlD) b.viii.6. If ColorDifference(tempRegionRecord[currentRegionlD].averageColor, tempRegionRecord[nextRegionlD].averageColor) < ColorDistanceThreshold b.viii.6.a. tempRegionRecord[nextRegionID]. RegionTag = currentRegionID. b.viii.6.b. Add tempRegionRecord[nextRegionlD].AccumulatedColor to tempRegionRecord[currentRegÍonlD].AccumulatedColor b.viii.6.c. Add tempRegionRecord[nextRegíonlD].RegionArea to tempRegionRecord[currentRegionlD].RegionArea b.viii.6.d. Set tempRegionRecord[currentRegionID].CalcAverageDone = FALSE b.viii.e.e. Set CurrentLinkedPixel[-1] = currentRegionID. b.viii.7. Else (set CurrentLinkedPixel region to closest Match) b.viii.7.a. If (ColorDifference(tempRegionRecord[currentRegionlD].averageColor, CurrentColorPixel) <
ColorDifference(tempRegionRecord[nextRegionlD].averageColor, CurrentColorPixel) b.viii.7.a.i. SetCurrentLinkedPixel[-1] = currentRegionID. b.viii.7.b. Else b.viii.7.b.i. Set CurrentLinkedPixel[-1] = nextRegionlD. b.ix. If FoundRegions.FoundCount > 2 b.ix.i. Set minDifference to hex 0x7fffffffffffffff b.ix.2. Set currentRegionID = 0 b.ix.3. For (j = 0, j < FoundRegions.FoundCount, j = j+1) b.ix.3.a.currentDifference = CoíorDifference(tempRegionRecord[j].averageColor, CurrentColorPixel) b.ix.3.b. if (currentDifference < minDifference) b.ix.3.b.i. Set minDifference = currentDifference b.ix.3.b.ii. Set currentRegioniD = j b.ix.4. If (currentRegioniD != 0) b. ix.4.a.Set CurrentLinkedPixeI[-1] = currentRegioniD c. Set currentPixelIndex = CurrentLinkedPixe![0] 3. For each record, n, in tempRegionRecord, where n is Less than tempRegionRecord.RegionCount a. If tempRegionRecord[n].RegionTag = n // this region is the root of the merged regions a. i. tempRegionRecord[n].RegionTag = aReqionList.AddElement(tempReaionRecordín1.FirstFoundColor. tempReaionRecordfnl. RegionArea, 0) // create an output region for this one b. Else // this is not a root region b. i. tempRegionRecord[n].RegionTag = tempRegionRecord[tempRegionRecord[n].RegionTag]. RegionTag // set tag to the output region index 4. For Each Pixel, CurrentLinkedPixel, in LinkedPixeIBuffer a. Increment currentPixelIndex to the offset for CurrentLinkedPixel b. currentRegioniD = tempRegionRecord[CurrentLinkedPixel.regionLabellndex].RegionTag c. CurrentLinkedPixel.regionLabellndex = currentRegioniD II set tag to the output region index d. CurrentLinkedPixel.nextSortlndex = aRegionList [currentRegionlD].pixelListOffset e. aRegionList [currentRegion!D].pixelListOffset = currentPixellndex+1 Output the modified LinkedRegionlmage and aRegionList, REIVINDICAÇÕES

Claims (30)

1. Método implementado por computador, caracterizado pelo fato de compreender: receber uma imagem de entrada; utilizar um computador, dividir a imagem de entrada numa pluralidade de regiões de imagem, com base em cor, em que a divisão compreende: atribuir um valor de diferença de cor a cada posição de uma pluralidade de posições dentro da imagem de entrada, em que um valor de diferença de cor específico, atribuído a uma posição específica, é determinado com base, em parte, na imagem de entrada e indica o quão diferente uma cor da posição específica é de cores de outras posições vizinhas da posição específica; atribuir cada posição de uma pluralidade de posições a uma região de imagem da pluralidade de regiões de imagem, em que a atribuição ocorre de acordo com uma ordem específica, em que a ordem específica é baseada, pelo menos em parte, em valores de diferença de cor associados à pluralidade de posições; escolher uma região de imagem para atribuição a uma posição específica, com base, em parte, na cor da posição específica, em que a cor da posição específica é determinada com base, pelo menos em parte, na imagem de entrada; usar informações determinadas com base na divisão para determinar informações sobre um item na imagem de entrada; em que o método é realizado usando um ou mais dispositivos de computação.
2. Método implementado por computador, de acordo com a reivindicação 1, caracterizado pelo fato de compreender ainda: determinar quais regiões são atribuídas a posições adjacentes em relação a uma determinada posição da pluralidade de posições; atribuir a determinada posição a uma determinada região de imagem de uma pluralidade de regiões de imagem, com base, em parte, na determinação.
3. Método implementado por computador, de acordo com a reivindicação 1, caracterizado pelo fato de determinar quais regiões estão associadas a posições adjacentes em relação a uma determinada posição compreende determinar que nenhuma região está associada às posições adjacentes em relação à determinada posição.
4. Método implementado por computador, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: determinar que uma primeira posição adjacente em relação a uma determinada posição é atribuída a uma primeira região e uma segunda posição adjacente em relação à determinada posição é atribuída a uma segunda região diferente da primeira posição; atribuir a determinada posição a uma região selecionada da primeira região e da segunda região, com base na determinação de que uma cor da determinada posição é mais semelhante a uma cor que representa a região escolhida do que uma còr que representa uma região não escolhida da primeira região e da segunda região.
5. Método implementado por computador, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: determinar que uma determinada posição adjacente é a única posição de uma pluralidade de posições adjacentes em relação a uma determinada posição a que foi atribuída uma região; em resposta à determinação, atribuir a certa posição a uma região atribuída à determinada posição adjacente.
6. Método implementado por computador, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: determinar que uma primeira posição adjacente em relação a uma determinada posição é atribuída a uma primeira régião e uma segunda posição adjacente à determinada posição que é atribuída a uma segunda região diferente da primeira posição; determinar se a fusão da primeira região e da segunda região, em que a determinação de possível fusão da primeira região e da segunda região compreende comparar uma cor que representa a primeira região com uma cor que representa a segunda região.
7. Método implementado por computador, de acordo com a reivindicação 1, caracterizado pelo fato de que a imagem de entrada é uma imagem de fotografia digital de um produto customizável embelezado com marcação.
8. Método implementado por computador, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: armazenar, em uma pluralidade de estruturas de dados em separado, informações que descrevem a pluralidade de regiões de imagem, em que a pluralidade de estruturas de dados inclui uma primeira estrutura de dados, que identifica, para cada região da imagem da pluralidade de regiões de imagem: (a) um valor representativo de cor, para identificar uma cor que representa a região de imagem; (b) um tamanho da região de imagem; e (c) uma única posição atribuída à região de imagem.
9. Método implementado por computador, de acordo com a reivindicação 8, caracterizado pelo fato de que a pluralidade de estruturas de dados em separado inclui uma segunda estrutura de dados que compreende uma pluralidade de entradas, em que cada entrada da pluralidade de entradas representa uma única posição que corresponde à pluralidade de posições e identifica ou: uma próxima posição correspondente em relação à posição correspondente, em que a próxima posição em relação à posição correspondente é uma posição diferente da posição correspondente, e é atribuída à mesma região de imagem como a posição correspondente; ou um valor que indica que não há uma próxima posição em relação à posição correspondente.
10. Método implementado por computador, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: identificar dados que representam pelo menos uma porção específica de marcação na imagem de entrada, com base na divisão; determinar, com base nos dados, instruções para a geração de uma visualização de um produto customizável; ou enviar as instruções para gerar a visualização do produto customizável para um servidor web.
11. Método implementado por computador, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: preencher valores de uma matriz de valor de cor com base na imagem de entrada, em que um valor na matriz de valor de cor indica a cor de uma posição da imagem de entrada que corresponde ao valor; atribuir um valor de diferença de cor a cada posição dentro da imagem de entrada com base em um único deslocamento da matriz de valor de cor.
12. Método implementado por computador, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: selecionar uma primeira região de imagem para atribuir a uma primeira posição; armazenar em uma entrada de uma lista de regiões que corresponde a uma determinada posição, um primeiro valor que identifica a primeira região de imagem; determinar a fusão da primeira região de imagem com uma segunda região de imagem, com base numa comparação de uma cor associada à primeira região de imagem e uma cor associada à segunda região de imagem; em resposta à determinação de fundir a primeira região de imagem com a segunda região de imagem, atualizar o primeiro valor na entrada da lista de região para um segundo valor que representa a segunda região da imagem.
13. Método implementado por computador, de acordo com a reivindicação 12, caracterizado pelo fato de que compreende ainda: comparar o primeiro valor e o segundo valor, em que o primeiro valor e o segundo valor são valores numéricos; em que a atualização do primeiro valor na entrada da lista de região para o segundo valor é em resposta à comparação do primeiro valor e do segundo valor.
14. Método implementado por computador, de acordo com a reivindicação 13, caracterizado pelo fato de que o primeiro valor é atualizado para o segundo valor com base, em parte, numa determinação de que o primeiro valor é mais baixo do que o segundo valor.
15. Método implementado por computador, de acordo com a reivindicação 12, caracterizado pelo fato de que compreende ainda: após atribuir cada posição da imagem de entrada a uma região da imagem correspondente, identificar uma ou mais entradas na lista região que contém o primeiro valor; para cada entrada específica de uma ou mais entradas na lista de regiões que contêm o primeiro valor, atualizar o primeiro valor na entrada específica para o segundo valor.
16. Sistema de computador que compreende um meio de armazenamento não transitório de leitura por computador, caracterizado pelo fato de que compreende uma ou mais sequências de instruções que, quando executadas por um ou mais processadores, fazem com que o um ou mais processadores executem: o recebimento de uma imagem de entrada; a divisão da imagem de entrada em uma pluralidade de regiões de imagem, com base em cor, em que a divisão compreende: atribuir um valor de diferença de cor para cada posição de uma pluralidade de posições dentro da imagem de entrada, em que um valor de diferença de cor específico atribuído a uma posição específica é determinado com base, em parte, na imagem de entrada, e indica ó quão diferente uma cor da posição específica é de cores de outras posições vizinhas da determinada posição; atribuir cada posição de uma pluralidade dê posições a uma região de imagem da pluralidade de regiões de imagem, em que a atribuição ocorre de acordo com uma ordem específica, em que a ordem específica é baseada, pelo menos em parte, nos valores de diferença de cor associados à pluralidade de posições; selecionar uma região de imagem para atribuir a uma posição específica, com base, em parte, na cor da posição específica, em que a cor da posição específica é determinada com base, pelo menos em parte, na imagem de entrada utilizando informação determinada a partir da divisão para determinar informação sobre um item na imagem de entrada.
17. Sistema de computador, de acordo com a reivindicação 16, caracterizado pelo fato de que o meio de armazenamento compreendendo sequências de instruções que, quando executadas por um ou mais processadores, fazem com que o um ou mais processadores executem: a determinação de quais regiões são atribuídas a posições adjacentes em relação a uma determinada posição da pluralidade de posições; a atribuição da determina posição a uma determinada região de imagem de uma pluralidade de regiões de imagem, com base, em parte, na determinação.
18. Sistema de computador, de acordo com a reivindicação 16, caracterizado pelo fato de que o meio de armazenamento compreendendo sequências de instruções que, quando executadas por um ou mais processadores, determinam quais regiões estão associadas a posições adjacentes em relação a uma determinada posição, através da determinação de que nenhuma região está associada às posições adjacentes em relação à determinada posição.
19. Sistema de computador, de acordo com a reivindicação 16, caracterizado pelo fato de que o meio de armazenamento compreendendo sequências de instruções que, quando executadas por um ou mais processadores, fazem com que ó um ou mais processadores executem: a determinação de que uma primeira posição adjacente em relação a uma determinada posição seja atribuída a uma primeira região e uma segunda posição adjacente à determinada posição seja atribuída a uma segunda região diferente da primeira posição; a atribuição da determinada posição a uma região escolhida da primeira região e da segunda região, com base na determinação de que uma cor da determinada posição é mais semelhante a uma cor que representa a região escolhida do que uma cor que representa uma região não escolhida da primeira região e da segunda região.
20. Sistema de computador, de acordo com a reivindicação 16, caracterizado pelo fato de que o meio de armazenamento compreendendo sequências de instruções que, quando executadas por um ou mais processadores, fazem com que o um ou mais processadores executem: a determinação de que uma determinada posição adjacente é a única posição de uma pluralidade de posições adjacentes em relação a uma determinada posição, a qual foi atribuída uma região; em resposta à determinação, atribuir a determinada posição a uma região atribuída à determinada posição adjacente.
21. Sistema de computador, de acordo com a reivindicação 16, caracterizado pelo fato de que o meio de armazenamento compreendendo sequências de instruções que, quando executadas por um ou mais processadores, fazem com que o um ou mais processadores executem: a determinação de que uma primeira posição adjacente em relação a uma determinada posição seja atribuída a uma primeira região e que uma segunda posição adjacente à determinada posição seja atribuída a uma segunda região diferente da primeira posição; a determinação de se a fusão da primeira região com a segunda região, em que a determinação de possível fusão da primeira região com a segunda região compreende comparar uma cor que representa a primeira região com uma cor que representa a segunda região.
22. Sistema de computador, de acordo com a reivindicação 16, caracterizado pelo fato de que a imagem de entrada é uma fotografia digital de imagem de um produto customizável embelezado com marcação.
23. Sistema de computador, de acordo com a reivindicação 16, caracterizado pelo fato de o meio de armazenamento compreendendo sequências de instruções que, quando executadas por um ou mais processadores, fazem com que o um oü mais processadores executem: o armazenamento, em uma pluralidade de estruturas de dados em separado, de informações que descrevem a pluralidade de regiões de imagem, em que a pluralidade de estruturas de dados incluem uma primeira estrutura de dados, que identifica, para cada região da imagem da pluralidade de regiões de imagem: (a) um valor representativo de cor que identifica uma cor que representa a região de imagem; (b) um tamanho da região de imagem; e (c) uma única posição atribuída à região de imagem.
24. Sistema de computador, de acordo com a reivindicação 23, caracterizado pelo fato de que a pluralidade de estruturas de dados em separado inclui uma segunda estrutura de dados que compreende uma pluralidade de entradas, em que cada entrada da pluralidade de entradas representa uma única posição que corresponde à pluralidade de posições e identifica ou: uma próxima posição correspondente em relação à posição correspondente, em que a próxima posição em relação à posição correspondente é uma posição diferente da posição correspondente e seja atribuída à mesma região de imagem que a posição correspondente; ou um valor que indica que não há uma próxima posição em relação à posição correspondente.
25. Sistema de computador, de acordo com a reivindicação 16, caracterizado pelo fato de que o meio de armazenamento compreendendo sequências de instruções que, quando executadas por um ou mais processadores, fazem com que o um ou mais processadores executem: a identificação de dados que representam pelo menos uma porção específica de marcação na imagem de entrada, com base na divisão; a determinação, com base nos dados, de instruções para a geração de uma visualização de um produto customizável; ou o envio das instruções para gerar a visualização do produto customizável em um servidor web.
26. Sistema de computador, de acordo com a reivindicação 16, caracterizado pelo fato de que o meio de armazenamento compreendendo sequências de instruções que, quando executadas por um ou mais processadores, fazem com o um ou mais processadores executem: o preenchimento de valores de uma matriz de valor de cor, com base na imagem de entrada, em que um valor na matriz de valor de cor indica a cor de uma posição da imagem de entrada correspondente ao valor; a atribuição de um valor de diferença de cor a cada posição dentro da imagem de entrada, com base em um único deslocamento da matriz de valor de cor.
27. Sistema de computador, de acordo com a reivindicação 16, caracterizado pelo fato de que o meio de armazenamento compreendendo sequências de instruções que, quando executadas por um ou mais processadores, fazem com o um ou mais processadores executem ainda: a escolha de uma primeira imagem de região para atribuição a uma primeira posição; o armazenamento, numa entrada de uma lista de região que corresponde a uma determinada posição, de um primeiro valor que identifica a primeira região de imagem; a determinação de fundir a primeira região de imagem com uma segunda região de imagem, com base numa comparação de uma cor associada à primeira região de imagem e uma cor associada à segunda região de imagem; em resposta à determinação de fundir a primeira região de imagem com a segunda região de imagem, que atualiza o primeiro valor da entrada da lista de região para um segundo valor, que representa a segunda região da imagem.
28. Sistema de computador, de acordo com a reivindicação 27, caracterizado pelo fato de que o meio de armazenamento compreendendo sequências de instruções que, quando executadas por um ou mais processadores, fazem com que o um ou mais processadores executem ainda: a comparação do primeiro valor e do segundo valor, em que o primeiro valor e o segundo valor são valores numéricos; em que a atualização do primeiro valor na entrada da lista de região para o segundo valor é em resposta à comparação do primeiro valor e do segundo valor.
29. Sistema de computador, de acordo com a reivindicação 28, caracterizado pelo fato de que o primeiro valor é atualizado para o segundo valor com base, em parte, numa determinação de que o primeiro valor é mais baixo do que o segundo valor.
30. Sistema de computador, de acordo com a reivindicação 27, caracterizado pelo fato de que o meio de armazenamento compreendendo sequências de instruções que, quando executadas por um ou mais processadores, fazem com que o um ç>u mais processadores executem ainda: após a atribuição de cada posição da imagem de entrada a uma região da imagem correspondente, identificar uma ou mais entradas na lista de região que contêm o primeiro valor; para cada entrada específica de uma ou mais entradas na lista de região que contêm o primeiro valor, atualizar o primeiro valor na entrada específica para o segundo valor.
BR102014005996A 2013-03-14 2014-03-14 segmentação de uma imagem com base em cor e diferenças de cores BR102014005996A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361785533P 2013-03-14 2013-03-14
US201361787532P 2013-03-15 2013-03-15
US14/050,281 US8712566B1 (en) 2013-03-14 2013-10-09 Segmentation of a product markup image based on color and color differences

Publications (1)

Publication Number Publication Date
BR102014005996A2 true BR102014005996A2 (pt) 2016-12-13

Family

ID=50514311

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102014005996A BR102014005996A2 (pt) 2013-03-14 2014-03-14 segmentação de uma imagem com base em cor e diferenças de cores

Country Status (6)

Country Link
US (5) US8712566B1 (pt)
EP (2) EP2779094A3 (pt)
JP (1) JP6382538B2 (pt)
CN (1) CN104050657A (pt)
AU (2) AU2014201404B2 (pt)
BR (1) BR102014005996A2 (pt)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11157977B1 (en) 2007-10-26 2021-10-26 Zazzle Inc. Sales system using apparel modeling system and method
US9147213B2 (en) 2007-10-26 2015-09-29 Zazzle Inc. Visualizing a custom product in situ
US8917424B2 (en) 2007-10-26 2014-12-23 Zazzle.Com, Inc. Screen printing techniques
US8174521B2 (en) * 2007-10-26 2012-05-08 Zazzle.Com Product modeling system and method
US10719862B2 (en) 2008-07-29 2020-07-21 Zazzle Inc. System and method for intake of manufacturing patterns and applying them to the automated production of interactive, customizable product
US9213920B2 (en) 2010-05-28 2015-12-15 Zazzle.Com, Inc. Using infrared imaging to create digital images for use in product customization
US10969743B2 (en) 2011-12-29 2021-04-06 Zazzle Inc. System and method for the efficient recording of large aperture wave fronts of visible and near visible light
US8712566B1 (en) 2013-03-14 2014-04-29 Zazzle Inc. Segmentation of a product markup image based on color and color differences
US10242395B1 (en) * 2015-04-30 2019-03-26 Amazon Technologies, Inc. Providing shopping links to items on a network page
US9542766B1 (en) * 2015-06-26 2017-01-10 Microsoft Technology Licensing, Llc Intelligent configuration of data visualizations
US9852533B2 (en) * 2015-08-10 2017-12-26 Zazzle Inc. System and method for digital markups of custom products
CN107038707B (zh) * 2016-02-02 2020-06-05 杭州海康威视数字技术股份有限公司 一种图像分割方法及装置
EP3533033A4 (en) * 2016-10-28 2020-07-01 Zazzle Inc. SYSTEM AND METHOD FOR DEFINING, DETECTING, MOUNTING AND DISPLAYING CUSTOMIZED VIDEO CONTENT
US20180182171A1 (en) * 2016-12-26 2018-06-28 Drawsta, Inc. Systems and Methods for Real-time Multimedia Augmented Reality
TWI678680B (zh) 2018-04-20 2019-12-01 宏碁股份有限公司 影像合成方法及智慧型裝置
WO2019230356A1 (ja) * 2018-05-31 2019-12-05 パナソニックIpマネジメント株式会社 学習装置、検査装置、学習方法および検査方法
TWI674558B (zh) * 2018-06-12 2019-10-11 財團法人工業技術研究院 數值陣列資料影像處理裝置、數值陣列資料影像處理方法及色碼表產生方法
CN111845098B (zh) * 2019-04-26 2021-06-18 深圳市汉森软件有限公司 打印机墨量调整方法、装置、设备及介质
US11429663B2 (en) * 2020-06-02 2022-08-30 Western Digital Technologies, Inc. Storage system and method for host-assisted memory block color coding for faster media search
AU2022266557A1 (en) 2021-04-26 2023-10-05 Zazzle Inc. Generating customized products in collaboration with live designers and agents
US11915199B2 (en) 2021-06-03 2024-02-27 Zazzle Inc. Moment-based gifts and designs generated using a digital product collaboration platform
US11915200B2 (en) 2021-07-29 2024-02-27 Zazzle Inc. Collaborative video chat screen sharing using a digital product collaboration platform
US12314992B2 (en) 2021-10-21 2025-05-27 Zazzle Inc. Method and computer readable storage media for interfacing with third party platforms via collaboration sessions to customize products
CN114445554B (zh) * 2021-12-24 2023-02-10 广东时谛智能科技有限公司 一种鞋体专属定制方法、装置、电子设备及存储介质
US20240303959A1 (en) 2023-03-12 2024-09-12 Zazzle Inc. Generating and determining additional content and products based on product-tokens
US20240303705A1 (en) 2023-03-12 2024-09-12 Zazzle Inc. Generating and determining additional content and products based on product-tokens
US20240303960A1 (en) 2023-03-12 2024-09-12 Zazzle Inc. Generating and determining additional content and products based on product-tokens
US20240303709A1 (en) 2023-03-12 2024-09-12 Zazzle Inc. Generating and determining additional content and products based on product-tokens
US12475675B2 (en) 2023-03-12 2025-11-18 Zazzle Inc. Generating and determining additional content and products based on product-tokens
US20240303706A1 (en) 2023-03-12 2024-09-12 Zazzle Inc. Generating and determining additional content and products based on product-tokens
US20250378211A1 (en) 2024-06-10 2025-12-11 Zazzle Inc. Containers for storing and transmitting representations of customizable products
US20250378220A1 (en) 2024-06-10 2025-12-11 Zazzle Inc. Containers for storing and transmitting representations of customizable products
US12518068B2 (en) 2024-06-10 2026-01-06 Zazzle Inc. Containers for storing and transmitting representations of customizable products
US20250378210A1 (en) 2024-06-10 2025-12-11 Zazzle Inc. Containers for storing and transmitting representations of customizable products
US20250378475A1 (en) 2024-06-10 2025-12-11 Zazzle Inc. Containers for storing and transmitting representations of customizable products
US20250378477A1 (en) 2024-06-10 2025-12-11 Zazzle Inc. Containers for storing and transmitting representations of customizable products
US20250378476A1 (en) 2024-06-10 2025-12-11 Zazzle Inc. Containers for storing and transmitting representations of customizable products

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5039132A (en) * 1990-01-25 1991-08-13 Minnesota Mining And Manufacturing Company Method and form used for ordering custom printed products
US5084727A (en) * 1990-12-21 1992-01-28 Eastman Kodak Company Method and apparatus for photographic exposure using an LCD pad
US5615123A (en) * 1991-04-02 1997-03-25 Creatacard, Inc. System for creating and producing custom card products
JP2772504B2 (ja) * 1993-03-26 1998-07-02 大日本スクリーン製造株式会社 網角度が変更可能な網目版画像生成装置
KR0183795B1 (ko) * 1995-12-28 1999-05-01 김광호 색상 조정 방법 및 장치
GB9707704D0 (en) 1997-04-16 1997-06-04 British Telecomm Display terminal
JP2000215317A (ja) 1998-11-16 2000-08-04 Sony Corp 画像処理方法及び画像処理装置
US6608700B1 (en) * 1999-11-24 2003-08-19 Xerox Corporation Removal of error diffusion artifacts with alternating distribution weights
US20010034668A1 (en) 2000-01-29 2001-10-25 Whitworth Brian L. Virtual picture hanging via the internet
US7262778B1 (en) * 2000-02-11 2007-08-28 Sony Corporation Automatic color adjustment of a template design
DE10034122A1 (de) * 2000-07-13 2002-01-24 Hed Gmbh Haftetikettendruck Set zum Erstellen von Etiketten
GB2370438A (en) * 2000-12-22 2002-06-26 Hewlett Packard Co Automated image cropping using selected compositional rules.
US7274380B2 (en) 2001-10-04 2007-09-25 Siemens Corporate Research, Inc. Augmented reality system
JP2003264740A (ja) 2002-03-08 2003-09-19 Cad Center:Kk 展望鏡
GB0225789D0 (en) * 2002-03-25 2002-12-11 Makemyphone Ltd Method and apparatus for creating image production file for a custom imprinted article
JP3962642B2 (ja) 2002-07-08 2007-08-22 キヤノン株式会社 画像処理装置およびその方法
JP3944024B2 (ja) 2002-08-20 2007-07-11 株式会社東芝 画像処理方法、半導体装置の製造方法、パターン検査装置およびプログラム
JP2004282708A (ja) * 2003-02-28 2004-10-07 Fuji Photo Film Co Ltd 印刷物生成装置および方法、情報検出装置および方法並びにプログラム
US7724956B2 (en) 2003-02-28 2010-05-25 Gannon Technologies Group Llc Systems and methods for identifying characters and words in a document
US20050226498A1 (en) 2004-03-31 2005-10-13 Lee David L Prepress workflow process employing frequency modulation (FM) screening techniques
US8913074B2 (en) * 2004-05-05 2014-12-16 Yissum Research Development Company Of The Hebrew University Of Jerusalem Colorization method and apparatus
US7474318B2 (en) 2004-05-28 2009-01-06 National University Of Singapore Interactive system and method
JP4794847B2 (ja) * 2004-10-29 2011-10-19 キヤノン株式会社 2次元コードおよび情報処理方法
US8982109B2 (en) 2005-03-01 2015-03-17 Eyesmatch Ltd Devices, systems and methods of capturing and displaying appearances
JP4470848B2 (ja) * 2005-09-15 2010-06-02 パナソニック電工株式会社 顔部品抽出方法及び顔認証装置
US8023746B2 (en) * 2005-10-14 2011-09-20 Disney Enterprises, Inc. Systems and methods for decoding an image to determine a digital identifier
CA2566260C (en) 2005-10-31 2013-10-01 National Research Council Of Canada Marker and method for detecting said marker
JP2007257176A (ja) 2006-03-22 2007-10-04 Fujitsu Ltd 情報処理方法、情報処理装置、および情報処理プログラム
JP4926817B2 (ja) 2006-08-11 2012-05-09 キヤノン株式会社 指標配置情報計測装置および方法
US7847830B2 (en) 2006-11-21 2010-12-07 Sony Ericsson Mobile Communications Ab System and method for camera metering based on flesh tone detection
JP4861924B2 (ja) * 2007-07-31 2012-01-25 キヤノン株式会社 画像処理装置、その制御方法、そのプログラム、その記憶媒体
CN101286199A (zh) * 2007-09-14 2008-10-15 西北工业大学 一种基于区域生长和蚁群聚类的图像分割方法
US20090080773A1 (en) * 2007-09-20 2009-03-26 Mark Shaw Image segmentation using dynamic color gradient threshold, texture, and multimodal-merging
US20090080688A1 (en) * 2007-09-25 2009-03-26 The Hong Kong University Of Science And Technology Digital watermarking for few-color images
DE102007045834B4 (de) 2007-09-25 2012-01-26 Metaio Gmbh Verfahren und Vorrichtung zum Darstellen eines virtuellen Objekts in einer realen Umgebung
JP2009088614A (ja) * 2007-09-27 2009-04-23 Toshiba Corp 画像処理方法および画像処理装置
US9147213B2 (en) 2007-10-26 2015-09-29 Zazzle Inc. Visualizing a custom product in situ
US8174521B2 (en) 2007-10-26 2012-05-08 Zazzle.Com Product modeling system and method
US8175931B2 (en) 2008-07-29 2012-05-08 Zazzle.Com, Inc. Product customization system and method
US8917424B2 (en) 2007-10-26 2014-12-23 Zazzle.Com, Inc. Screen printing techniques
CN101889275A (zh) 2007-11-07 2010-11-17 斯金尼特公司 定制打印内容
KR100927009B1 (ko) 2008-02-04 2009-11-16 광주과학기술원 증강 현실에서의 햅틱 상호 작용 방법 및 그 시스템
US8233722B2 (en) 2008-06-27 2012-07-31 Palo Alto Research Center Incorporated Method and system for finding a document image in a document collection using localized two-dimensional visual fingerprints
US8520979B2 (en) 2008-08-19 2013-08-27 Digimarc Corporation Methods and systems for content processing
US20100048290A1 (en) 2008-08-19 2010-02-25 Sony Computer Entertainment Europe Ltd. Image combining method, system and apparatus
KR20110058834A (ko) 2008-08-22 2011-06-01 재즐.콤, 인코포레이티드 제품 주문 제작 시스템 및 방법
US8320674B2 (en) * 2008-09-03 2012-11-27 Sony Corporation Text localization for image and video OCR
US20100066750A1 (en) 2008-09-16 2010-03-18 Motorola, Inc. Mobile virtual and augmented reality system
US8422777B2 (en) 2008-10-14 2013-04-16 Joshua Victor Aller Target and method of detecting, identifying, and determining 3-D pose of the target
JP2010117870A (ja) 2008-11-12 2010-05-27 B-Core Inc 包含型コードシンボル及びその読み出し方法、並びに閉領域包含型コードシンボル及びその読み出し方法、並びに、包含型コードシンボルが付された物品及び閉領域包含型コードシンボルが付された物品。
US8515171B2 (en) * 2009-01-09 2013-08-20 Rochester Institute Of Technology Methods for adaptive and progressive gradient-based multi-resolution color image segmentation and systems thereof
US8606657B2 (en) 2009-01-21 2013-12-10 Edgenet, Inc. Augmented reality method and system for designing environments and buying/selling goods
WO2010087886A1 (en) 2009-01-27 2010-08-05 Gannon Technologies Group Llc Systems and methods for graph-based pattern recognition technology applied to the automated identification of fingerprints
US9171361B2 (en) 2010-04-23 2015-10-27 Flir Systems Ab Infrared resolution and contrast enhancement with fusion
US8681145B2 (en) 2009-03-20 2014-03-25 Disney Enterprises, Inc. Attribute transfer between computer models including identifying isomorphic regions in polygonal meshes
JP5466418B2 (ja) 2009-03-27 2014-04-09 株式会社成基総研 判定装置、判定方法、およびプログラム
JP2010287174A (ja) 2009-06-15 2010-12-24 Dainippon Printing Co Ltd 家具シミュレーション方法、装置、プログラム、記録媒体
US8345974B2 (en) * 2009-07-14 2013-01-01 Hewlett-Packard Development Company, L.P. Hierarchical recursive image segmentation
EP2395474A3 (en) 2010-06-11 2014-03-26 Nintendo Co., Ltd. Storage medium having image recognition program stored therein, image recognition apparatus, image recognition system, and image recognition method
TWI411853B (zh) 2010-07-23 2013-10-11 Innolux Corp 背光模組與液晶顯示裝置
JP5697487B2 (ja) 2011-02-25 2015-04-08 任天堂株式会社 画像処理システム、画像処理方法、画像処理装置、および画像処理用プログラム
CN102214355B (zh) * 2011-05-20 2013-04-03 西安工程大学 一种服装展示素材的抠图方法
US8787707B1 (en) 2011-06-29 2014-07-22 Amazon Technologies, Inc. Identification of product attributes
US8750613B2 (en) * 2011-12-13 2014-06-10 The Nielsen Company (Us), Llc Detecting objects in images using color histograms
CN102903127B (zh) * 2012-09-05 2016-04-06 天津光电高斯通信工程技术股份有限公司 一种基于自适应种子选取的货运图像分割算法
US8712566B1 (en) * 2013-03-14 2014-04-29 Zazzle Inc. Segmentation of a product markup image based on color and color differences

Also Published As

Publication number Publication date
US8958633B2 (en) 2015-02-17
US8712566B1 (en) 2014-04-29
JP6382538B2 (ja) 2018-08-29
JP2014179090A (ja) 2014-09-25
US10083517B2 (en) 2018-09-25
AU2019201268A1 (en) 2019-03-14
US9530217B2 (en) 2016-12-27
US20170103539A1 (en) 2017-04-13
EP3660784A1 (en) 2020-06-03
US9905012B2 (en) 2018-02-27
EP3660784B1 (en) 2023-08-23
CN104050657A (zh) 2014-09-17
US20180182104A1 (en) 2018-06-28
EP2779094A2 (en) 2014-09-17
US20140270506A1 (en) 2014-09-18
AU2014201404B2 (en) 2018-11-22
US20150262371A1 (en) 2015-09-17
AU2019201268B2 (en) 2020-03-12
EP2779094A3 (en) 2014-10-29
AU2014201404A1 (en) 2014-10-02

Similar Documents

Publication Publication Date Title
BR102014005996A2 (pt) segmentação de uma imagem com base em cor e diferenças de cores
CN105354248B (zh) 基于灰度的分布式图像底层特征识别方法及系统
Mei et al. 3D tree modeling from incomplete point clouds via optimization and L 1-MST
US9401032B1 (en) Image-based color palette generation
US9245350B1 (en) Image-based color palette generation
US9311889B1 (en) Image-based color palette generation
CN112085840B (zh) 语义分割方法、装置、设备及计算机可读存储介质
Grote et al. Road network extraction in suburban areas
CN109242775B (zh) 一种属性信息迁移方法、装置、设备以及可读存储介质
US20120092357A1 (en) Region-Based Image Manipulation
CN112000763B (zh) 兴趣点竞争关系确定方法、装置、设备和介质
US11112935B2 (en) Graphical cloud application mapping method and system
CN116226487B (zh) 一种基于图形识别的数据大屏可视化方法及系统
CN110515896A (zh) 模型资源管理方法、模型文件制作方法、装置和系统
CN114529707A (zh) 三维模型分割方法、装置、计算设备及可读存储介质
CN110390724A (zh) 一种带有实例分割的slam方法
Wang et al. Scalable individual tree delineation in 3D point clouds
CN116881279A (zh) 业务场景的信息显示方法和相关设备
CA2845601A1 (en) Segmentation of an image based on color and color differences
CN106547419A (zh) 一种对象呈现方法与设备
CN111026895A (zh) 一种数据可视化处理方法、装置及存储介质
JP6994138B2 (ja) 情報管理装置並びにファイル管理方法
JP7582470B2 (ja) 識別装置、識別方法および識別プログラム
CN115984881A (zh) 思维导图图像的识别方法、装置、电子设备和存储介质
Liu et al. 3D textured mesh scene data fusion method considering multiple scales and resolutions

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]
B08K Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette]