PT842495E - Rotacao de imagens - Google Patents

Rotacao de imagens Download PDF

Info

Publication number
PT842495E
PT842495E PT96925439T PT96925439T PT842495E PT 842495 E PT842495 E PT 842495E PT 96925439 T PT96925439 T PT 96925439T PT 96925439 T PT96925439 T PT 96925439T PT 842495 E PT842495 E PT 842495E
Authority
PT
Portugal
Prior art keywords
image
output
elements
input
sequence
Prior art date
Application number
PT96925439T
Other languages
English (en)
Inventor
Izrail S Gorian
Jie Zhu
Michael C Moed
Original Assignee
United Parcel Service 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 United Parcel Service Inc filed Critical United Parcel Service Inc
Publication of PT842495E publication Critical patent/PT842495E/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof
    • G06T3/606Rotation of whole images or parts thereof by memory addressing or mapping

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Character Input (AREA)
  • Display Devices Of Pinball Game Machines (AREA)
  • Adjustment Of Camera Lenses (AREA)
  • Endoscopes (AREA)

Description

1
Descrição “Rotação de imagens”
Camoo técnico A presente invenção refere-se ao processamento de imagens e, mais particularmente, refere-se a leitores de reconhecimento óptico de caracteres sobre a correia. Especificamente, a presente invenção refere-se a um processo e a um sistema para rodar uma imagem decomposta em elementos de imagem codificada em comprimentos de sequências de elementos de imagem adjacentes iguais.
Fundamento da invenção
Durante anos, usaram-se máquinas para fazer a exploração por varrimento de encomendas enquanto elas se deslocam ao longo de transportador. Recentemente, desenvolveram-se leitores de reconhecimento óptico de caracteres sobre a correia (OCR), os quais podem recolher uma imagem da superfície de uma encomenda, enquanto ela se move ao longo de um transportador, criando depois uma representação da imagem e fazendo o seu processamento. Os componentes físicos fundamentais de um leitor OCR são um sensor, um conversor analógico/digital e um computador que inclui uma memória. Os componentes físicos individuais de um leitor OCR são todos bem conhecidos na técnica, havendo disponíveis no comércio muitas formas de realização alternativas de cada um dos componentes físicos individuais, com custos e características de eficácia diferentes. Fazem-se muitos esforços para encontrar as combinações mais eficientes de componentes para aplicações particulares e no desenvolvimento de programas, lógicos para o computador que processa as imagens criadas por estes equipamentos físicos familiares. ?
Utilizam-se muitas vezes, nos leitores OCR, matrizes de sensores de dispositivos de acoplamento de cargas (CCD). Uma câmara CCD consiste numa matriz de “elementos de imagem” electrónicos, cada um dos quais armazena uma carga, acumulada de acordo com a quantidade de luz que incide no elemento de imagem. Utiliza-se uma câmara CCD para colher rapidamente uma imagem da superfície de uma encomenda que se desloca ao longo do transportador. Converte-se a imagem no formato digital, que pode ser armazenado como um mapa de bits numa memória do computador. A matriz CCD é depois reposta, por dissipação da carga contida nos elementos de imagem, ficando a matriz pronta para colher a imagem de uma outra encomenda ou secção de encomenda. Deste modo, utiliza-se uma câmara CCD única para explorar por varrimento um grande número de encomendas.
Os computadores que podem ser usados para processar as imagens recolhidas por câmaras CCD variam, no que respeita à velocidade de computação e outros parâmetros. Em geral, um computador mais rápido é mais caro que um computador mais lento, um computador com uma grande capacidade de memória é mais caro que um computador com uma menor capacidade de memória e um computador para fms especiais é mais caro que um computador para fins gerais. Há portanto uma motivação financeira para usar comutadores de baixa velocidade, com memória reduzida e para fms gerais, sempre que eles sejam apropriados para um fim particular.
As companhias de distribuição de encomendas, tais como a United Parcel Service (UPS), podem usar extensivamente sistemas leitores OCR. A UPS distribui milhões de encomendas por dia. Se os sistemas leitores OCR fossem usados pelas companhias de distribuição de encomendas, tais como a UPS, eles gerariam uma enorme quantidade de dados para o computador. Por consequência, há a necessidade de sistemas de computador que possam processar de maneira rápida e rigorosa as imagens processadas por câmaras CCD. Por exemplo, desenvolveram-se sistemas de computadores que tentam ler o endereço de destino escrito em certas encomendas, de modo que as encomendas possam ser correctamente encaminhadas para os seus destinos quando o endereço for lido com êxito. A leitura de um texto é uma tarefa sofisticada e os sistemas capazes de o fazer são imensamente sofisticados e podem incluir equipamento caro, tal como computadores de elevada velocidade, com grande capacidade de memória e computadores para fins especiais.
Na medida em que um equipamento mais barato pode realizar tarefas menos sofisticadas num sistema OCR, têm de dedicar-se à leitura de textos equipamentos mais caros. A rotação da imagem de um texto é um exemplo de uma função necessária de um sistema leitor OCR, que pode ser desempenhada com equipamento menos sofisticado que o necessário para a leitura do texto: Há portanto uma motivação financeira para rodar a imagem de um texto utilizando um computador para fins gerais. Analogamente, há iima motivação financeira para armazenar os dados da imagem de um texto num formato comprimido que reduz a memória necessária para armazenar a imagem, para rodar a imagem comprimida e armazenar a imagem rodada num formato comprimido. Há um certo número de técnicos de processamento de imagens bem conhecidas, usadas para recolher e armazenar uma memória de computador uma imagem de uma encomenda enquanto é transportada, por um sistema OCR. Por exemplo, uma “imagem decomposta em elementos de imagem” bidimensional, ou matriz de um mapa de bits que representa uma imagem da superfície da encomenda 4 pode ser recolhida e armazenada na memória de um computador que utiliza uma câmara CCD com exploração de linhas, que inclui uma matriz de elementos de imagem electrónicos uma só linha ou uma pluralidade de linhas operadas sequencialmente. Por exemplo, uma câmara CCD com exploração de linhas com duas matrizes pode operar duas linhas sequencialmente, recolhendo uma das linhas ima imagem, enquanto a outra está a ser descarregada e reposta para colher outra imagem.
Uma coluna do mapa de bits pode ser construída recolhendo uma representação binária dos elementos de imagem de uma matriz CCD de exploração de linhas, que é exposta quando a encomenda passa por baixo da câmara. Pode utilizar-se um conversor analógico/digital (A/D) e memórias tampão para “desviar” a coluna decomposta em elementos de imagem recolhida pela câmara CCD de exploração de linhas, para o mapa de bits. As colunas seguintes da imagem podem ser recolhidas e armazenadas por recolha sequencial de uma coluna da imagem com a câmara CCD, armazenando a coluna e fazendo a reposição da câmara CCD.
Um sistema de coordenadas ortogonais constitui usualmente a base para a matriz do mapa de bits. Assim, o mapa de bits identifica univocamente a posição de cada elemento de imagem da matriz CCD, para cada coluna recolhida. Faz-se notar que uma câmara CCD de exploração de linhas múltiplas ou uma câmara CCD de matriz bidimensional podem também ser usadas para criar imagens de mapas de bits. Note-se também que os mapas de bits a três dimensões ou a maior número de dimensões podem igualmente representar imagens a três ou mais dimensões numa memória de computador e que sistemas de coordenadas polares, ou outros, podem igualmente definir posições dentro da matriz de um mapa de bits. Nota-se também 5 que, armazenando-se valores em vez de bits e/ou armazenando-se uma série de mapas de bits para uma imagem, pode recolher-se e armazenar-se, num formato decomposto em elemento de imagem uma imagem que inclua sombreados ou cores.
No espaço contínuo, as coordenadas de uma imagem rodada são definidas pelas equações de rotação normalizadas seguintes, onde φ é o ângulo de rotação, {x, y} é a coordenada de um elemento de imagem de entrada no plano de entrada e (x’, y’} é a coordenada desse elemento de entrada como é aplicada no plano de saída: 1. x’ = x*cos^) + y*sen^) 2. y’ = x*sen^) - y*cos^)
Uma maneira fácil de compreender, para rodar uma imagem é aplicar cada elemento de imagem de entrada num elemento de imagem de saída utilizando as equações de rotação anteriores. A aplicação dos elementos de imagem de entrada num plano de saída, por meio das equações de rotação anteriores é conhecido como uma aplicação dos elementos de imagem para a frente.
Como as equações de rotação anteriores envolvem operações com vírgula flutuante (por exemplo a multiplicação por um número não inteiro), as coordenadas dos elementos de imagem de saída são geralmente não inteiros. As operações em vírgula flutuante aplicadas a uma imagem digital ou decomposta em elementos de imagem pode produzir erros de arredondamento. Além disso, a aplicação de elementos de imagem para a frente não garante que cada elemento de imagem na imagem de saída terá a sua contrapartida na imagem de entrada. Pode criar-se um buraco na imagem de saída no sítio de um elemento de imagem de saída que não tem nenhum elemento de imagem de entrada correspondente a ele aplicado. Portanto, a aplicação de elementos de imagem para a frente pode provocar “sinais 6 / estranhos”, tais como buracos na imagem de saída. Por exemplo, uma linha contínua de elementos de imagem pretos, tais como um traço contínuo na imagem de um texto, pode surgir depois da rotação como elementos de imagem em falta ou buracos. Os sinais estranhos podem em certa medida ser corrigidos por meio de uma filtração pós-rotação. Porém, a correcção pós-rotação pode ser dispendiosa computativamente, podendo conduzir a resultados insatisfatórios. A aplicação de elementos de imagem para trás é um processo para rodar imagens decompostas em elementos de imagem, sem criar sinais estranhos. A aplicação de elementos de imagem para trás implica a exploração por varrimento da imagem de saída e a determinação de um elemento de imagem único na imagem de entrada para a aplicação de cada elemento de imagem na imagem de saída. Como consequência disso, uma imagem rodada utilizando a aplicação de elementos de imagem para trás não inclui sinais estranhos, porque cada elemento de imagem na imagem de saída corresponde a um elemento de imagem na imagem de entrada.
As técnicas de aplicação de elementos de imagem para trás padecem de certos inconvenientes. Por exemplo, para imagens decompostas em elementos de imagem, nas quais os elementos de imagem se dispõem numa grelha ortogonal, a aplicação dos elementos de imagem para trás pode distorcer as dimensões e/ou a relação de configuração da imagem rodada. Além disso, a aplicação de elementos de imagem para trás é dispendiosa em computação, porque exige que todos os elementos de imagem na imagem de saída, de primeiro plano e plano de fundo, sejam aplicados a partir da imagem de entrada.
As representações de imagens de matnzes de bits decompostas em elementos de imagem exigem grande capacidade de memória, pois é necessário utilizar um bit 7 ou valor para representar cada elemento de imagem. Muitas imagens, em especial imagens de textos a preto e branco, incluem grandes zonas de elementos de imagem semelhantes. Por exemplo, a imagem de um texto inclui geralmente uma imagem de primeiro plano, relativamente pequena, que contém o texto contra um plano de fundo uniforme. Portanto, é vantajoso processar apenas os elementos de imagem do primeiro plano de tais imagens. É convencional, e eficiente relativamente à memória, comprimir uma imagem decomposta em elementos de imagem num formato “codificado em comprimentos de sequências (de elementos de imagens iguais)”. Uma tal codificação de uma imagem decomposta em elementos de imagem pode ser realizada por expressão de cada linha da imagem em termos de uma ou mais sequências. Uma sequência é uma série de elementos de imagem iguais adjacentes. Uma sequência pode ser representada numa tabela, codificada em comprimentos de sequências, por elementos que indicam ou os pontos inicial e final, ou os pontos iniciais e os comprimentos das sequências; os pontos intermédios de uma sequência não têm de ser representados explicitamente na tabela. Para a imagem de um texto, toda a informação na imagem é usualmente incluída na imagem de primeiro plano. Assim, apenas os elementos de imagem do primeiro plano precisam de ser representados na tabela codificada em comprimentos das sequências.
Uma imagem de texto decomposta em elementos de imagem, que inclui linhas de elementos de imagem, pode ser comprimida e armazenada numa tabela codificada de linhas de elementos, correspondendo cada linha da tabela a uma linha da imagem. Apenas as linhas da imagem que incluam um ou mais elementos de imagem do primeiro plano têm de ser representadas por uma linha, na tabela. Os δ elementos de cada linha da tabela definem uma ou mais sequências dentros da linha correspondente, usualmente por identificação dos elementos de imagem inicial e final da sequência. Desta maneira, pode fazer-se uma economia importante de memória, pelo armazenamento de uma imagem de texto decomposta em elementos de imagem no formato codificado por comprimentos das sequências.
Além disso, uma imagem decomposta em elementos de imagem de um objecto que se move, passando por uma câmara CCD de exploração de linhas, como pode ser o caso num sistema OCR, pode ser traduzida para o formato codificado por comprimentos de sequências para armazenamento na memória do computador sem ter de criar ou armazenar uma representação completa do mapa de bits da imagem. Isto é possível porque o sistema OCR cria a imagem decomposta em elementos de imagem, uma coluna de cada vez, deslocando-se de uma borda da imagem à outra. Este “varrimento” da imagem, que pode supor-se feito da esquerda para a direita através da imagem, permite que se crie uma imagem codificada por comprimentos de sequências que inclui sequência que vão da esquerda para a direita, à medida que se realiza a saída das colunas da imagem a partir da memória tampão. Portanto, a imagem é convertida no formato codificado por comprimentos das sequências, para armazenamento na memória do computador, quando a imagem é recolhida pela câmara CCD de exploração de linhas.
Note-se que, por conveniência, as imagens são aqui descritas como sendo criadas e/ou codificadas “da esquerda para a direita”, fazendo-se referência ao “bordo esquerdo da entrada e/ou planos de saída”. Porém, compreender-se-á que poderia usar-se convenientemente, no processo da presente invenção, qualquer sentido de atravessamento da imagem e qualquer borda. 9
Com o sistema atrás descrito, as imagens recolhidas no sistema OCR são micialmente armazenadas no formato codificado em comprimentos das sequências. Recordar que uma imagem recolhida num sistema OCR tem tipicamente de ser rodada antes, de a imagem ser emitida para o leitor de texto. Portanto, há a necessidade de rodar a imagem codificada por comprimentos de sequências. E vantajoso rodar a imagem de entrada codificada por comprimentos das sequências, para obter uma imagem de saída codificada por comprimentos das sequências, sem ter de expandir a imagem para obter uma representação completa decomposta em elementos. Sena também vantajoso rodar uma imagem de entrada codificada por comprimentos das sequências sem criar sinais estranhos na imagem de saída. Seria também vantajoso evitar a distorção, isto é, produzir uma imagem de saída rodada com a relação de configuração correcta.
Cahill et all, patente US 4 792 891, descreve um processo que traduz uma imagem codificada por comprimentos das sequências numa representação codificada por comprimentos das sequências de uma versão rodada da imagem. O processo descrito implica: “(1) estabelecer cada linha de exploração da imagem de entrada como uma série de vectores “visíveis” e “invisíveis”, por comparação de comprimentos de sequências numa linha de exploração corrente, com comprimentos de sequências para uma linha de exploração anterior, (2) determinar informação de transição de cor para uma imagem manipulada ou transformada, de saída, por meio de coeficientes de transformação e armazenar essa informação de transição em caixas da memória, para cáractenzar cada uma das linhas de exploração de saida, e (3) classificar as caixas a partir de uma extremidade da linha de exploração de saida para a outra e construir uma nova imagem codificada por comprimento das 10 sequências, a partir da informação codificada por comprimentos das sequências escolhidas (Cahill, III et al, na coluna 1, linhas 51-61). Os vectores visíveis definem as bordas do primeiro plano de imagem de entrada, enquanto que os vectores invisíveis definem os elementos de imagem do primeiro plano que não estão nas bordas. Ver Cahill et al, na coluna 2, linhas 43-46.
Os vectores visíveis, os que definem os elementos de imagem das bordas do primeiro plano da imagem de entrada, são manipulados por passos, tais como multiplicação por coeficientes que servem para dimensionar, inclinar, rodar ou de outro modo transformar os vários vectores para obter um conjunto diferente de coordenadas X e Y, no plano da grelha de elementos de imagem de saída. Cahill, III et al, na coluna 4, linhas 3-7. Uma vez traduzidos os vectores “visíveis”, o que equivale a fazer a aplicação dos elementos de imagem da imagem de entrada, para a frente, no plano de saída, a classificação dos elementos das linhas da imagem de saída permite codificar a imagem de saída no formato de codificação em comprimentos das sequências. Portanto, Cahill, III et al descreve um processo para rodar uma imagem codificada por comprimentos das sequências no qual apenas os elementos de imagem do primeiro plano da imagem de entrada precisam de ser processados. O processo descrito por Cahill, III et al padece de um certo número de inconvenientes. Em primeiro lugar, baseia-se em operações de vírgula flutuante (isto é, multiplicação por coeficientes) para fazer a aplicação de dados (isto é vectores visíveis). Como atrás se discutiu, as operações em virgula flutuante podem ser dispendiosas computacionalmente e podem produzir sinais estranhos na imagem de saída. O sistema pode também efectuar a aplicação de elementos de imagem para a 11 frente, a partir de um plano de entrada ortogonal num plano de saída ortogonal, sem considerar a redução ou a expansão das sequências de elementos de imagem. Portanto, o sistema pode distorcer a imagem de saída, isto é, pode não produzir uma imagem de saída com a relação de configuração correcta. O sistema exige também um ou mais passos para criar vectores “visíveis” e “invisíveis” e um passo de classificação depois de feita a aplicação dos elementos de imagem das bordas do primeiro plano, para permitir que a imagem de saída seja codificada no formato por comprimentos das sequências.
Hideaki, patente US 4 985 848, descreve um processo para rodar uma imagem decomposta em elementos de imagem, utilizados uma tabela de consulta. Calculam-se de antemão valores, que são armazenados numa tabela para consulta, de cos x, 2.cos x ... max. cos x; e de sen x, 2 sen x ... max. sen x, para cada ângulo x para o qual deve depois efectuar-se uma rotação. Portanto, as aplicações subsequentes de elemento de imagem para elemento de imagem podem ser efectuadas utilizando apenas operações de adição simples e de redução, sem qualquer multiplicação. Hideaki descreve também um processo para corrigir sinais espúrios na imagem de saída. Genericamente descrito, o processo corrige os sinais espúrios na imagem de saída: (1) transformando uma linha de elementos de imagem uma primeira vez, (2) identificando elementos de imagem no interior da linha que são desviados por um pequeno ajustamento do ângulo de rotação e (3) transformando a linha uma segunda vez, a partir de um ponto de referência temporário, que está ligeiramente desfasado do ponto de referência usado para a primeira transformação. Hideaki descreve também um processo de interpolação, no qual se determina a localização de um elemento de imagem de saída por aplicação e 12 interpolação de quatro pontos. O processo descrito por Hideaki enferma de um certo número de inconvenientes. Primeiro, o processo não proporciona a rotação da imagem codificada por comprimentos das sequências. Segundo, embora o processo evite passos de multiplicação em vírgula fixa, computacionalmente dispendiosos, pela utilização de uma tabela de consulta, a aplicação de elementos de imagem utilizando a tabela de consulta produz sinais espúrios na imagem de saída. Terceiro, o processo baseia-se em computações pós-rotação, computacionalmente dispendiosas para corrigir sinais espúrios na imagem de saída, tais como a aplicação de elementos de imagens efectuada duas vezes e interpolação.
Baldwin et al, patente US 4 827 413, descreve um processo para visualizar uma imagem bidimensional de um objecto tridimensional. Baldwin et al descreve a rotação de uma imagem bidimensional, primeiro por codificação da imagem por comprimentos das sequências e depois por transformação da imagem codificada, para um aspecto rotacional diferente. A transformação é feita por multiplicação dos vectores que representam sequências de elementos de imagem que compreende a imagem de entrada, por matrizes de transformação. Para evitar a criação de sinais espúrios na imagem de saída, traça-se um vector duas vezes, tendo o segundo vector um endereço do início ligeiramente desviado do primeiro vector. Os elementos de imagem das bordas são primeiro transformados para um plano de saída, de modo que apenas há que fazer a aplicação dos elementos de imagem do primeiro plano.
Baldwin et al enferma de um certo número de inconvenientes importantes, porque assenta em operações com vírgula flutuante para rodar os vectores e porque é um processo dispendioso computacionalmente, pela aplicação dos vectores por duas 13 vezes, para impedir a criação de sinais espúrios na imagem de saída. Além disso, Baldwin et al não descreve um processo para criar directamente uma imagem de saída no formato codificado por comprimentos das sequências. A 3 DO Company, publicação internacional N° WO 94/10 644, descreve ainda um outro processo para a aplicação de elementos de imagem para a frente (ver em particular as fig. 1 A, 1B e 3 A, bem como a pág. 33, linha 13 à pág. 34, linha 21). A 3 DO Company descreve a projecção duma forma geométrica correspondente e hipotética numa grelha de destino, para cada elemento de imagem da fonte. Depois, os elementos de imagem de destino no interior da forma geométrica são pintados com uma cor derivada do elemento de imagem da fonte correspondente, de acordo com a função de aplicação da cor, na fonte para o destino. Porém, a 3DO Company é um processo computacionalmente dispendioso de projecção de pontos para evitar sinais espúrios na imagem de saída.
Portanto, depois de Cahill, III et al, Hideaki, Baldwin et al e 3DO Company, mantém-se a necessidade de um processo computacionalmente mais eficiente para rodar uma imagem codificada por comprimentos das sequências. Além disso, mantém-se a necessidade de um processo para rodar uma imagem de entrada codificada por comprimento das sequências para produzir uma imagem de saída codificada por comprimentos das sequências, sem criar sinais espúrios na imagem de saída, sem se basear em operações em vírgula fixa, sem ter de criar uma representação, decomposta em elementos de imagem, completa das imagens de entrada ou de saída, pela qual se produza uma imagem de saída com a relação de configuração correcta. Há portanto uma grande necessidade de um processo e um sistema 14 aperfeiçoados para rodar uma imagem codificada por comprimentos das sequências que possam ser usados em ligação com leitores sobre a correía ou OCR. Em particular, há uma grande necessidade de um sistema de rotação que possa processar rapidamente um número suficientemente grande de imagens, de modo que o sistema possa ser usado como parte integrante de um sistema de manipulação de encomendas automático, usado na indústria de distribuição de encomendas.
Seria vantajoso que um tal sistema incluísse um certo número de vantagens importantes, incluindo: (1)- a utilização de componentes de baixo custo, tais como uma câmara CCD de exploração de linhas, monocromática, e um computador para fins gerais; (2) capacidade para rodar uma imagem sem depender de operações em vírgula flutuante; (3) capacidade para rodar uma imagem por processamento de apenas os elementos de imagem do primeiro plano, (4) capacidade para evitar a criação de sinais espúrios na imagem de saída; (5) capacidade para rodar uma imagem de entrada codificada por comprimentos, das sequências, para obter uma 1 imagem de saída codificada por comprimentos de sequências, sem ter de criar ou armazenar uma representação completa das imagens de entrada e de saída decompostas em elementos de imagem; (6) capacidade para rodar uma imagem de entrada codificada por comprimentos das sequências para obter uma imagem de saída codificada por comprimentos das sequências, com a relação de configuração correcta; e (7) capacidade para criar uma imagem codificada por comprimentos das sequências sem ter de classificar elementos de imagem depois de terem sido aplicados para a imagem de saída.
Sumário da invenção A presente invenção satisfaz os objectivos anteriores, proporcionando um sistema e um processo para rodar imagens codificadas por comprimentos das sequências. O processo da invenção utiliza uma técnica de aplicação de elementos de imagem para trás* para a aplicação de sequências de elementos de imagem de saída, a partir de uma imagem de entrada, de modo a evitar a criação de buracos ou sinais espúrios na imagem de saída. O processo da invenção estabelece a escala de sequências de saída, aplicadas para preservar a relação de configuração da imagem rodada, e escolhe a ordem pela qual se processam os elementos da tabela de entrada codificada por comprimentos das sequências, de modo a criar directamente uma tabela de saída codificada por comprimentos das sequências. O processo da invenção inclui um algoritmo de computador, de elevada velocidade, para rodar imagens armazenadas numa memória do computador, por exemplo as recolhidas por uma matriz CCD. O algoritmo traduz uma imagem de entrada codificada por comprimentos das sequências numa imagem de saída codificada por comprimentos das sequências, que é uma versão rodada da imagem de entrada. As vantagens primárias da invenção são, a maior velocidade, a maior precisão e a menor necessidade de capacidade de memória, em comparação com os processos de rotação anteriores. A presente invenção proporciona um sistema de elevada precisão e de custo reduzido para a rotação de imagens decompostas em elementos de imagem, que pode ser implementado num minicomputador para fins gerais. De acordo com a presente invenção, as imagens decompostas em elementos de imagem podem ser rodadas processando apenas os elementos de imagem do primeiro plano da imagem, sem se basear em operações em vírgula flutuante, e sem criar sinais espúrios na imagem de saída. A presente invenção proporciona ainda um sistema de rotação para 16
imagens decompostas em elementos de imagem com a capacidade de obter uma imagem de saída com a relação de configuração correcta e sem ter de classificar elementos de imagem depois de terem sido aplicados na imagem de saída.
Descrita de uma maneira geral, a presente invenção consiste num processo e um sistema para obter dados de imagem de saída, que representam uma imagem de saída, a partir de dados de imagem de entrada, que representam uma imagem de entrada, sendo, quer a imagem de saída, quer a imagem de entrada, representadas por linhas de elementos de imagem, sendo a imagem de saída uma versão rodada da imagem de entrada, e incluindo os dados de imagem de entrada linhas de elementos. Os passos do processo da invenção incluem a selecçâo de um quadrante de rotação, a selecçâo de um ângulo de rotação de um conjunto de ângulos de rotação pré-definido, em resposta ao ângulo de rotação, a recuperação de uma sequência de aplicação de elementos de imagem pré-definida, para aplicar elementos de imagem de entrada a elementos de imagem da imagem de saída; em resposta ao quadrante de rotação, a selecçâo de uma ordem das linhas pela qual se lêem as linhas dos dados da imagem de entrada e uma ordem dos elementos pela qual se lêem os elementos de cada linha dos dados da imagem de entrada; e fazer a aplicação dos dados da imagem de entrada nos dados da imagem de saída por ordem das linhas e, dentro de cada linha, por ordem dos elementos, de acordo com a sequência de aplicação dos elementos de imagem.
Faz-se notar que a presente invenção não se limita à utilização com imagens codificadas por comprimentos das sequências. Mais especificamente, os elementos no interior das fiadas dos dados da imagem de entrada podem corresponder a elementos de imagem da imagem de entrada, ou podem definir sequências do primeiro plano da imagem de entrada, ou podem representar a imagem de entrada de outra maneira. Analogamente, os dados da imagem de saída podem corresponder a elementos de imagem da imagem de saída, ou podem definir sequências do primeiro plano da imagem de saída ou representar de outro modo a imagem de saída. Por exemplo, a presente invenção pode ser usada para fazer a aplicação de dados de entrada da imagem decomposta em elementos de imagem em dados de saída de imagem decomposta em elementos de imagem, como for requerido para a rotação em tempo real de imagens no ecrã. Analogamente, a presente invenção pode ser usada para fazer a aplicação de uma imagem de entrada codificada em comprimentos das sequências a uma imagem de saída decomposta em elementos de imagem, ou para fazer a aplicação de uma imagem de entrada decomposta em elementos de imagem a uma imagem de saída codificada por comprimentos das sequências. A forma de realização preferida da presente invenção proporciona um processo e um sistema para obter uma imagem de saída codificada por comprimentos das sequências definida por uma ou mais sequências de saída de uma imagem de entrada codificada por comprimentos das sequências, definida por uma ou mais sequências de entrada, representando a imagem de saída codificada por comprimentos das sequências uma imagem de saída que compreende linhas de elementos de imagens, e sendo a imagem de saída uma versão rodada da imagem de entrada. A imagem de entrada codificada por comprimentos das sequências inclui fiadas de elementos nas quais cada fiada corresponde a uma linha da imagem de entrada e a imagem de saída codificada por comprimentos das sequências inclui fiadas de elementos correspondendo cada fiada a uma linha da imagem de saída. 18
De acordo com um aspecto da forma de realização preferida, a imagem de entrada, codificada por comprimento das sequências, é processada em resposta ao quadrante de rotação, por ordem das fiadas e, dentro de cada fiada, por ordem dos elementos. O passo de processamento inclui a determinação da localização na imagem de entrada dos elementos de imagem de uma sequência de entrada e a aplicação dos elementos de imagem da sequência de entrada na imagem de saída, de acordo com a sequência de aplicação dos elementos de imagem. A determinação da localização da imagem de saída dos elementos de imagem das sequências de entrada inclui, em resposta ao ângulo de rotação, a determinação de uma ou mais localizações de elementos de imagem pré-definidos na imagem de saída correspondente a uma borda da imagem de entrada; e a determinação da localização de um elemento de imagem da imagem de entrada no plano de saída, em relação à localização de um ou mais elementos de imagem da borda no plano de saída.
De acordo com outro aspecto da presente invenção, o passo de determinação da localização de um elemento de imagem de entrada no plano de saída compreende a aplicação, para trás, de elementos de imagem, para impedir a criação de buracos ou sinais espúrios na imagem de saída.
De acordo com um outro aspecto da forma de realização preferida, constrói--se uma imagem de saída codificada por comprimentos das sequências. Os elementos de acordo com a invenção incluem, depois do processamento dos elementos que definem cada uma das sequências de entrada e antes do processamento dos elementos que definem uma sequência de entrada subsequente, o aumento de uma imagem de saída codificada por comprimentos das sequências, de modo a construir incrementalmente a imagem de saída codificada por comprimentos 19 19
das sequências. O passo de aumento da imagem de saída codificada por comprimentos das sequências inclui a referência à imagem de entrada, para determinar se cada um dos elementos de imagem aplicados na imagem de saída está situado adjacente a um elemento de imagem anteriormente aplicado, na mesma linha da imagem de saída, e se um elemento de imagem aplicado está localizado adjacente a um elemento de imagem anteriormente aplicado na mesma linha da imagem de saída, a adição do elemento de imagem aplicado a uma sequência de saída que inclui o elemento de imagem anteriormente aplicado; e, se um elemento de imagem aplicado não estiver localizado adjacente a um elemento de imagem anteriormente aplicado, na mesma linha da imagem de saída, a definição de uma nova sequência de saída, que começa com o elemento de imagem aplicado.
De acordo com um outro aspecto da forma de realização preferida, as sequências de saída são dimensionadas para restaurar a relação de configuração da imagem rodada. Os passos de acordo com a invenção incluem, em resposta ao ângulo de rotação, a recuperação de um factor de escala pré-definido e o dimensionamento, à escala, das sequências de saída, pelo factor de escala. De preferência, para um ângulo de rotação φ, o factor de escala é igual a l/cos^.
A forma de realização preferida é desenvolvida especificamente para ser utilizada como parte integrante de um sistema de leitor OCR sobre a correia, para a exploração de encomendas por varrimento. O sistema de rotação utiliza componentes de baixo custo, que incluem uma câmara CCD do tipo de exploração de linhas, nomocromática, um controlador de vídeo normalizado, um conversor A/D de oito bits, normalizado, e um computador para fins gerais que inclui uma memória tampão de saída por ordem de chegada (FIFO), e uma memória para fins gerais. O 20 sistema OCR explora uma encomenda por varrimento enquanto ela se desloca ao longo de um transportador adjacente, determina a posição e a orientação do endereço fixado na encomenda, roda o endereço, utilizando o processo da invenção, e depois passa a imagem rodada para um leitor de texto.
Embora a forma de realização preferida da presente invenção seja apresentada no contexto de um leitor OCR, os especialistas compreenderão que os princípios da presente invenção podem ser aplicados virtualmente a qualquer tipo de sistema de rotação de imagens decompostas em elementos de imagem. Que a presente invenção e as suas formas de realização preferidas são um aperfeiçoamento, relativamente aos inconvenientes da técnica anterior, e atingem os objectivos da invenção apresentados, será evidente a partir da descrição que se segue de formas de realização preferidas. Outros objectos e vantagens da presente invenção podem tomar-se evidentes a partir de uma revisão da descrição de pormenor seguinte, de formas de realização preferidas, das reivindicações anexas e dos desenhos.
Breve descrição dos desenhos
As figuras dos desenhos representam: A fig. 1, um esquema de um sistema de reconhecimento óptico de caracteres (OCR), que proporciona o ambiente da forma de realização da presente invenção; A fig. 2, que consiste nas fig. 2 A-B, um esquema que ilustra o processamento de imagem efectuado pelo sistema OCR; A fig. 3, um fluxograma lógico que ilustra o processamento de imagem efectuado pelo sistema OCR; A fíg. 4, que consiste nas fig. 4A-C, um fluxograma lógico que ilustra o processo preferido para a prática da presente invenção; 21 A fíg. 5, que consiste nas fig. 5A-B, uma imagem decomposta em elementos de imagem e uma tabela codificada por comprimentos das sequências, correspondente à imagem; A fíg. 6, um processo para determinar a ordem por que se lê uma tabela codificada por comprimentos das sequências, em resposta a um quadrante de rotação, A fíg. 7, que consiste nas fíg. 7A-E, a rotação de uma sequência de entrada de vários ângulos com tangentes racionais; A fíg. 8, que consiste nas fig. 8A-B, uma sequência de elementos de imagem para criar sequências de saída de uma imagem de entrada, para um ângulo de rotação de 2,63°; A fig. 9, que consiste nas fig. 9A-B, ilustra a aplicação dos elementos de imagem das bordas do plano de entrada, para um plano de saída, para um ângulo de rotação de 26,3°; A fig. 10, que consiste nas fig. 10A-B, ilustra uma técnica de aplicação de elementos de imagem, para trás, para aplicação de sequências de saída intermediárias a partir de uma imagem de entrada, e A fig. 11, que consiste nas fig. 11A-B, o dimensionamento à escala de sequências de saída intermédias para produzir uma imagem de saída final.
Descrição das formas de realização preferidas
Fazendo agora referência aos desenhos, nos quais os mesmos números se referem aos mesmos elementos, nas várias vistas, a fig. 1 representa um sistema (10) leitor de reconhecimento óptico de caracteres (OCR) sobre a correia, incluindo o sistema uma forma de realização preferida da presente invenção. O sistema OCR inclui um transportador (12), no qual está a ser transportada a encomenda (14). A encomenda (14) leva um bloco de endereço (16), no qual está escrito o endereço de destino (representado pela palavra “Texto” na fig. 1, mas representado como um endereço na fig. 2). A fonte luminosa (18), em ligação com o reflector (20), ilumina a encomenda (14) enquanto ela é transportada através do campo de vista da câmara CCD (22), que recolhe uma imagem da superfície da encomenda (14), que inclui o bloco de endereço (16). A câmara CCD (22) é de preferência uma câmara monocromática, do tipo de exploração de linhas, de 4 096 elementos de imagem, tal como uma câmara que utiliza um circuito integrado Kodak KLI-5001 CCD. A câmara (22) está montada de modo a ter um trajecto óptico de cerca de 249 cm (98”) até ao transportador (12), com um campo de vista de 40,64 cm (16”) no transportador. O transportador (12) pode transportar cerca de 3 600 encomendas por hora e pode deslocar-se com a velocidade de 30,5 m/minuto (100 pés por minuto). A câmara CCD (22) está posicionada a cerca de 63,5 cm (25”) acima do centro do transportador (12) e pode estar apontada para um primeiro espelho (não representado), que pode estar orientado para um segundo espelho (não representado), que pode estar orientado para o transportador (12), de modo que o trajecto óptico da câmara CCD (22) para o transportador seja 249 cm (98”). Estes parâmetros podem variar um pouco sem afectar indevidamente a eficácia da presente invenção. Os especialistas compreenderão que podem usar-se sistemas de espelhos para aumentar o comprimento do trajecto óptico de um sistema da câmara, permitindo no entanto uma distância física menor entre a câmara e o trajecto cuja imagem quer recolher-se. Ver, por exemplo, Smith et al, patente US 5 308 960. Ver também a patente de 23 propriedade comum US 5 485 263, “Optical Path Equalizer”, depositada em 19 de Agosto de 1994, dos invetores Johannes A. S. Bjomer a Steven U. Smith. O controlador/conversor (24) inclui um controlador de vídeo normalizado, que controla a velocidade de exploração por varrimento da câmara CCD (22). O controlador/conversor (24) cria também, e transfere para o computador (26), uma imagem decomposta em elementos de imagem, tal como é recolhida pela câmara CCD (22). O computador (26), que pode ser um computador para fins gerais de baixo custo, utiliza então o programa (30) para rodar a imagem, e transfere a imagem rodada para o leitor de textos (22). Os passos do processo de acordo com a invenção, que se descrevem mais pormenorizadamente mais adiante, são realizados pelo computador (26), sob o controlo do programa (30). O controlador/conversor (24) inclui um conversor A/D de oito bits, normalizado. A câmara CCD (22) emite uma série de elementos da imagem analógica para o controlador/conversor (24), que converte os sinais analógicos numa representação da imagem, numa escala de cinzentos, digital, de oito bits, que é depois emitida para o computador (26), onde é armazenada na forma de um mapa de elementos de imagem. O mapa de elementos de imagem na escala de cinzentos é sujeita a um limitar para produzir uma representação da imagem na forma de um mapa de bits binário. O codificador da correia (34) proporciona um sinal que indica a velocidade do transportador (12) ao controlador/conversor (24). Armazena-se um mapa de bits, com uma relação de configuração (isto é, a relação entre o comprimento e a largura da imagem) correcta, por sincronização da velocidade da câmara CCD (22) com a velocidade do transportador OCR (12).
Como se mostra na fig. 2A, o texto (17) pode estar orientado segundo um /1 24 certo ângulo, relativamente ao sistema de coordenadas (36) do leitor representado na fig. 2 A. Uma vez determinada a situação e a orientação do texto (17), ele é rodado, no computador (26), de acordo com o programa (30) do computador, de modo que o texto (17’) fica orientado apropriadamente para o leitor de texto (32), como se mostra na fig. 2B. O leitor de texto pode então ainda processar a imagem do texto por leitura e reconhecimento do texto. Ao cnar a imagem rodada (17) do texto, o programa (30) do computador aumenta as dimensões e preserva a relação de configuração da imagem original (17) do texto. O programa (30) do computador também impede a criação de sinais espúrios na imagem rodada (17’) do texto. A fig. 3 é um fluxograma lógico do processamento da imagem efectuado pelo sistema OCR (10). Como mostra a fig. 3, o programa (30) do computador é implementado num estádio intermédio do sistema OCR (10). Antes de o programa (30) do computador ser implementado, lê-se uma série de imagens de linhas que vêm do conversor/controlador (24), as quais são associadas num mapa de elementos de imagem, no passo (27). Os especialistas compreenderão que pode utilizar-se um conversor/controlador (24), que compreende um conversor A/D e um processador de vídeo que controla uma câmara CCD da exploração de linhas (22), uma memória tampão FIFO e uma memória para fins gerais, para produzir e controlar a relação de configuração de uma imagem bidimensional de computador, de um objecto (14) que se move passando pela câmara, ao longo de uma correia transportadora, quando provida de um sinal proveniente de um codificador (34) da correia, que indica a velocidade da correia transportadora. Ver, por exemplo, Shah et al, patente US 5 291 564.
No passo (28), determina-se o ângulo de rotação do texto (17), relativamente ao sistema de coordenadas OCR (36). O processo e o sistema preferidos para o passo (28) estão descritos em Morton et al, patente US 5 642 422, “Method for Locating the Position and Orientation of a Fiduciary Mark”, depositada em 10 de Abril de 1995, inventores James Stephen Morton and James Vincent Recktenwalt. Como aí se descreve, pode usar-se um segundo sistema de câmara CCD (não representado), para executar o passo (28). Deve notar-se que o codificador (34) da correia pode fornecer um sinal que indica a velocidade do transportador (12) ao segundo sistema de câmara CCD. Os dois sistemas de câmara CCD podem então ser sincronizados no funcionamento do sistema OCR (10). Deste modo, o sistema que compreende a câmara (22) pode ser usado para ler e rodar o texto (17) no interior de uma área pré-determinada de interesse, na superfície da encomenda (14), tendo a área de interesse e o ângulo de rotação sido determinados previamente pelo segundo sistema de câmara CCD.
No passo (29) limita-se o mapa de elementos de imagem por um limiar para produzir uma representação do mapa de bits da imagem, que é codificado e armazenado no formato codificado por comprimentos das sequências. O processo e o sistema preferidos para produzir uma representação do mapa de bits de uma imagem, a partir de um mapa de elementos de imagem na escala de cinzentos, de oito bits, está descrito no pedido de patente PCT publicado, pendente. “Method and Apparatus for Separating Foreground ffom Background in Images Containing Text”, Publicação internacional N° WO 96/25 114, registada em 24 de Abril de 1997, requerente United Parcel Service of America, publicado em 8 de Agosto de 1996. O programa (30) do computador roda então a imagem de entrada, codificada por comprimentos de sequências, criando uma imagem de saída codificada em 26 comprimentos das sequências, que é enviada para o leitor de textos (32). Os especialistas compreenderão que serão apropriadas para a prática da presente invenção muitas combinações diferentes de equipamentos. Existem muitos substitutos disponíveis no mercado, todos com custos um pouco diferentes e características de eficácia diferentes, para cada um dos componentes físicos atrás listados. Por exemplo, o computador (26) poderia ser um equipamento com lógica cablada, reconfigurável, um circuito integrado para esta aplicação específica (ASIC) ou alguns outros meios equivalentes para a implementação de um conjunto de instruções. A fig. 4, que inclui as fíg. 4A, 4B e 4C, representa um fluxograma lógico para o programa (30) do computador, um processo para a produção de uma imagem de saída, codificada em comprimento das sequências, de uma imagem de entrada codificada em comprimento das sequências, sendo a imagem de saída uma versão rodada da imagem de entrada. A fig. 5, que inclui as fig. 5A e 5B, mostra uma imagem de entrada simples que será rodada para ilustrar o funcionamento do programa (30) do computador. A fig. 5 A representa uma imagem de elementos de imagem (52), um quadrado de 3 por 3 elementos de imagem, no interior de um plano de imagem de entrada (53). A imagem (52) de elementos de imagem compreende três linhas de elementos de imagem de primeiro plano (54a, 54b, 54c). Os elementos de imagem na linha (54a) estão marcados com (A), (B) e (C); os elementos de imagem na linha (54b) estão marcados com (D), (E) e (F) e os elementos de imagem na linha (54c) estão marcados com (G), (H) e (I). Compreender-se-á que os elementos de imagem (A) a (C), (D) a (F) e (G) a (I) formam três sequências, que constituem a imagem de 27
ê entrada (52). Os elementos de imagem das bordas do plano de imagem de entrada (53) estão numerados de 1 a 25, sendo 1 a 10 os elementos de imagem ao longo da borda esquerda do plano (53) e 11 a 25 os elementos de imagem ao longo da borda superior. Portanto, os elementos de imagem 1 a 10 designam linhas do plano de v. imagem de entrada, enquanto que os elementos de imagem 11 a 25 designam colunas. A fig. 5B representa uma tabela (56), codificada em comprimento das sequências, correspondente à imagem de entrada (52). A tabela codificada em comprimento das sequências inclui linhas de elementos (57a, 57b, 57c). Cada linha corresponde a uma linha de elementos de imagem e os elementos dentro de cada linha definem uma ou mais sequências de elementos, na imagem não codificada. Por exemplo, a linha 1 da tabela (56) tem o elemento “4” sob o cabeçalho “coluna” e os elementos “14, 16” sob o cabeçalho “sequências”. Os elementos sob o cabeçalho “sequências” designam os pontos de início e de fim de uma sequência, na linha correspondente. Portanto a linha (1) da tabela (56) define a sequência “A a C” na linha (54a) da imagem de entrada, que tem elementos de imagem nas colunas 14 a 16 da linha 4. As linhas 2 e 3 da tabela (56) definem analogamente as sequências “D a F” e “G a I” da imagem de entrada (52), respectivamente.
Fazendo agora referência às fig. 2, 4A e 6, o programa (30) primeiramente identifica um quadrante de rotação, no passo (60). O quadrante de rotação corresponde ao ângulo do texto (17), relativamente ao sistema de coordenadas OCR (36). Os ângulos entre zero e 90 graus estão no quadrante I; ângulos entre 90 graus e 180 graus estão no quadrante II; ângulos entre 180 a 270 graus estão no quadrante III; ângulos entre 270 graus e 360 graus estão no quadrante IV. Por exemplo, com ζ 28 / ΰ / referência à fig. 2A, o ângulo do texto (17) está no quadrante IV, relativamente ao sistema de coordenadas OCR;
Com base no quadrante de rotação, escolhe-se, como se mostra na fig. 6, a ordem (62) para o processamento das linhas e dos elementos, em cada linha da tabela de entrada (52) codificada em comprimento das sequências. Para o texto no quadrante I, Iêem-se as linhas de cima para baixo e as sequências, dentro de cada linha, são lidas da esquerda para a direita; para o texto no quadrante II, as linhas são lidas de cima para baixo e as sequências dentro de cada linha são lidas da direita para a esquerda; para o texto no quadrante III, as linhas são lidas de baixo para cima e as sequências dentro de cada linha da direita para a esquerda; para o texto no quadrante IV, as linhas são lidas de baixo para cima e as sequências dentro de cada linha são lidas da esquerda para a direita. A ordem (62) define, quer a ordem de processamento das linhas (como se indica pela sequência “1, 2, 3” antes das setas representadas na fig. 6), quer numa ordem dos elementos para processar os elementos no interior de cada linha (como se indica pelo sentido das setas representadas na fig. 6). Escolhendo-se assim a ordem para o processamento da tabela de entrada codificada em comprimento das sequências, o processo da patente de invenção assegura que a criação da imagem de saída “varrerá” o plano de saída da esquerda para a direita. Por exemplo, compreender-se-á que a aplicação dos elementos de imagem da imagem de entrada (52) pela ordem (62) representada na fig. 6 para o quadrante I fará com que a imagem seja aplicada, da esquerda para a direita, sem rotação. Analogamente, compreender-se-á que a aplicação dos elementos de imagem de entrada (52) pela ordem (62’) representada na fig. 6 para o quadrante III fará com que a imagem seja aplicada da esquerda para a direita, com 180° de rotação. A aplicação das colunas dos elementos de imagem de entrada pela ordem (62’) provocará assim uma versão rodada de 180° da imagem de entrada, para fazer o “varrimento” da esquerda para a direita através do plano de saída.
Compreender-se-á que uma imagem pode ser convertida directamente para um formato codificado por comprimento das sequências a partir de uma série de linhas e colunas, desde que “varra através” da imagem. Além disso, como será explicado mais adiante, a técnica de aplicação de elementos de imagem para trás, no programa (30) do computador, exige que os elementos de imagem sejam aplicados de modo a fazer o varrimento da esquerda para a direita através do plano de saída. Portanto, compreender-se-á que, mediante uma selecção apropriada da ordem (62) para o processamento dos elementos de imagem da imagem de entrada, é possível criar uma imagem de saída codificada em comprimento de sequências, usando a aplicação dos elementos de imagem para trás directamente dos elementos de imagem da imagem de entrada enquanto estão a ser aplicados, sem ter de criar ou armazenar uma representação completa, decomposta em elementos de imagem, das imagens de entrada e de saída.
Fazendo agora referência às fig. 4A e 7, no passo seguinte (70), escolhe-se um ângulo de rotação a partir de um conjunto pré-definido de ângulos de rotação. Cada ângulo no conjunto pré-definido tem uma tangente racional. A tangente de um ângulo pode conceber-se como sendo a sua “elevação” sobre a sua “extensão”. Portanto, a marcação de pontos de uma linha com o ângulo φ, num plano de coordenadas . ortogonais, pode fazer-se começando num ponto no plano de coordenadas e seguindo a “elevação” e a “extensão” da tangente do ângulo φ, de 30 ponto para ponto, ao longo da linha.
Um ângulo com uma tangente racional tem uma tangente que pode ser expressa por uma relação entre a “elevação” e a “extensão”, sendo a “elevação” e a “extensão” números inteiros. Portanto, qualquer linha que possa ser traçada num plano de coordenadas com uma sequência que possa ser descrita como “para cima A - horizontalmente B”, onde A e B são números inteiros, tem em uma tangente racional. Assim, a aplicação de uma linha com um ângulo igual a zero num plano de coordenadas de entrada, para uma linha num plano de coordenadas de saída, devendo a linha no plano de saída ser traçada segundo um ângulo que tem uma tangente racional igual a A dividido por B, pode ser realizada determinando um ponto de partida no plano de saída e depois indo “para cima A - horizontalmente B” para traçar a linha no plano de saída. Compreender-se-á que podem usar-se processos mais complexos para nos aproximarmos de uma linha no espaço contínua, em formato decomposto em elementos de imagem.
Verifica-se que numa imagem codificada em comprimentos das sequências, cada sequência no plano de entrada (isto é uma sequência de entrada) é um segmento de recta, segundo um ângulo igual a zero no plano de coordenadas de entrada. Portanto, a rotação de uma sequência de entrada pela sua aplicação de um plano de entrada para um plano de saída, como se mostra na fig. 7, pode ser feita determinando um ponto de partida para a sequência no plano de saída e depois seguindo uma sequência de aplicação de elementos de imagem no plano de saída definida pela “elevação” e a “extensão” da tangente do ângulo de rotação. O passo (70) utiliza um conjunto pré-definido de ângulos de rotação com tangentes racionais, como ângulos de rotação para rodar imagens de entrada. Para 31 Δ cada ângulo de rotação, armazena-se uma sequência de aplicação de elementos de imagem, definida pela “elevação” e a “extensão” da tangente. Faz-se depois a aplicação das sequências de entrada para a imagem de saída de acordo com a sequência de aplicação de elementos de imagem pré-determinados. Faz-se notar que essa sequência de aplicação de elementos de imagem define relações entre elementos de imagem, num espaço de amplitude (por exemplo um plano de entrada) e os elementos de imagem correspondentes num espaço de domínio (por exemplo um plano de saída). Faz-se também notar que “aplicar um elemento de imagem”, como é aqui usado, significa “determinar a situação de um elemento de imagem num espaço de domínio, com base na situação de um elemento de imagem correspondente num espaço de amplitude”. É importante notar que “fazer a aplicação de um elemento de imagem”, tal como aqui se entende, não conota ou exige explicitamente a criação de uma imagem, decomposta em elementos de imagem em qualquer dos espaços de amplitude ou de domínio. De facto, o processo da presente invenção utiliza uma “sequência de aplicação de elementos de “imagem” para criar uma imagem de saída codificada em comprimentos de sequências, que é uma versão rodada de uma imagem de entrada codificada em comprimentos de sequências, sem criar ou armazenar uma representação completa, decomposta em elementos de imagem, da imagem de saída ou da imagem de entrada.
Por exemplo, a fig. 7 representa a aplicação de uma sequência (72) no plano de entrada (73), para o plano de saída (76), para vários ângulos de rotação com tangentes racionais. A fig. 7A ilustra o mapa de elementos de imagem (74) para rodar uma sequência (72) de uma grelha (73) da imagem de entrada, de um ângulo φ com uma tangente igual a 1/2 (isto é, φ = 26,3°). A fig. 7A representa a sequência (72) na grelha (73) da imagem de entrada, enquanto que a fig. 7B representa a aplicação de elementos de imagem (74), para a linha rodada, na grelha da imagem de saída (76). Como se representa na fig. 7B, pode traçar-se uma linha (78), segundo um ângulo φ no plano de saída, marcando pontos definidos pela “elevação” e a “extensão” da tangente de φ. Especificamente, a linha (78) pode ser construída marcando um ponto na origem da grelha (76) e depois andando ”um para cima” e “um para o lado” e marcando o ponto seguinte, e assim por diante. Como se mostra na fig. 7B, a aplicação de elementos de imagem (74) segue o ângulo φ, no plano de saída. A fig. 7B mostra a sequência (79) de aplicação de elementos de imagem que corresponde à aplicação dos elementos de imagem da sequência (72), da esquerda para a direita. A fig. 7C ilustra a aplicação de elementos de imagem (74’) para rodar a sequência (72), de um ângulo φ com a tangente racional igual a 1/3 (isto é, φ = 18,4°). A fig. 7D ilustra a aplicação de elementos de imagem (74”) para rodar a sequência (72) de um ângulo φ cuja tangente é igual a 2/3 (isto é, φ = 33,6°). A fig. 7E ilustra a aplicação dos elementos de imagem (74”), para rodar a sequência (72) de um ângulo φ cuja tangente é igual a 1 (isto é, φ =45°). Compreender-se-á que, para um plano de elementos de imagem maior (isto é, um plano de elementos de imagem com uma maior definição) podem construir-se aplicações de elementos de imagem adicionais, para ângulos adicionais com tangentes racionais.
Fazendo agora referência às fig. 7A e 8, no passo seguinte (80), recupera-se a partir da memória, informação pré-definida associada com o ângulo de rotação escolhido. A informação pré-defimda inclui uma lista encadeada, que define a 33 ripe: sequência de aplicação dos elementos de imagem para processar os elementos da imagem de entrada na imagem de saída. A fig. 8 ilustra a sequência de aplicação (82) de elementos de imagem para a aplicação de elementos de imagem do plano de entrada, numa sequência (84) no plano de saída, para um ângulo de rotação φ = 26,3°. Faz-se notar que tem de ter-se o cuidado de garantir que uma sequência de aplicação de elementos de imagem, quando aplicada para criar sequências sucessivas da imagem de saída, cobre todos os elementos de imagem da imagem de entrada. Compreender-se-á que, se a sequência de aplicação de elementos de imagem começar no mesmo na lista encadeada, no bordo esquerdo da imagem de entrada, todos os elementos de imagem da imagem de entrada serão cobertos por sequências sucessivas de aplicações dos elementos de imagem. Por outras palavras, a lista encadeada tem de estar “sincronizada nos bordos” quando aplicada a elementos de imagem particulares no plano de entrada. Voltando à fig. 7, é evidente que a sincronização dos bordos dos ângulos de rotação ilustrados nas fig. 7C, 7D e 7E garantirão analogamente que a sequência de aplicação de elementos de imagem, quando aplicada para criar sequências sucessivas da imagem de saída, cobrirá todos os elementos da imagem de entrada.
Como se discute mais adiante, as sequências da imagem de saída serão dimensionadas à escala, por 1/cos2 φ, para preservar a relação de configuração da imagem de saída. Portanto, computa-se previamente o valor de 1/cos2 φ, para cada ângulo de rotação, e armazena-se para ser recuperado durante o passo (80). Por exemplo, o valor de 1/cos2 φ = 26,3, é 1,25. Este valor será usado como factor de escala para as sequências da imagem de saída, quando o ângulo de rotação for φ = 34 26,3°
Fazendo agora referência às fig. 4A e 9, no passo seguinte (90), computam-se as dimensões da nova imagem. A fig. 9 representa a aplicação dos elementos de imagem (92) superior e da esquerda a partir do plano de entrada, representado na fig. 9A, num plano de saída, representado na fig. 9B, para um ângulo de rotação φ = 2,63°. Como se mostra na fig. 9, o plano de saída exige mais linhas que o plano de entrada. Compreender-se-á que o número adicional de linhas é igual à largura da imagem de entrada vezes tg φ, menos um, se não houver resto na divisão. De preferência, a nova altura é determinada directamente a partir da sequência de aplicação dos elementos de imagem, para o ângulo φ e a largura da imagem de entrada. No passo (94), definem-se matrizes que são inicializados para armazenar os resultados intermédios e a imagem de saída final.
Fazendo agora referência às fig. 3A, 4B e 6, em primeiro lugar o programa (30) entre num ciclo, definido pelos passos (96 a (210), no qual se processa sequencialmente cada um dos elementos de imagem, por ordem de linhas e por ordem dos elementos determinados, no passo (60), como se representa na fig. 6. No passo (96), o programa (30) obtém a sequência seguinte, por ordem das linhas e por ordem dos elementos. No passo (97), descodifica-se a tabela codificada em comprimentos das sequências, para determinar a localização dos elementos de imagem que constituem a sequência no plano de entrada. No passo (98), aplica-se o primeiro elemento de imagem da sequência, por ordem dos elementos, no plano de saída. Na rotina (100), utiliza-se o elemento de imagem para aumentar uma imagem de saída codificada por comprimentos das sequências. O processo para aplicar o elemento de imagem no plano de saída e aumentar a imagem de saída codificada em 35 comprimentos das sequências está descrita, mais particularmente, mais adiante, com referência à rotina (100), na fig. 10. No passo (200), determina-se se há um outro elemento de imagem na sequência correntemente processada. Se a resposta for “sim”, segue-se o ramo SIM para regressar ao passo (98), processando-se o elemento de imagem seguinte na sequência, por ordem dos elementos. Se a resposta for “não”, segue-se o ramo NÃO, para o passo (210), no qual se determina se há outra sequência na imagem de entrada. Se a resposta for “sim”, segue-se o ramo SIM, regressando ao passo (96) e processa-se a sequência seguinte, por ordem dos elementos e por ordem das linhas. Se a resposta for “não”, segue-se o ramo NÃO, para o passo (220), no qual se determinam os pontos de início e de fim das sequências de saída, ficando o programa (30) concluído. A determinação dos pontos extremos é descrita mais particularmente mais adiante, com referência à rotina (100) e à fig. 11. Deve notar-se que as sequências de saída podem ser dimensionadas todas no fim do processamento dos elementos de imagem, como se mostra na fig. 4C, ou, em alternativa, podem dimensionar-se individualmente as sequências, à medida que se completam.
Fazendo agora referência às fig. 4C e 9, a fig. 4C representa os passos da rotina (100), para a aplicação de elementos de imagem no plano de saída e o aumento da imagem de saída codificada em comprimento das sequências. Para aplicar uma sequência de entrada numa séne de localizações de elementos de imagem num plano de saída, é necessário um ponto de partida no plano de saída, bem como uma sequência da aplicação dos elementos de imagem. A rotina (100) localiza o ponto de partida para a aplicação de uma sequência de entrada, fazendo em primeiro lugar a aplicação de um ou mais bordos (por exemplo o bordo esquerdo 36 e o bordo superior) do plano de entrada, no plano de saída. No passo (101), determinam-se as localizações, no plano de saída (92’) dos elementos de imagem dos bordos do plano de entrada (92). A fig. 9 ilustra a aplicação dos elementos de imagem do bordo do plano de entrada, no plano de saída, para um ângulo de rotação φ = 26,3°.
Faz-se notar que a forma de realização preferida da presente invenção utiliza um sistema de coordenadas ortogonal e planos de entrada e de saída rectangulares. O bordo da esquerda do plano de entrada é portanto uma linha recta vertical e o bordo superior é uma linha horizontal. Recordar que a lista encadeada da sequência de elementos de imagem recuperada no passo (80) proporcionou a “elevação” e a “extensão” para a aplicação de uma linha horizontal (por exemplo uma sequência de entrada) do plano de entrada para o plano de saída. Como se ilustra na fig. 9B, uma linha vertical no plano de entrada pode também ser aplicada no plano de saída, utilizando a “elevação” e a “extensão” para a aplicação de uma linha horizontal, comutando “elevação” e “extensão”. Por exemplo, como se mostra na fig. 9B, a sequência de elementos de imagem para a aplicação do bordo superior é “um para cima - dois para o lado” e a sequência de aplicação dos elementos de imagem para a aplicação do bordo da esquerda é “um para cima-dois para o lado”. Assim um único elemento de imagem do bordo aplicado no plano de saída permite que todo o bordo seja aplicado facilmente. Deve notar-se que não é necessário fazer a aplicação de todos os elementos do bordo para o plano de saída. É necessário fazer a aplicação de apenas os elementos de imagem de linhas com elementos de imagem de primeiro plano (isto é, linhas do plano de entrada com linhas correspondentes na tabela codificada em comprimentos das sequências da imagem de entrada). 37
Utilizando um elemento de imagem de canto, que serve como ponto de rotação para efectuar a rotação, obtém-se um processo para a aplicação do bordo do plano de entrada, sem ter de armazenar quaisquer localizações pré-determinadas de aplicação dos elementos de imagem. Um elemento de imagem de canto pode ser considerado como tendo os mesmos valores das coordenadas, tanto no plano de entrada como no plano de saída, embora as coordenadas do plano de saída sejam temporárias. Pode então aplicar-se um bordo do plano de entrada no plano de saída utilizando a sequência de ampliação dos elementos de imagem e o elemento de imagem de canto. Os números das linhas do plano de saída podem depois ser alterados, uma vez determinada a dimensão do plano de saída. Por exemplo, o elemento de imagem com o número “1” proporciona um elemento de imagem de canto, centro de rotação, na fig. 9.
Fazendo agora referência às fig. 4C, 8 e 10, no passo (102), utiliza-se a sequência de elementos de imagem para determinar a linha em que o elemento de imagem ocorre no plano de saída. Como mostra a fig. 10A, a linha de saída é determinada começando com a localização do elemento de imagem no plano de entrada (52) e seguindo a sequência inversa dos elementos de imagem (103), para trás, para um elemento de imagem do bordo. Recordar que o trajecto da aplicação dos elementos de imagem na imagem de entrada corresponde a uma sequência horizontal na imagem de saída, como se mostra na fig. 8. O número de passos necessários para ir do elemento de imagem a um elemento de imagem do bordo (isto é, a “distância dos elementos de imagem”) é então usada para localizar o elemento de imagem no plano de saída. Especificamente, o elemento de imagem é situado no plano de saída, começando no local do elemento de imagem do bordo no plano de 38 saída e deslocando-se horizontalmente da “distância dos elementos de imagem” correcta (103’).
No passo (104), determina-se se o elemento de imagem que está a ser aplicado está situado adjacente a um elemento de imagem aplicado anteriormente na mesma sequência de saída. Isso pode ser determinado directamente a partir da sequência de aplicação de elementos de imagem inversa. Especificamente, isso pode ser determinado por referência ao plano de entrada, a partir da localização do elemento de imagem que está a ser aplicado, um passo a seguir à sequência inversa de elementos de imagem, e determinando se há um elemento de imagem de primeiro plano nessa localização. Se a resposta for “não”, segue-se o ramo NÃO, para o passo (106), no qual o elemento de imagem é usado para definir o ponto de início de uma sequência na imagem de saída. Se a resposta for “sim”, segue-se o ramo SIM, para o passo (107), no qual o elemento de imagem é adicionado à sequência estabelecida anteriormente, que inclui o elemento de imagem adjacente. A seguir ao passo (107), a rotina (100) retoma ao passo (220) na fig. 4B.
Notar que, sincronizando-se os bordos das sequências inversas de elementos de imagem (103), todos os elementos de imagem da imagem de entrada são aplicados, para trás, ao longo de um trajecto único. Esta técnica de aplicação inversa dos elementos de imagem permite que a conectividade de elementos de imagem, nas sequências de saída, seja determinada com referência à imagem de entrada, garantindo assim que cada elemento de imagem se aplica para apenas uma sequência na imagem de saída. A criação de buracos ou sinais espúrios na imagem de saída é desse modo evitada pelo processo da invenção.
Notar também que as sequências da imagem de saída são construídas por 39 *7 referência à imagem de entrada, utilizando a sequência de aplicação inversa dos elementos de imagem. Especificamente, adiciona-se um elemento de imagem a uma sequência de saída se o passo anterior na sequência de elementos de imagem inversa apontar para um elemento de imagem do primeiro plano. Para criar directamente a tabela de saída codifica por comprimentos das sequências, é necessário que o elemento de imagem anterior tenha sido previamente introduzido na tabela de saída codificada por comprimentos das sequências. Compreender-se-á que todos os ângulos de rotação de 0o a 90° têm sequências de aplicação inversa de elementos de imagem que apontam para cima e para a esquerda. Portanto, seleccionando a ordem para a leitura da tabela de entrada codificada por comprimentos das sequências, para efectuar a rotação para um quadrante diferente (isto é, de modo a fazer com que a imagem de saída “deslize” da esquerda para a direita, como se descreve com referência à fig. 6) permite-se a construção directa das sequências de saída utilizando a técmca de aplicação inversa dos elementos de imagem descrita pela rotina (100). A técnica de aplicação inversa dos elementos de imagem descrita pela rotina (100) será melhor compreendida seguindo os passos necessários para aplicar a imagem de entrada simples (52), para uma imagem intermédia (52') que é rodada de φ = 26,3°, como se ilustra na fig. 10. Fazendo referência à fig. 10A, o ponto “A” é aplicado inversamente, no plano de entrada, ao elemento de imagem do bordo “3”, a uma distância de elementos de imagem igual a 4, como se ilustra pela sequência inversa de elementos de imagem (103a). Com referência à fig. 10B, o elemento de imagem “A” é depois situado no plano de saída a partir do elemento de imagem do bordo “3” aplicado, e indo horizontalmente numa distância de 4 elementos de imagem, como se ilustra pela sequência de aplicação dos elementos de imagem 40 (103a’). A partir da sequência de aplicação inversa do elemento de imagem (103a) determina-se que o elemento de imagem” A” não é adjacente a um elemento de imagem aplicado anteriormente numa sequência de saída. Assim, o elemento de imagem “A” define o elemento de imagem inicial de uma sequência na linha (10) da imagem de saída.
Fazendo agora referência à fig. 10A, o elemento de imagem “B” é a seguir aplicado inversamente no plano de entrada, no elemento de imagem do bordo (3), a uma distância de 5 elementos de imagem, como se ilustra pela sequência inversa de elementos de imagem (103a), aumentada com um passo do elemento de imagem “A” para o elemento de imagem “B”. Com referência à fig. 10B, o elemento de imagem “B” é então colocado no plano de saída, partindo do elemento de imagem do bordo ”3” aplicado, e indo horizontalmente, numa distância de 5 elementos de imagem. A partir da sequência de aplicação inversa do elemento de imagem (103a) determina-se que o elemento de imagem “B” está colocado adjacente a um elemento de imagem aplicado, anteriormente, numa sequência de saída (isto é, o elemento de imagem “A”). Portanto, o elemento de imagem “B” é adicionado à sequência estabelecida anteriormente, na linha (10) da imagem de saída (isto é, formando a sequência parcial de A para B na imagem de saída). Notar que a construção directa da sequência exige que o elemento de imagem “A” tenha sido previamente registado na sequência. Para ângulos de rotação maiores que 90°, isso é assegurado escolhendo a ordem para a leitura da tabela codificada por comprimentos de sequências, como se descreveu com referência à fig. 6.
Com referência à fig. 10A, o elemento de imagem “C” é a seguir aplicado inversamente no plano de entrada, no elemento de imagem “2” do bordo, a uma 41
/ distância de 6 elementos de imagem, como se ilustra pela sequência inversa de elementos de imagem (103b). Com referência à fig. 10B, o elemento de imagem “C” é depois colocado no plano de saída, partindo do elemento “2” do bordo aplicado e indo horizontalmente numa distância de 6 elementos de imagem, como se ilustra pela sequência de aplicação do elemento de imagem (103b’). A partir da sequência de aplicação inversa do elemento de imagem (103 b), determina-se que o elemento de imagem “C” não é adjacente a um elemento de imagem aplicado anteriormente, numa sequência de saída. Portanto, o ponto “C” define o ponto inicial de uma sequência, na linha (9) da imagem de saída.
Com referência à fig. 10A, o elemento de imagem “D” é depois aplicado inversamente, no plano de entrada, ao elemento “4” do bordo a uma distância de 4 elementos de imagem, como se ilustra pela sequência inversa do elemento de imagem (103c). Com referência à fig. 10B, o elemento de imagem “D” é depois situado no plano de saída, partindo do elemento “4” do bordo aplicado e indo horizontalmente, a uma distância de 4 elementos de imagem, como se ilustra pela sequência de aplicação do elemento de imagem (103c’). A partir da sequência de aplicação inversa do elemento de imagem (103 c) determina-se que o elemento de imagem “D” não é adjacente a um elemento de imagem anteriormente aplicado numa sequência de saída. Portanto, o ponto “D” define o ponto inicial de uma sequência, na linha (11) da imagem de saída.
Com referência à fig. 10A, o elemento de imagem “E” é a seguir aplicado inversamente no plano de entrada no elemento de imagem “4” do bordo, a uma distância de 5 elementos de imagem, como se ilustra pela sequência inversa de elementos de imagem (103c), aumentado com um passo a partir do elemento de 42 imagem “D” para o elemento de imagem “E” Com referência à fig. 10B, o elemento de imagem “E” é depois situado no plano de saída, partindo do elemento de imagem “4” do bordo aplicado e indo horizontalmente na distância de 5 elementos de imagem, a partir da sequência de aplicação inversa do elemento de imagem (103c), determina-se que o elemento de imagem “E” está colocado adjacente a um elemento de imagem anteriormente aplicado numa sequência de saída (isto é, o elemento de imagem “D”). Portanto, o elemento de imagem “E” é adicionado à sequência estabelecida anteriormente na linha (11) da imagem de saída (isto é, formando a sequência parcial de D para E, na imagem intermédia). Notar que a construção directa da sequência exige que o elemento de imagem “D” tenha sido previamente registado na sequência.
Com referência à fig. 10A, o elemento de imagem “F” é a seguir aplicado inversamente, no plano de entrada, no elemento de imagem “3” do bordo, a uma distância de 6 elementos de imagem, como se ilustra pela sequência inversa dos elementos de imagem (103 a), aumentada com um passo do elemento de imagem “A” para o elemento de imagem “B” e um segundo passo de “B” para “F” Com referência à fig. 10B, situa-se então o elemento “F” no plano de saída, partindo do elemento de imagem “3” do bordo aplicado e indo horizontalmente, numa distância de 6 elementos de imagem. A partir da sequência inversa dos elementos de imagem (103a), determina-se que o elemento de imagem “F” está situado adjacente a um elemento de imagem aplicado anteriormente numa sequência de saída (isto é, o elemento de imagem “B”). Portanto, o elemento de imagem “F” é adicionado à sequência anteriormente estabelecida, na linha (10) da imagem de saída (isto é, formando agora a sequência “A” a “F” na imagem de saída). Notar que a construção 43 directa da sequência exige que os elementos de imagem “A” e “B” tenham sido anteriormente registados na sequência.
Com referência à fíg. 10A, o elemento de imagem “G” é a seguir aplicado inversamente, no plano de entrada no elemento de imagem “5” do bordo, a uma distância de 4 elementos de imagem, como se ilustra pela sequência inversa de elementos de imagem (103d). Com referência à fig. 10B, o elemento de imagem “G” é depois situado no plano de saída, começando no elemento “5” da borda aplicado, e indo horizontalmente, na distância de 4 elementos de imagem, como se ilustra pela sequência de aplicação de elementos de imagem (103d’). A partir da sequência (103d) de aplicação inversa de elementos de imagem, determina-se que o elemento de imagem “G” não é adjacente a um elemento de imagem aplicado anteriormente, numa sequência de saída. Portanto, o ponto “G” define o início de uma sequência, na linha (12) da imagem de saída.
Com referência à fig. 1OA, o elemento de imagem “H” é em seguida aplicado inversamente no plano de entrada no elemento de imagem “5” do bordo, a uma distância de 5 elementos de imagem, como se ilustra pela sequência inversa de elementos de imagem (103d), aumentado com um passo do elemento de imagem “G” para o elemento de imagem “H”. Com referência à fig. 10B, o elemento de imagem “H” é depois situado no plano de saída começando no elemento de imagem “5” do bordo aplicado e indo horizontalmente, na distância de 5 elementos de imagem. Da sequência de aplicação inversa de elementos de imagem (103d), determina-se que o elemento de imagem “H” se situa adjacente a um elemento aplicado anteriormente, numa sequência de saída (isto é, o elemento de imagem “G”). Portanto, o elemento de imagem “H” é adicionado à sequência estabelecida 44 anteriormente na linha 12 da imagem de saída (isto é, formando agora a sequência G a H na imagem de saída). Notar que a construção directa da sequência exige que o elemento de imagem “G” tenha sido anteriormente registado na sequência.
Finalmente, com referência à fig. 10A, o elemento de imagem “I” é em seguida aplicado no plano de entrada, no elemento de imagem “4” do bordo, a uma distância de 6 elementos de imagem, como se ilustra pela sequência inversa de elementos de imagem (103c), aumentada com um passo, do elemento de imagem CCD” para o elemento de imagem “E”, e um segundo passo de “E” para “I”. Com referência à fig. 10B, o elemento de imagem “I” é depois situado no plano de saída, começando no elemento de imagem “4” do bordo aplicado, à distância de 4 elementos de imagem e indo horizontalmente, na distância de 6 elementos de imagem. Da sequência de aplicação inversa de elementos de imagem (103c), determina-se que o elemento de imagem “I” é situado adjacente a um elemento de imagem aplicado anteriormente, numa sequência de saída (isto é, o elemento de imagem “E”)· Assim, o elemento de imagem “I” é adicionado à sequência estabelecida anteriormente, na linha 11 da imagem de saída (isto é, formando agora a sequência de D a I na imagem de saída). Notar que a construção directa da sequência exige que os elementos de imagem “D” e “E” tenham sido anteriormente registados na sequência.
No passo final (220), cria-se a imagem de saída final, determinando os pontos inicial e final da imagem intermédia por meio do factor de escala, de preferência 1/cos2 φ. Esta redução à escala é necessária, na forma de realização preferida da presente invenção, porque a imagem decomposta em elementos de imagem recolhida pelo sistema de acordo com a invenção pode imaginar-se como 45 45
sendo colocada numa grelha ortogonal bidimensional, com um elemento de imagem situado em cada intersecção das linhas de grelhas. Portanto, os elementos de imagem são colocados num padrão de quadrados, com um elemento de imagem em cada vértice do quadrado. Nota-se que a distância diagonal através de um quadrado é maior que o lado do quadrado. Especificamente, a distância entre elementos de imagem na direcção de uma diagonal é a raiz quadrada de dois vezes maior que na direcção ao longo do lado. Portanto, a rotação de uma imagem, com a utilização da sequência de aplicação dos elementos de imagem atrás descrita, provocaria uma distorção da relação de configuração da imagem rodada.
Por exemplo, rodando-se um segmento de recta, com o comprimento de cinco elementos de imagem, de 0o para 45°, faz-se com que o comprimento do segmento aumente, sendo multiplicado pela raiz quadrada de dois. Isto é evidente porque cinco quadrados alinhados vértices com vértice criam um segmento maior que cinco quadrados alinhados lado-a-lado. Assim, o segmento de recta rodado que inclui cinco elementos de imagem alinhados diagonalmente aparecerão como sendo aproximadamente iguais a sete segmentos alinhados lado-a-lado. Analogamente, rodando um segmento de 45° para zero graus faz-se com que o comprimento do segmento seja reduzido na relação de raiz quadrada de dois.
Em geral, a aplicação de elementos de imagem, de um plano de entrada ~da grelha ortogonal para um plano de saída da grelha ortogonal, provoca a distorção da relação de configuração da imagem rodada. Mais especificamente, rodando um segmento de 0° para um ângulo φ aumenta o comprimento da linha, na proporção do maior dos valores: inverso de cos φ ou inverso de sen φ. Analogamente, a rotação de um segmento de um ângulo φ para um segmento horizontal reduz o comprimento do 46
segmento pelo maior dos valores, cos φ ou sen φ. Compreender-se-á que a rotação de uma imagem no interior de um quadrante pode fazer-se rodando uma imagem de um ângulo entre 0o e 45° e depois adicionando ou subtraindo um múltiplo de 90°, como for necessário. Portanto apenas há que considerar ângulos com cos φ maior que sen φ.
Consideremos a aplicação de uma imagem, decomposta em elementos de imagem, de um plano de imagem de entrada para um plano de imagem de saída, estando cada um dos planos colocado numa grelha ortogonal e realizando a aplicação uma rotação de um ângulo φ entre zero e 45°. Notar que uma linha horizontal no plano de saída é aplicada a partir de uma linha com o ângulo -φ no plano de entrada, como se mostra na fig. 8. Portanto, uma linha no plano de saída com o ângulo φ é aplicada a partir de uma linha horizontal na imagem de entrada como se mostra na fig. 7. Portanto, uma linha com o ângulo φ na imagem de saída é aumentada em comprimento, proporcionalmente ao inverso de cos φ. Portanto, compreender-se-á que uma imagem decomposta em elementos de imagem aplicada do plano de entrada para o plano de saída será simultaneamente reduzida por cos φ, na direcção horizontal, e aumentada pelo inverso de cos φ, ao longo de uma linha segundo o ângulo φ.
Recordar que o processo da presente invenção é usado para aplicar imagens codificadas em comprimentos das sequências e que as sequências são segmentos de recta horizontais dos elementos de imagem de primeiro plano. Compreender-se-á portanto que a aplicação de elementos de imagem para rodar uma imagem de entrada de um ângulo φ faz com que as sequência de saída tenham o seu 47 comprimento reduzido proporcionalmente a cos <j>, enquanto que as linhas com um ângulo φ na imagem de saída (isto é, sequências de entrada) são ampliadas em proporção com o inverso de cos φ. Por consequência, o passo (220) do processo da invenção põe à escala (isto é, amplia) as sequências de saída na proporção de cos2 φ, para restaurar o aspecto de configuração da imagem de saída. O passo (220), para o exemplo atrás descrito, que roda a imagem (52) de φ = 26,3°, está ilustrado na fig. 11. Compreender-se-á que o factor de escala, 1/cos2 φ para φ = 26,3° é 1,25. A fig. 11A mostra a computação da distância, em elementos de imagem, para cada ponto inicial e final da imagem intermédia. A fig. 11B mostra a imagem de saída final (52”), formada por redução à escala das sequências aplicadas no plano de saída.
Nota-se que o factor de escala é determinado pela configuração geométrica da grelha de elementos de imagem de entrada, que é determinada pela disposição física dos elementos de imagem na câmara CCD (22) e pelo funcionamento do controlador/conversor (24). Por exemplo, numa forma de realização alternativa da presente invenção, o passo da redução à escala é desnecessário porque a câmara CCD (22) e o funcionamento do controlador/conversor são concebidos de modo a produzir uma grelha de elementos de entrada na qual cada elemento de entrada fica equidistante de todos os elementos de entrada adjacentes. Nota-se que esta modificação tem como resultado o facto de a grelha de elementos de imagem de entrada serem dispostos, num padrão hexagonal, em vez de um padrão quadrado, como na forma de realização atrás descrita.

Claims (18)

1 Reivindicações 1. Processo (30) para a obtenção de dados de imagem de saída, que representam uma imagem de saída (52”) a partir de dados de entrada que representam uma imagem de entrada (52), representando cada uma das imagens de saída e de entrada linhas de elementos de imagem, sendo a imagem de saída uma versão rodada da imagem de entrada, compreendendo os dados de imagem de entrada linhas de elementos, definindo os elementos de imagem da imagem de entrada, o qual compreende os passos de: escolha de um quadrante de rotação (passo (60)), escolha de um ângulo de rotação de um conjunto pré-determmado de ângulos de rotação (passo (70)); em resposta ao referido ângulo de rotação, recuperação de uma sequência pré-definida de aplicações de elementos de imagem, para a aplicação de elementos de imagem da imagem de entrada em elementos de imagem da imagem de saída (passo (80)); em resposta ao referido quadrante de rotação, escolha de uma ordem das linhas pela qual se lêem as linhas dos dados da imagem de entrada (passo (96)); em resposta ao referido quadrante de rotação, escolha de uma ordem dos elementos, pela qual se lêem os elementos de cada linha de dados de imagem de entrada (passa (97)); e aplicação dos dados de imagem de entrada nos dados da imagem de saída, pela referida ordem das linhas e, dentro de cada linha, pela referida ordem dos elementos, de acordo com a referida sequência de aplicação dos elementos de imagem (passo (98). 2 2
2. Processo de acordo com a reivindicação 1, no qual o referido passo de aplicação compreende a aplicação inversa dos elementos de imagem e no qual: cada elemento define um elemento de imagem individual da imagem de entrada; ou conjuntos de elementos definem sequências de elementos de imagem da imagem de entrada.
3. Processo de acordo com a reivindicação 1, no qual as fiadas de dados da imagem de entrada correspondem a linhas da imagem de entrada e no qual os elementos de dados da imagem de entrada correspondem a elementos de imagem da imagem de entrada, compreendendo além disso o passo de, depois da aplicação dos elementos de imagem no interior de cada linha da imagem de entrada, e antes da aplicação dos elementos de imagem no interior de uma linha subsequente da imagem de entrada, o aumento de uma imagem de saída codificada em comprimentos das sequências de elementos de imagem adjacentes iguais, que compreende uma ou mais sequências de saída, de modo a construir incrementalmente a imagem de saída codificada em comprimentos das sequências (passo 100).
4. Processo de acordo com a reivindicação 3, no qual o referido passo de aumento de uma imagem de saída codificada em comprimentos das sequências compreende os passos de (passo 100): determinação de, se cada um dos elementos de imagem aplicados na imagem de saída está colocado adjacente a um elemento de imagem aplicado anteriormente na mesma linha da imagem de saída; se um elemento de imagem aplicado estiver situado adjacente a um elemento 3 de imagem aplicado anteriormente na mesma linha da imagem de saída, adição do elemento de imagem aplicado a uma sequência de saída que compreende o elemento de imagem aplicado anteriormente; e se um elemento de imagem aplicado não estiver situado adjacente a um elemento de imagem aplicado anteriormente na mesma linha da imagem de saída, definição de uma nova sequência de saída, que começa com elemento de imagem aplicado.
5. Processo de acordo com a reivindicação 4, que compreende além disso os passos de (passo (220)), em resposta ao referido ângulo de rotação, recuperar um factor de escala pré--definido e reduzir à escala sequências de saída, pelo referido factor de escala.
6. Processo de acordo com a reivindicação 1, no qual cada linha de dados da imagem de entrada corresponde a uma linha da imagem de entrada, e no qual os elementos no interior de uma linha de dados da imagem de entrada definem uma ou mais sequências de entrada, compreendendo além disso o passo de, depois da aplicação dos elementos de imagem que definem cada sequência de entrada e antes da aplicação de elementos de imagem que definem uma sequência de entrada subsequente, aumento de uma imagem de saída codificada em comprimentos das sequências que compreende uma ou mais sequências de saída, de modo a construir incrementalmente a imagem de saída codificada em comprimentos de sequências (passo (100)).
7. Processo de acordo com a reivindicação 6, no qual, o referido passo de aumento de uma imagem de saída codificada em comprimentos das sequências compreende os passo de (passo (100): 4 4
determinação de se cada um dos elementos de imagem aplicados na imagem de saída está situado adjacente a um elemento de imagem anteriormente aplicado, na mesma linha da imagem de saída; se um elemento de imagem aplicado está situado adjacente a um elemento de imagem anteriormente aplicado na mesma linha da imagem de saída, adição do elemento de imagem aplicado a uma sequência de saída que compreende o elemento de imagem anteriormente aplicado; e se um elemento de imagem aplicado não estiver situado adjacente a um elemento de imagem aplicado na mesma linha da imagem de saída, definição de uma nova sequência de saída, que começa no elemento de imagem aplicado.
8. Processo de acordo com a reivindicação 7, que compreende além disso os passos de (passo (220)): em resposta ao referido ângulo de rotação, recuperação de um factor de escala pré-definido; e redução à escala das sequências de saída pelo referido factor de escala.
9. Processo de acordo com a reivindicação 8, no qual o referido passo de aplicação compreende a aplicação inversa de elementos de imagem.
10. Processo (30) para a obtenção de uma imagem de saída codificada em comprimentos das sequências, que compreende uma ou mais sequências de saída, a partir de uma imagem de entrada (56) codificada em comprimento das sequências, que compreende uma ou mais sequências de entrada (57a-c), representando a imagem de saída codificada em comprimentos das sequências uma imagem de saída, que compreende linhas de elementos de imagem, representando a imagem de entrada codificada em comprimentos de sequências uma imagem de entrada que 5
compreende linhas de elementos de imagem (54a-c), sendo a imagem de saída (52”) uma versão rodada da imagem de entrada, compreendendo a imagem de entrada codificada em comprimentos das sequências linhas de elementos, correspondendo cada linha a uma linha da imagem de entrada, compreendendo a imagem de saída codificada em comprimentos de sequências linhas de elementos, correspondente cada linha a uma linha da imagem de saída e definindo os elementos, elementos de imagem da imagem de entrada, compreendendo os passos de: escolha de um quadrante de rotação (passo (60)); escolha de um ângulo de rotação de um conjunto pré-definido de ângulos de rotação (passo (70)); em resposta ao referido ângulo de rotação, recuperação de uma sequência pré-definida da aplicação dos elementos de imagem, para aplicação de elementos de imagem da imagem de entrada em elementos de imagem da imagem de saída (passo (80)); em resposta ao referido quadrante de rotação, escolha de uma ordem das linhas, pela qual se devem as linhas da imagem de entrada codificada em comprimentos das sequências (passo (96)); em resposta ao referido quadrante de rotação, escolha de uma ordem dos elementos pela qual se devem ser os elementos de cada linha da imagem de entrada codificada em comprimentos de sequências (passo (97)); e processamento dos elementos da imagem de entrada codificada em comprimentos de sequências pela referida ordem das linhas e, dentro de cada linha, pela referida ordem dos elementos (passo (98)).
11. Processo de acordo com a reivindicação 10, no qual o referido passo 6
$ de processamento compreende a aplicação inversa de elementos de imagem e no qual': ou cada elemento define um elemento de imagem individual da imagem de entrada; ou conjuntos de elementos definem sequências de elementos de imagem da imagem de saída.
12. Processo de acordo com a reivindicação 10, no qual o referido passo de processamento compreende os passos de. determinação da situação, na imagem de entrada, dos elementos de imagem que constituem uma sequência da entrada; e a aplicação de elementos de imagem que constituem a sequência de entrada para a imagem de saída, de acordo com a referida sequência de aplicação dos elementos de imagem.
13. Processo de acordo com a reivindicação 12, no qual: cada linha da imagem de entrada compreende um primeiro elemento de imagem da linha; o primeiro elemento de imagem, de cada uma de uma pluralidade de linhas consecutivas da imagem de entrada, define.uma primeira coluna da imagem; a primeira coluna da imagem de entrada define um bordo da imagem de entrada; e o passo de determinação da situação na imagem de saída dos elementos de imagem que compreendem as sequências de entrada, compreendem os passos de, em resposta ao referido ângulo de rotação, determinação das localizações dos elementos de imagem na imagem de saída correspondentes ao bordo, e 7 a determinação da localização dos elementos de imagem de entrada na imagem de saída, em relação à localização dos elementos de imagem na imagem de saída correspondente ao bordo.
14. Processo de acordo com a reivindicação 13, no qual o referido passo de determinação da localização dos elementos de imagem de entrada na imagem de saída compreende uma aplicação inversa dos elementos de imagem.
15. Processo de acordo .com a reivindicação 14, que compreende além disso o passo de, depois de processar os elementos que definem cada sequência de entrada e antes de processar os elementos que definem uma sequência de entrada subsequente, aumento da imagem de saída codificada por comprimentos das sequências de modo a construir incrementalmente a imagem de saída codificada em comprimentos das sequências (passo (100).
16. Processo de acordo com a reivindicação 15, no qual o referido passo de aumento da imagem codificada em comprimentos das sequências compreende os passos de (passo (100)): determinação de, se cada elemento de imagem aplicado na imagem de saída está situado adjacente a um elemento de imagem aplicado anteriormente, na mesma linha da imagem de saída; se um elemento de imagem aplicado estiver situado adjacente a um elemento de imagem aplicado anteriormente na mesma linha da imagem de saída, adição do elemento de imagem aplicado a uma sequência de saída que compreende o elemento de imagem anteriormente aplicado; e se um elemento de imagem aplicado não está situado adjacente a um elemento de imagem aplicado anteriormente, na mesma linha da imagem de saída. 8 definição de uma nova sequência de saída que começa com o elemento de imagem aplicado.
17. Processo de acordo com a reivindicação 16, no qual o referido passo de determinação de se cada elemento de imagem aplicado à imagem de saida está situado adjacente a um elemento de imagem aplicado anteriormente, na mesma linha da imagem de saída, compreende a aplicação inversa de elementos de imagem.
18. Processo de acordo com a reivindicação 17, que compreende ainda os passos de: em resposta ao referido ângulo de rotação, recuperação de um factor de escala pré-definido; e redução à escala das sequências de saída pelo referido factor de escala (passo (220)). Lisboa, 14 de Junho de 2000 O Agente Oficia! da Propriedade Industrial
ÂftTíQNíO L. hy Rua de Miguel Lup/l, 16,'r/o 12GQ USBQA 1 1
ψ Resumo “Rotação de imagens” O processo e o sistema da invenção incluem um algoritmo de computador, de alta velocidade (30), para a rotação de imagens armazenadas numa memória de um computador (26), tais como as recolhidas por uma câmara CCD (22). A presente invenção é utilizável com um leitor (10) de reconhecimento óptico de caracteres sobre a correia (OCR), que recolhe uma imagem decomposta em elementos de imagem da superfície de uma encomenda (14), enquanto ela se desloca ao longo de um transportador (12). A forma de realização preferida proporciona um processo e um sistema para a obtenção de uma imagem de saída, codificada em comprimentos das sequências (de elementos de imagem adjacentes iguais), a partir de uma imagem de entrada codificada em comprimentos das sequências de elementos de imagem iguais, sendo a imagem de saída (17’) uma versão rodada da imagem de entrada (17). Utiliza-se uma sequência pré-definida de aplicação de elementos de imagem para obter um ângulo de rotação com uma tangente racional, para aplicar dados de elementos de imagem. Fazendo a aplicação dos dados de elementos de imagem da imagem utilizando uma sequência pré-definida para aplicar os elementos de imagem permite a rotação sem computações em vírgula flutuante e permite utilizar uma técnica de aplicação inversa dos elementos de imagem para aplicar os comprimentos de elementos adjacentes iguais a partir de uma imagem de entrada a fim de evitar a criação de vazios ou sinais estranhos na imagem de saída. O processo da invenção reduz à escala as sequências de elementos de imagem de saída para preservar a relação de configuração da imagem rodada. O processo da invenção escolhe a ordem em que se processam os elementos da tabela de entrada dos comprimentos de elementos de imagem adjacentes iguais de entrada, de modo a criar directamente uma tabela de saída codificada em comprimento das sequências de elementos de imagem adjacentes iguais. Fig. 2A e 2B
Lisboa, 14 de Junho de 2000
Rua de Miguel Lupi, 16, r/C 1200 LISBOA
PT96925439T 1995-07-25 1996-07-24 Rotacao de imagens PT842495E (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/507,793 US5581635A (en) 1995-07-25 1995-07-25 Method and system for fast rotation of run-length encoded images

Publications (1)

Publication Number Publication Date
PT842495E true PT842495E (pt) 2000-09-29

Family

ID=24020164

Family Applications (1)

Application Number Title Priority Date Filing Date
PT96925439T PT842495E (pt) 1995-07-25 1996-07-24 Rotacao de imagens

Country Status (11)

Country Link
US (1) US5581635A (pt)
EP (1) EP0842495B1 (pt)
JP (1) JP3005296B2 (pt)
AT (1) ATE191093T1 (pt)
CA (1) CA2227289C (pt)
DE (1) DE69607355T2 (pt)
DK (1) DK0842495T3 (pt)
ES (1) ES2146406T3 (pt)
GR (1) GR3033609T3 (pt)
PT (1) PT842495E (pt)
WO (1) WO1997005573A1 (pt)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5814802A (en) * 1996-02-23 1998-09-29 Accu-Sort Systems, Inc. High speed imaging apparatus for CCD based scanners
US5867612A (en) * 1996-03-27 1999-02-02 Xerox Corporation Method and apparatus for the fast scaling of an image
IL118137A (en) * 1996-05-03 2000-06-29 Scitex Corp Ltd Digital raster converter
US5986658A (en) * 1997-01-31 1999-11-16 Hewlett-Packard Co. Method and apparatus for raster computer graphics display of rotation invariant line styles
US6000612A (en) * 1997-10-10 1999-12-14 Metanetics Corporation Portable data collection device having optical character recognition
US6298166B1 (en) * 1998-03-30 2001-10-02 Seiko Epson Corporation Image transformations in the compressed domain
US6490376B1 (en) 1998-09-17 2002-12-03 Metrologic Instruments, Inc. Skew processing of raster scan images
US6310986B2 (en) 1998-12-03 2001-10-30 Oak Technology, Inc. Image rotation assist circuitry and method
US6381371B1 (en) 1999-03-17 2002-04-30 Hewlett-Packard Company Method and apparatus for processing image files
KR100350854B1 (ko) * 2001-04-13 2002-09-05 주식회사옌트 이진 영상 회전 시스템 및 그 방법
US6819803B2 (en) * 2001-07-02 2004-11-16 International Business Machines Corporation Faster lossless rotation of JPEG images
US20030038993A1 (en) * 2001-08-24 2003-02-27 Jen-Shou Tseng Automatic document-scanning method for scanner
US20080013069A1 (en) * 2006-07-07 2008-01-17 Lockheed Martin Corporation Synchronization of strobed illumination with line scanning of camera
US20080019563A1 (en) * 2006-07-07 2008-01-24 Goodwin Mark D Mail processing system with low resolution UV imaging subsystem
US20080035866A1 (en) * 2006-07-07 2008-02-14 Lockheed Martin Corporation Mail imaging system with UV illumination interrupt
US20080012981A1 (en) * 2006-07-07 2008-01-17 Goodwin Mark D Mail processing system with dual camera assembly
US20080049972A1 (en) * 2006-07-07 2008-02-28 Lockheed Martin Corporation Mail imaging system with secondary illumination/imaging window
US20080306841A1 (en) * 2007-06-07 2008-12-11 Caterpillar Inc. System and method for processing orders
US8121441B2 (en) * 2007-10-26 2012-02-21 Murata Machinery, Ltd. Image processing apparatus, image scanning apparatus, image processing method, and image processing program
US8407619B2 (en) * 2008-07-30 2013-03-26 Autodesk, Inc. Method and apparatus for selecting and highlighting objects in a client browser
JP5822865B2 (ja) * 2013-04-25 2015-11-25 京セラドキュメントソリューションズ株式会社 画像処理装置、罫線判定方法、及び罫線判定プログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5776649A (en) * 1980-10-31 1982-05-13 Toshiba Corp Picture information display device
GB2119197B (en) * 1982-03-19 1986-02-05 Quantel Ltd Video processing system for picture rotation
US4783834A (en) * 1987-02-20 1988-11-08 International Business Machines Corporation System for creating transposed image data from a run end or run length representation of an image
US4985849A (en) * 1987-06-12 1991-01-15 Canon Kabushiki Kaisha Image processing system for forming a slantwise-mapped or rotated modified image of an original image
US4827413A (en) * 1987-06-16 1989-05-02 Kabushiki Kaisha Toshiba Modified back-to-front three dimensional reconstruction algorithm
JPS6478381A (en) * 1987-09-21 1989-03-23 Toshiba Corp Picture processing method
US4792981A (en) * 1987-09-21 1988-12-20 Am International, Inc. Manipulation of run-length encoded images
JPS6482286A (en) * 1987-09-25 1989-03-28 Toshiba Corp Image inclination detector
JP2701346B2 (ja) * 1988-08-22 1998-01-21 富士ゼロックス株式会社 文書傾き補正装置
JP2924964B2 (ja) * 1988-09-02 1999-07-26 富士ゼロックス株式会社 画像情報符号化装置、画像情報復号化装置及び画像情報符号化復号化装置
US5124692A (en) * 1990-04-13 1992-06-23 Eastman Kodak Company Method and apparatus for providing rotation of digital image data
JPH04296983A (ja) * 1991-03-26 1992-10-21 Brother Ind Ltd 画像処理装置
JP3186216B2 (ja) * 1992-05-11 2001-07-11 富士ゼロックス株式会社 画像供給装置
JPH05324916A (ja) * 1992-05-20 1993-12-10 Seiko Epson Corp 文字認識方法及びそれを用いた文字認識装置
JPH0630240A (ja) * 1992-07-13 1994-02-04 Canon Inc カラー画像処理装置
US5418862A (en) * 1992-08-10 1995-05-23 United Parcel Service Of America Method and apparatus for detecting artifact corners in two-dimensional images
WO1994010644A1 (en) * 1992-11-02 1994-05-11 The 3Do Company Spryte rendering system with improved corner calculating engine and improved polygon-paint engine
US5412197A (en) * 1993-01-29 1995-05-02 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code symbols using gradient signals

Also Published As

Publication number Publication date
EP0842495A1 (en) 1998-05-20
CA2227289C (en) 2002-05-28
CA2227289A1 (en) 1997-02-13
DK0842495T3 (da) 2000-08-28
ATE191093T1 (de) 2000-04-15
JPH11504738A (ja) 1999-04-27
WO1997005573A1 (en) 1997-02-13
EP0842495B1 (en) 2000-03-22
GR3033609T3 (en) 2000-10-31
JP3005296B2 (ja) 2000-01-31
DE69607355T2 (de) 2000-07-27
US5581635A (en) 1996-12-03
ES2146406T3 (es) 2000-08-01
DE69607355D1 (de) 2000-04-27

Similar Documents

Publication Publication Date Title
PT842495E (pt) Rotacao de imagens
US11321937B1 (en) Visual localization method and apparatus based on semantic error image
CN112348815B (zh) 图像处理方法、图像处理装置以及非瞬时性存储介质
US11341722B2 (en) Computer vision method and system
Janssen et al. Adaptive vectorization of line drawing images
US5867593A (en) Image region dividing apparatus
CN105989317B (zh) 一种二维码的识别方法及装置
CN113140036B (zh) 一种三维建模方法、装置、设备及存储介质
EP0930585A1 (en) Image processing apparatus
CN114549772B (zh) 基于工程独立坐标系的多源三维模型融合处理方法及系统
CN112053441A (zh) 一种室内鱼眼图像的全自动布局恢复方法
US7006706B2 (en) Imaging apparatuses, mosaic image compositing methods, video stitching methods and edgemap generation methods
Xie et al. A4lidartag: Depth-based fiducial marker for extrinsic calibration of solid-state lidar and camera
CN102611842A (zh) 图像处理设备和图像处理方法
JP3269222B2 (ja) 距離測定装置
CN115861922A (zh) 一种稀疏烟火检测方法、装置、计算机设备及存储介质
Puerta et al. Photogrammetry as an engineering design tool
KR19990045078A (ko) 화상 인식 방법, 화상 인식 장치 및 기록 매체
Lu et al. Stereo image matching based on probability relaxation
CN117292159B (zh) 一种建筑模型招牌纹理自动优化方法和系统
CN117830439B (zh) 一种多相机系统位姿标定方法及装置
JPS5914782B2 (ja) 2値パタ−ンの数値化処理方式
CN113792677A (zh) 一种表格识别方法、装置、计算机设备和存储介质
Schindler et al. Towards feature-based building reconstruction from images
JPH04113478A (ja) 輪郭画素抽出方式