ES2256106T3 - Metodo y aparato para leer un simbolo de codigo de barra bidimensional y medio de almacenamiento de datos. - Google Patents
Metodo y aparato para leer un simbolo de codigo de barra bidimensional y medio de almacenamiento de datos.Info
- Publication number
- ES2256106T3 ES2256106T3 ES01108629T ES01108629T ES2256106T3 ES 2256106 T3 ES2256106 T3 ES 2256106T3 ES 01108629 T ES01108629 T ES 01108629T ES 01108629 T ES01108629 T ES 01108629T ES 2256106 T3 ES2256106 T3 ES 2256106T3
- Authority
- ES
- Spain
- Prior art keywords
- orientation
- module
- modules
- design
- axis
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1456—Methods for optical code recognition including a method step for retrieval of the optical code determining the orientation of the optical code with respect to the reader and correcting therefore
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Toxicology (AREA)
- Electromagnetism (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Character Discrimination (AREA)
- Character Input (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
- Optical Recording Or Reproduction (AREA)
- Automatic Tape Cassette Changers (AREA)
Abstract
Un método de lectura de un símbolo de código de barras bidimensional que tiene módulos de orientación y un diseño de localizador con un punto central, comprendiendo el método: 1) explorar el símbolo de código de barras para obtener una imagen explorada, 2) determinar el punto central del diseño de localizador en una imagen explorada del símbolo de código de barras y 3) realizar una operación de búsqueda de módulo de datos para calcular la información de posición y forma para todos los módulos que constituyen el símbolo de código de barras, caracterizado porque la operación 3) incluye calcular un eje de orientación que pasa a través de un módulo de orientación y el punto central del diseño de localizador en una imagen explorada del símbolo de código de barras por: (a) cálculo, basado en la información de posición del diseño de localizador y en la información de posición del módulo de orientación y en la información de forma, de la información de posición y forma para una pluralidad de módulos que constituyen un grupo de módulos en dicho eje de orientación; (b) detección de un diseño de bit de varios de dichos módulos de datos sobre el eje de orientación calculado por la operación de calcular la posición del módulo del eje de orientación; (c) cálculo, basado en la información de posición y forma de los distintos módulos de un grupo de módulos sobre el eje de orientación calculados por la operación de calcular la posición del módulo del eje de orientación, de la información de posición para una pluralidad de módulos que constituyen un grupo de módulos entre ejes de orientación adyacentes; y (d) detección del diseño de bit de los distintos módulos de datos presentes entre los ejes de orientación calculados por la operación de calcular la posición del módulo del eje de orientación.
Description
Método y aparato para leer un símbolo de código
de barra bidimensional y medio de almacenamiento de datos.
El presente invento se refiere a un método de
lectura de código de barras bidimensional, a un medio de
almacenamiento de datos que lleva un producto de programa de
ordenador que pone en práctica el método, y al aparato de lectura de
código de barras bidimensional. Más particularmente, el presente
invento se refiere a un método de lectura de código de barras
bidimensional, a un medio de almacenamiento de datos y a un aparato
de lectura de código de barras bidimensional para situar el diseño
del localizador en una imagen capturada explorando un símbolo de
código bidimensional, situando el módulo de dirección, situando el
módulo de datos, y convirtiendo el módulo de datos a caracteres de
datos.
Los códigos de barras son un tipo de tecnología
de reconocimiento automatizada que se ha desarrollado en la
industria de la venta al por menor como un modo de buscar
información en una base de datos sobre un artículo rápida y
exactamente. Los códigos de barras han evolucionado y encontrado
aplicación en industrias diversas tales como almacenamiento y
distribución, gobierno, medicina, investigación y gestión de
eventos. Como los códigos de barras y sus aplicaciones han
resultado muy variados, la demanda para códigos de barras se ha
extendido a industrias y aplicaciones para las que los códigos de
barras tradicionales son inadecuados, incluyendo la miniaturización
de código de barras para impresión en artículos muy pequeños y
elevada capacidad de codificación. Los códigos de barras
bidimensionales que se dirigen a estas necesidades han sido
desarrollados en los últimos años.
Hay dos tipos de códigos de barras
bidimensionales: simbología apilada (o códigos de múltiples filas),
y códigos de matriz. Las simbologías apiladas comprenden múltiples
filas de códigos de barras de una dimensión apiladas en una
alineación vertical. Las simbologías apiladas pueden ser leídas
usando un escáner láser, escáner de CCD, u otros métodos de
exploración. Los códigos de matriz codifican datos usando celdas de
datos negras y blancas dispuestas en un diseño determinado por el
protocolo de código particular. Los códigos de matriz pueden ser
leídos usando un lector de imagen de CCD u otro método detector de
imagen.
Un tipo de código de matriz es denominado
MaxiCódigo. El MaxiCódigo ha sido diseñado para clasificar y seguir
la pista a transportes de paquetes. Los servicios de entrega de
paquetes en los Estados Unidos de Norteamérica usan el MaxiCódigo en
sus centros de recogida y distribución para clasificar transportes
por destino y para carga de transporte. El símbolo bidimensional
(2D) generado y presentado de acuerdo con la norma de MaxiCódigo es
referido a continuación como el símbolo MaxiCódigo.
Un símbolo MaxiCódigo típico está mostrado en la
fig. 59. La fig. 59 (a) muestra un símbolo MaxiCódigo completo, y la
fig. 59 (b) muestra el diseño de localizador y el módulo de
orientación del símbolo MaxiCódigo.
Como se ha mostrado en la fig. 59 (a), un diseño
del localizador 5901 está posicionado en el centro de cada símbolo
MaxiCódigo 5900. Cada diseño del localizador 5901 comprende seis
partes concéntricas, que incluyen un círculo central blanco, dos
anillos blancos, y tres anillos negros. El diseño del localizador
5901 es usado para situar y aislar el símbolo MaxiCódigo 5900 a
partir de la imagen capturada. El centro de símbolo MaxiCódigo es
identificado situando el centro del diseño del localizador 5901.
El espacio dentro del símbolo MaxiCódigo
alrededor del diseño del localizador 5901 está poblado por grupos de
módulos que consisten en total de 884 módulos de interbloqueo 5902
blancos o negros. Cada módulo 5902 es un hexágono regular. Los
grupos de módulos consisten de seis grupos de módulos de orientación
5903 y un grupo de módulos de datos. Cada grupo de módulos de
orientación se compone de los 3 módulos de orientación que indican
la orientación del símbolo MaxiCódigo 5900. El grupo de módulos de
datos consiste de 864 módulos de datos que representan los datos
codificados; un módulo de datos corresponde a un bit de datos. Los
módulos de datos son usados para codificar datos, y son usados para
el tratamiento de corrección de errores. Obsérvese que los dos
módulos en la parte superior derecha del símbolo no son usados.
Como se ha mostrado en la fig. 59 (b), el módulo
de hexágono regular 5902 está dimensionado de tal modo que es
internamente tangente a la diana del centro blanco del diseño del
localizador 5901. Los grupos de módulos de orientación 5903 definen
una hexágono regular virtual del que el centro es el punto central 0
del diseño del localizador 5901. Cada grupo de módulos de
orientación 5903 incluye un módulo de orientación interior 5904, un
módulo de orientación exterior 5905, y un módulo de orientación
central 5906. Los seis grupos de módulos de orientación 5903
comprenden así un total de 18 módulos de orientación. Encontrar
estos 18 módulos de orientación identifica la orientación del
símbolo MaxiCódigo y permite que los datos sean leídos a partir de
los módulos de datos.
Debe observarse aquí que en cada grupo de módulos
de orientación 5903 el módulo de orientación interior 5904 es el
situado a la distancia más corta desde el punto central 0, el módulo
de orientación exterior 5905 es el situado a la mayor distancia del
punto central 0, y el módulo de orientación central 5906 es el
situado a una distancia del punto central 0 que está entre la
distancia desde el punto central 0 al módulo de orientación interior
5904 y las distancia desde el punto central 0 al módulo de
orientación exterior 5905.
Una técnica de detección de imagen es usada para
leer los símbolos MaxiCódigo, que como se ha indicado antes son un
tipo de simbología de código bidimensional. En otras palabras, un
símbolo MaxiCódigo es capturado como datos de imagen que son a
continuación interpretados (descodificados). Esta operación es
descrita más detalladamente a continuación.
El primer paso es encontrar el diseño del
localizador del símbolo MaxiCódigo y los módulos de orientación en
la imagen capturada, y a continuación reconocer los módulos de
datos. Un diseño de bit es a continuación generado a partir de
módulos de datos, asignando un valor de bit de 1 a cada módulo de
datos oscuro (típicamente negro), y 0 a cada módulo de datos claro
(típicamente blanco). El diseño de bit resultante es a continuación
convertido a caracteres de datos correspondientes para descodificar
los datos en el símbolo MaxiCódigo. Distintos métodos han sido
desarrollados para descodificar la imagen explorada de un símbolo
MaxiCódigo.
Siempre es necesario encontrar el centro del
diseño del localizador para descodificar un símbolo MaxiCódigo. El
documento
JP-A-10-21322 enseña
un método para encontrar el centro del diseño del localizador.
Este método en primer lugar encuentra todas las
curvas Jordan que tienen una distancia angular entre dos puntos
menores que \pi; a continuación, encuentra todas las curvas Jordan
convexas dentro de las curvas Jordan encontradas; determina las
ecuaciones de un par de tangentes desde los puntos finales de cada
curva Jordan convexa; determina las ecuaciones de las líneas
centrales para cada par de tangentes; determina el punto de
intersección de las líneas centrales; y encuentra así el punto
central del diseño del localizador basado en la intersección de las
líneas centrales. La descodificación del símbolo MaxiCódigo prosigue
a continuación.
Un problema con el método citado en el documento
JP-A-10-21322 es que
el tratamiento consume tiempo debido a los pasos necesarios para
aislar todas las curvas Jordan convexas de entre todas las curvas
Jordan encontradas, a continuación determinar las ecuaciones de las
tangentes, y finalmente buscar el centro del diseño del localizador
del símbolo.
Un método que usa plantillas para situar el
centro del diseño del localizador está citado en el documento WO
95/34043. Sin embargo, el documento WO 95/3403 simplemente dice que
los seis ejes del símbolo, que están desplazados 60 grados cada uno,
pasan a través del centro de la diana, y que el centro de la
plantilla está superpuesto al centro de la diana. No dice nada
específico acerca de cómo superponer la plantilla con el centro de
la
diana.
diana.
Encontrar los módulos de orientación es también
importante, y se han propuesto diversos métodos de cómo conseguirlo.
Encontrar los módulos de orientación es esencialmente encontrar la
situación y forma de los módulos de orientación. Encontrando la
situación y la forma de los módulos de orientación no es sólo
posible detectar la situación de cada módulo de datos basado en las
dimensiones de un módulo de símbolo MaxiCódigo, es también posible
identificar el color, es decir, el valor de bit, de los módulos de
datos detectados.
La fig. 60 muestra grupos de módulos en un
símbolo MaxiCódigo. Como se ha mostrado en la fig. 60, el grupo de
módulos 6000 comprende grupos de módulos de orientación 6001a,
6001b, 6001c, 6001d, 6001e, 6001f, conteniendo cada uno varios
módulos de orientación como se ha señalado antes, y comprendiendo el
grupo de módulos de datos 6002 los módulos de datos individuales.
Obsérvese, además, que el diseño de bit (dónde negro = 1 y blanco =
0) de los tres módulos de orientación que constituyen cada uno de
los seis grupos de módulos de orientación 6001a, 6001b, 6001c,
6001d, 6001e, 6001f difiere según la orientación. Por ello se han
propuesto distintos métodos para situar los módulos de orientación,
pero cada uno de estos métodos requiere un proceso complejo. El
proceso de situación del módulo de orientación es por ello
consumidor de tiempo.
Se han propuesto también distintos métodos para
detectar situaciones de módulos de datos basados en los módulos de
orientación encontrados, y convertir el diseño de bit
correspondiente a los colores de los módulos detectados a caracteres
de datos en un solo proceso continuo. Estos métodos también
necesitan un proceso complejo, y consumen también por ello mucho
tiempo.
El proceso para descodificar la imagen de símbolo
MaxiCódigo explorada puede descodificar imágenes exploradas
capturadas como imágenes frontales directas. Sin embargo,
dependiendo donde está colocado en los paquetes el símbolo
respectivo MaxiCódigo y la situación del escáner de código de barras
bidimensional, el símbolo MaxiCódigo no es necesariamente capturado
como una vista frontal. En la práctica, es corrientemente necesario
descodificar imágenes exploradas capturadas en un ángulo, pero no
resulta posible a menudo descodificar tales imágenes.
La fig. 62 muestra la relación entre un símbolo
MaxiCódigo real y la imagen explorada capturada del símbolo
MaxiCódigo. La fig. 62 (a) muestra la relación entre un símbolo
MaxiCódigo explorado desde el frente y la imagen explorada
resultante, y la fig. 62 (b) muestra la relación entre un símbolo
MaxiCódigo explorado desde un ángulo y la imagen explorada
resultante.
Cuando la imagen explorada de un símbolo
MaxiCódigo capturado desde un ángulo es comparada con el símbolo
MaxiCódigo real, las posiciones relativas del diseño del localizador
y módulos en la imagen explorada son obviamente diferentes de las
posiciones relativas del diseño del localizador y los módulos en el
símbolo MaxiCódigo real como se ha mostrado en la fig. 62 (b).
Además, las formas del diseño del localizador y los módulos en la
imagen explorada no son similares a la forma del diseño del
localizador y los módulos en el símbolo MaxiCódigo real, en vez de
ello la imagen explorada está deformada. Es por ello generalmente
difícil de reconocer la posición y colores de los módulos de datos
que constituyen el símbolo MaxiCódigo.
Descodificar imágenes exploradas de símbolos de
MaxiCódigo, que es una simbología de código de barras bidimensional
típica, cuando la imagen es capturada en un ángulo está así sujeta a
un elevado índice de error, haciendo imposible en algunos casos
descodificar el símbolo MaxiCódigo.
Resolver este problema ha requerido una operación
de corrección de distorsión para convertir imágenes exploradas
distorsionadas en imágenes sin distorsión. Un método de corrección
de distorsión usado normalmente es la normalización.
La fig. 63 es usada más abajo para describir la
corrección de distorsión de una imagen usando normalización. La fig.
63 (a) muestra dos tipos de distorsión, y la fig. 63 (b) muestra un
proceso de descodificación de imagen explorada usando la
normalización.
Como se ha mostrado en la fig. 63 (a), las
imágenes distorsionadas pueden tener distorsión en perspectiva o
distorsión rotacional. Ambos tipos pueden ser corregidos a imágenes
libres de distorsión mediante la normalización. Como se ha mostrado
en la fig. 63 (b), un proceso para descodificar una imagen
explorada distorsionada extrae en primer lugar la imagen del
símbolo, a continuación normaliza la imagen extraída, y finalmente
descodifica la imagen con la distorsión corregida para leer la
información codificada en el símbolo.
Como se ha mostrado en la fig. 59 y se ha
descrito antes, un símbolo MaxiCódigo tiene el diseño del
localizador situado en el centro del mismo siendo todos los módulos
que le rodean hexágonos regulares. Como resultado, es difícil
caracterizar matemáticamente la forma del símbolo cuando el límite
alrededor del símbolo o los módulos de datos en los vértices son
blancos. La normalización, que es una técnica de corrección de la
distorsión común, no puede ser usada para normalizar con exactitud
un símbolo MaxiCódigo distorsionado.
Además, incluso si la normalización puede ser
aplicada satisfactoriamente para corregir la distorsión, el proceso
de corrección consume mucho tiempo.
Una tecnología de acuerdo con las partes de
caracterización previas de las reivindicaciones 1ª a 8ª está
descrita en el documento WO 95/34043.
El presente invento está dirigido a una solución
para los problemas anteriores. Más específicamente, es el objeto del
presente invento proporcionar un método y un aparato de lectura que
permitan acortar el tiempo requerido para descodificar una imagen
explorada de un símbolo de código bidimensional, tal como el símbolo
MaxiCódigo.
Como resultado de nuestra búsqueda de soluciones
para los problemas antes descritos, hemos demostrado lo
siguiente.
Primero, el punto central de un diseño del
localizador puede ser encontrado en la imagen explorada de, por
ejemplo, un símbolo MaxiCódigo detectando, de entre los diseños de
detección en líneas de exploración a través de la imagen explorada,
un diseño de detección que corresponda a un diseño de referencia
específico a lo largo de una línea de exploración a través del punto
central del diseño del localizador.
Además, el tiempo de proceso necesario para
detectar las dimensiones del módulo y la situación del punto central
de los módulos de orientación en la imagen explorada de, por
ejemplo, un símbolo MaxiCódigo basado en datos de elementos de
imagen detectados puede ser acortado comparado con métodos
tradicionales detectando todos los diseños de color de datos de
elementos de imagen dispuestos a una distancia específica a partir
del punto central del diseño del localizador en un intervalo de
ángulo específico.
Además, imágenes exploradas de, por ejemplo, un
símbolo MaxiCódigo capturado a partir de un ángulo pueden ser
descodificadas así como símbolos MaxiCódigo capturados a partir del
frente calculando una ecuación que correlaciona un diseño del
localizador de símbolo MaxiCódigo a la imagen explorada de un
símbolo MaxiCódigo capturado desde un ángulo similarmente a una
ecuación que correlaciona un círculo a una elipse, y usando esta
ecuación para corregir la imagen explorada.
Además, los ejes de orientación de una imagen
explorada distorsionada pueden ser corregidos en la imagen explorada
de, por ejemplo, un símbolo MaxiCódigo corrigiendo el ángulo del eje
de orientación de modo que el eje pase por los puntos centrales del
módulo de orientación y del módulo de datos basándose en el área de
grupos de módulos negros en un eje de orientación que pasa por el
centro del diseño del localizador y un módulo de orientación.
Además, la posición y forma de los módulos en los
ejes de orientación de una imagen explorada distorsionada pueden ser
corregidas basándose en el área de grupos de módulos del mismo color
en un eje de orientación corregido, y las posiciones de módulos de
datos entre ejes de orientación pueden ser corregidas basándose en
la posición y forma de módulos en los ejes de orientación
corregidos.
También se ha demostrado que detectando la
información de la posición y la forma del módulo basada en una
imagen explorada corregida, el tiempo de tratamiento de un proceso
de descodificación para descodificar una imagen explorada de un
símbolo MaxiCódigo puede ser acortado.
Aún más, se ha demostrado también que
convirtiendo los módulos de datos detectados a una secuencia de bit,
almacenando los datos convertidos a una tabla matriz de bits, y
convirtiendo los datos de bit a palabras de código basadas en una
tabla de conversión de palabras de código bidimensionales, el tiempo
de proceso para convertir datos en caracteres de datos puede ser
acortado comparado con métodos tradicionales.
Basándose en los resultados de búsqueda
anteriores, el objeto del invento es conseguido por un método según
la reivindicación 1ª, un aparato según la reivindicación 8ª, y un
medio de almacenamiento de datos según la reivindicación 15ª,
respectivamente. Realizaciones preferidas del invento son objeto de
las reivindicaciones dependientes.
Preferiblemente, el medio de almacenamiento de
datos para grabar un programa de acuerdo con el presente invento es
un Disco Compacto, un disco flexible, un disco duro, un disco
magnético-óptico, un Disco Versátil Digital (DVD), una cinta
magnética, una tarjeta de memoria.
Otros objetos y resultados junto con una
compresión más completa del invento resultarán evidentes y serán
apreciados por referencia a la descripción siguiente de
realizaciones preferidas tomadas en unión con los dibujos
adjuntos.
La fig. 1 es un diagrama de bloques de un aparato
de acuerdo con una realización preferida del presente invento;
La fig. 2 es un diagrama de bloques de funciones
de un aparato de acuerdo con una realización preferida del presente
invento;
La fig. 3 es un diagrama de flujo del proceso de
descodificación en un método de acuerdo con una realización
preferida del presente invento;
La fig. 4 es un diagrama de flujo de un proceso
de búsqueda de un diseño del localizador en el proceso de
descodificación mostrado en la fig. 3;
La fig. 5 es un diagrama de flujo de la parte de
búsqueda horizontal de un método de situación del punto central del
diseño del localizador en el presente invento;
La fig. 6 es un diagrama de flujo de la parte de
búsqueda vertical de un método de situación del punto central del
diseño del localizador;
La fig. 7 es un diagrama de flujo de la parte de
determinación del punto central de un método de situación del punto
central del diseño del localizador en el presente invento;
La fig. 8 es un diagrama de flujo de un proceso
de búsqueda del diseño del localizador en el proceso de
descodificación del presente invento;
La fig. 9 es un diagrama de flujo de un método de
búsqueda del punto central del diseño del localizador candidato de
acuerdo con el presente invento;
La fig. 10 es un diagrama de flujo de un método
de cálculo del punto central del diseño del localizador para
determinar el punto central en el presente invento;
La fig. 11 es un diagrama de flujo de un proceso
de corrección de imagen en un proceso de descodificación de acuerdo
con el presente invento;
La fig. 12 es un diagrama de flujo de un proceso
de búsqueda del módulo de orientación en el proceso de
descodificación del presente invento;
La fig. 13 es un diagrama de flujo de un proceso
de búsqueda de candidato del módulo de orientación en el proceso de
búsqueda del módulo de orientación mostrado en la fig. 12;
La fig. 14 es un diagrama de flujo de un proceso
de búsqueda de candidato del módulo de orientación interior en el
proceso de búsqueda de candidato del módulo de orientación mostrado
en la fig. 13;
La fig. 15 es un diagrama de flujo de un proceso
de búsqueda de candidato del módulo de orientación en el proceso de
búsqueda de candidato del módulo de orientación mostrado en la fig.
13;
La fig. 16 es un diagrama de flujo de un proceso
de búsqueda de candidato del módulo de orientación central en el
proceso de búsqueda de candidato del módulo de orientación mostrado
en la fig. 13;
La fig. 17 es un diagrama de flujo de un proceso
de determinación de candidato del módulo de orientación en el
proceso de búsqueda de candidato del módulo de orientación mostrado
en la fig. 13;
La fig. 18 es un diagrama de flujo de un proceso
de determinación del módulo de orientación en el proceso de búsqueda
del módulo de orientación mostrado en la fig. 12;
La fig. 19 es un diagrama de flujo del proceso de
búsqueda del módulo de datos en el proceso de descodificación
mostrado en la fig. 3;
La fig. 20 es un diagrama de flujo del proceso de
cálculo de la posición del módulo de eje de orientación en el
proceso de búsqueda del módulo de datos mostrado en la fig. 19;
La fig. 21 es un diagrama de flujo del proceso de
corrección del ángulo del eje de orientación en el proceso de
cálculo de la posición del módulo del eje de orientación mostrado en
la fig. 20;
La fig. 22 es un diagrama de flujo del proceso de
corrección de anchura del módulo real del eje de orientación en el
proceso de cálculo de posición del módulo del eje de orientación
mostrado en la fig. 20;
La fig. 23 es un diagrama de flujo del proceso de
corrección de anchura del módulo candidato del eje de orientación en
el proceso de cálculo de la posición del módulo del eje de
orientación mostrado en la fig. 20;
La fig. 24 es un diagrama de flujo de un proceso
de cálculo del punto central del módulo de acuerdo con el presente
invento;
La fig. 25 es un diagrama de flujo del proceso de
conversión de caracteres de datos en el proceso de descodificación
del presente invento;
La fig. 26 (a) muestra el diseño de color a lo
largo de los segmentos de línea que pasan a través del centro del
diseño del localizador, y (b) muestra una plantilla del diseño del
localizador;
La fig. 27 (a) muestra la dirección de
exploración del diseño del localizador y la línea de exploración, y
(b) es un diagrama en forma de onda del diseño de detección;
La fig. 28 muestra la secuencia en la que las
líneas de exploración están ajustadas hacia arriba y hacia abajo
después de que la línea central sea determinada;
La fig. 29 ilustra el cálculo del punto central
del diseño del localizador;
La fig. 30 muestra una línea de exploración
cuando el diseño del localizador es explorado verticalmente, y la
forma de onda del diseño de detección resultante;
La fig. 31 ilustra el cálculo del punto central
del diseño del localizador;
La fig. 32 muestra un diseño del localizador
elíptico usado para describir una realización preferida del presente
invento;
La fig. 33 muestra otra realización preferida del
presente invento;
La fig. 34 muestra un diseño del localizador
elíptico usado para describir otra realización preferida del
presente invento;
La fig. 35 muestra la relación entre una imagen
capturada explorada en un ángulo, y el símbolo MaxiCódigo real;
La fig. 36 muestra la relación entre un círculo y
una elipse;
La fig. 37 (a) muestra el módulo de orientación
en un símbolo MaxiCódigo real, y (b) muestra el módulo de
orientación en una imagen explorada;
La fig. 38 (a) muestra la anchura del módulo, y
(b) muestra la relación entre la anchura del módulo y el punto
central del módulo de orientación interior;
La fig. 39 muestra un diseño de plantilla de
color;
La fig. 40 muestra la situación de un módulo de
orientación candidato en un ángulo de búsqueda \theta;
La fig. 41 (a) muestra los datos candidatos
correspondientes a un mismo módulo de orientación antes de la
conversión de datos, y (b) muestra los datos candidatos
correspondientes al mismo módulo de orientación después de la
conversión de datos;
La fig. 42 muestra un método para determinar
candidatos de módulo de orientación a una tasa n;
La fig. 43 muestra la determinación de la
posición del punto central del módulo de orientación;
La fig. 44 (a) muestra un proceso de conversión
de datos, y (b) muestra los números de secuencia de los módulos de
orientación;
La fig. 45 (a) muestra un módulo real y un módulo
candidato en un eje, y (b) muestra la situación del módulo de datos
en el eje;
La fig. 46 (a) muestra un módulo real y un módulo
candidato entre ejes, y (b) muestra la situación del módulo de datos
entre ejes;
La fig. 47 muestra la corrección de ángulo del
eje de orientación;
La fig. 48 (a) muestra el área L de un grupo de
módulos en un eje de orientación, y (b) muestra el punto central de
los módulos que constituyen el grupo de módulos;
La fig. 49 muestra la relación entre el eje de
orientación i y el eje de orientación adyacente i';
La fig. 50 muestra un proceso para calcular el
punto candidato P1 de un segundo punto central corregido del
módulo;
La fig. 51 muestra un proceso para calcular el
punto candidato P2 de un segundo punto central corregido del
módulo;
La fig. 52 muestra un proceso de cálculo del
punto central P del módulo;
La fig. 53 muestra un proceso de cálculo del
punto central del módulo;
La fig. 54 muestra una palabra código;
La fig. 55 (a) muestra la relación entre una
tabla matriz de bits y la posición del módulo de datos en un símbolo
MaxiCódigo, y (b) muestra los datos almacenados por la tabla de
matriz de bits;
La fig. 56 muestra una tabla de matriz de
palabras código;
La fig. 57 muestra la relación entre los datos de
bit almacenados en la tabla de matriz de bits y los elementos de
datos en la tabla de matriz de palabras código;
La fig. 58 muestra la tabla de ajuste del
carácter por defecto;
La fig. 59 (a) muestra un símbolo MaxiCódigo, y
(b) muestra el diseño del localizador del símbolo MaxiCódigo y los
módulos de orientación;
La fig. 60 muestra los grupos de módulos en un
símbolo MaxiCódigo;
La fig. 61 muestra el diseño del localizador y
los módulos de orientación en un símbolo MaxiCódigo real;
La fig. 62 (a) muestra la relación entre el
símbolo MaxiCódigo y una imagen explorada de un símbolo MaxiCódigo
capturado desde el frente, y (b) muestra la relación entre un
símbolo MaxiCódigo y una imagen explorada de un símbolo MaxiCódigo
capturado desde un ángulo; y
La fig. 63 (a) muestra algunos tipos de
distorsión de imagen, y (b) muestra un tratamiento de
descodificación que usa datos de imagen corregidos por
normalización;
La fig. 1 es un diagrama de bloques que muestra
los elementos principales de un aparato para leer un símbolo de
código de barras bidimensional (simplemente denominado un "símbolo
de código de barras" en lo que sigue) de acuerdo con el presente
invento. Estos elementos son descritos a continuación.
Como se ha mostrado en la fig. 1, el lector 100
del código de barras tiene una fuente de luz 101, un fotodetector
103, con una abertura 102, un receptor y convertidos A/D 104, una
CPU 105, una VRAM 106 y una ROM 107.
La fuente de luz 101 ilumina el símbolo de código
de barras que ha de ser leído, un símbolo MaxiCódigo 110 en este
ejemplo, y es típicamente un diodo emisor de luz o láser
semiconductor. El fotodetector 103 recibe luz reflejada desde el
símbolo de MaxiCódigo 110, y convierte la luz recibida en una señal
eléctrica. El fotodetector 103 es típicamente un CCD lineal o
bidimensional (dispositivo de carga acoplada).
El receptor y el convertidor A/D 104 reciben la
señal eléctrica desde el fotodetector 103, y la convierten a una
señal que puede ser procesada por la CPU 105. La CPU 105 aplica un
proceso de descodificación a la señal de imagen.
El fotodetector 103 genera una señal analógica
que representa la luz modulada reflejada desde los elementos del
símbolo MaxiCódigo 110. Más específicamente, los elementos de imagen
de la matriz CCD del fotodetector 103 emiten típicamente una señal
analógica que define la intensidad o cantidad de luz reflejada desde
un elemento de imagen particular, de manera similar a una escala de
gris o señal de datos de vídeo.
La parte receptora del receptor y convertidor A/D
104 recibe la señal analógica indicativa de la luz modulada, y la
sección de convertidor A/D convierte entonces la señal analógica en
una señal digital que tiene el número de niveles de gris usado por
la CPU y envía la señal digital a la CPU 105. Esta realización
ejemplar usa 16 niveles de gris. El receptor y convertidor A/D 104
almacena entonces las señales digitales resultantes en la VRAM 106,
acumulando imágenes del símbolo de MaxiCódigo 110 representado por
la señal digital. Después de tratar las imágenes acumuladas, la CPU
105 emite el resultado a un dispositivo periférico u ordenador
anfitrión (no mostrado en la figura) por medio de un enlace.
Será también obvio que el tratamiento de imagen
ejecutado por esta CPU 105 puede ser realizado por el ordenador
anfitrión.
Obsérvese que el receptor y convertidor A/D 104 y
la CPU 105 están ambos conectados a la VRAM 106. La ROM 107 almacena
el programa de control ejecutado por la CPU 105, y los valores
específicos descritos además después.
Como se ha descrito antes, el círculo central
blanco, dos anillos blancos, y tres anillos negros en el centro del
símbolo de MaxiCódigo 110 son el diseño del localizador de
MaxiCódigo 111, conocido comúnmente como la diana.
Un aparato para leer un código de barras
bidimensional ("lector de código de barras" a continuación) de
acuerdo con una realización del presente invento comprende una
unidad de búsqueda de módulo de datos para calcular la información
de posición y la información de forma para todos los módulos que
constituyen el símbolo de código de barras. Consigue esto calculando
los ejes de orientación que pasan a través de los módulos de
orientación y el punto central del diseño del localizador basado en
la posición del diseño del localizador, la posición de los módulos
de orientación, y la información de forma acerca de los módulos de
orientación en la imagen explorada del símbolo de código de
barras.
El lector de código de barras de una realización
del presente invento comprende además una unidad de búsqueda del
diseño del localizador para encontrar la línea de exploración a lo
largo de la cual el diseño detectado en la imagen explorada del
símbolo de código de barras en un dirección de exploración
específica coincide con un diseño de referencia específico, detectar
el diseño del localizador en la imagen explorada del símbolo de
código de barras basado en las distintas líneas de exploración
encontradas, y obtener la información de posición y de forma acerca
del diseño del localizador encontrado.
El lector de código de barras de una realización
del presente invento comprende además una unidad de corrección de
imagen para calcular una ecuación que representa la relación entre
el símbolo del código de barras y la imagen explorada del símbolo
del código de barras, y a continuación corregir la imagen explorada
del símbolo del código de barras basado en la ecuación
resultante.
El lector del código de barras de una realización
del presente invento comprende además una unidad de búsqueda del
módulo de orientación para encontrar en la imagen explorada del
símbolo de código de barras varios grupos de datos de elemento de
imagen cuyo diseño de color coincide con un diseño de plantilla de
color específico. Los diseños de color comprenden elementos de
imagen blanco o negro del grupo de datos de elemento de imagen
respectivo, que están a una distancia específica desde un punto
específico en la imagen explorada y están dispuestos en un intervalo
angular específico. Basada en los varios grupos de datos de elemento
de imagen encontrados, una pluralidad de módulos de orientación que
constituyen un grupo de módulos de orientación son detectados en la
imagen explorada del símbolo del código de barras, y se obtienen la
posición y la forma de estos distintos módulos de orientación.
El lector del código de barras de una realización
del presente invento comprende además una unidad de conversión de
carácter de datos para convertir datos de bit de módulo de datos a
palabras código correlacionando la posición de los módulos de datos
que constituyen el grupo de módulo de datos en la imagen explorada
del símbolo de código de barras bidimensional a palabras de código
específicas y valores de bit específicos en las palabras de código
específicas basados en una tabla de conversión de palabra de código
específica, y a continuación convertir las palabras de código
resultantes a caracteres de datos específicos.
El funcionamiento de un lector de código de
barras así comprendido de acuerdo con una realización preferida del
presente invento es descrito a continuación con referencia a las
figuras adjuntas.
La fig. 2 es un diagrama de bloques funcional de
un aparato que lee códigos de barras bidimensionales de acuerdo con
el presente invento. Las funciones de las partes constitutivas son
descritas a continuación.
Como se ha mostrado en la fig. 2, este lector de
código de barras ejemplar comprende un controlador 201, una unidad
202 de almacenamiento de datos de elemento de imagen, la unidad 203
de búsqueda del diseño del localizador, la unidad 204 de corrección
de imagen, la unidad 205 de búsqueda del módulo de orientación, la
unidad 206 de búsqueda del módulo de datos, y el convertidor 207 de
carácter de datos.
La unidad 202 de almacenamiento de datos de
elemento de imagen almacena datos de imagen procedentes de la imagen
explorada capturada por el fotodetector 103 (no mostrado en la
figura) a un registro 210 de datos de elemento de imagen en la VRAM
106 como datos de elemento de imagen correlacionados con una
posición específica de elemento de imagen.
La unidad 203 de búsqueda del diseño del
localizador busca el diseño del localizador del símbolo de
MaxiCódigo basado en los datos de elemento de imagen almacenados en
el registro 210 de datos de elemento de imagen de la VRAM 106 y un
diseño de referencia específico almacenado para descodificar la
memoria de datos 220, y a continuación calcula la información de
forma del diseño del localizador. La información de forma del diseño
del localizador, incluye el punto central, el tamaño, y la forma del
diseño del localizador. La unidad 203 de búsqueda del diseño del
localizador almacena entonces la información de forma del diseño del
localizador en el registro 211 de información del diseño del
localizador en la VRAM 106.
Usando la información de forma del diseño del
localizador calculada a partir de los datos de elemento de imagen
del diseño del localizador situados por la unidad 203 de búsqueda
del diseño del localizador, y la información de forma para un
símbolo MaxiCódigo real, la unidad 204 de corrección de imagen
calcula una ecuación de corrección del ángulo de carga, para los
datos de imagen capturados en un ángulo por el fotodetector 103.
Usando la ecuación de corrección de ángulo de carga, la unidad 204
de corrección de imagen genera a continuación una tabla de
corrección de ángulo de carga, y corrige luego los datos de elemento
de imagen de la imagen de símbolo MaxiCódigo capturada basado en
esta tabla de corrección de ángulo de carga. La unidad 204 de
corrección de imagen almacena también la ecuación o tabla de
corrección de ángulo de carga calculada, y los datos de imagen de
símbolo MaxiCódigo corregidos, es decir, los datos de elemento de
imagen corregidos, en el registro 212 de datos de corrección de
imagen en la VRAM 106.
La unidad 205 de búsqueda del módulo de
orientación busca módulos de orientación basados en los datos de
imagen de símbolo MaxiCódigo corregidos por la unidad 204 de
corrección de imagen, los datos de forma para un símbolo MaxiCódigo
real, y el diseño de plantilla de color específico previamente
almacenado para descodificar la memoria de datos 220, y calcula la
información de posición y de forma para los 18 módulos de
orientación (tres en cada una de las seis direcciones). La unidad
205 de búsqueda del módulo de orientación determina también la
orientación del símbolo Maxicódigo a partir de la información de
posición del módulo de orientación calculada. La información de
posición del módulo de orientación calculada y la información de
forma son a continuación almacenadas en el registro 213 de datos
del módulo de orientación en la VRAM 106.
Basado en la información de forma del diseño del
localizador calculada por la unidad 203 de búsqueda del diseño del
localizador, y la información de posición y forma del módulo de
orientación calculada por la unidad 205 de búsqueda del módulo de
orientación, la unidad 206 de búsqueda del módulo de datos encuentra
todos los módulos de datos en el símbolo Maxicódigo corrigiendo la
distorsión en los datos de imagen capturados por el fotodetector
103, y calcula la información de posición y forma del módulo de
datos. La información de posición y forma del módulo de datos
calculada es almacenada a continuación en el registro 214 de
información del módulo de datos en la VRAM 106.
El convertidor 207 de carácter de datos convierte
a continuación el color de cada módulo de datos calculado a un
diseño de bit. Esta operación convierte un módulo de datos blanco
(claro) en un valor de bit de 0, y un módulo de datos negro (oscuro)
en un valor de 1, por ejemplo, y se denomina a continuación como
"conversión de bit". Los datos de bit convertidos son a
continuación almacenados en una tabla de matriz de bits y, basado
en una tabla de matriz de palabra código previamente almacenada para
descodificar la memoria de datos 220, convertidos en palabras código
de datos que representan cada una un carácter de datos y palabras
código de corrección que representan datos de corrección de error.
Esta operación es denominada a continuación como "conversión de
palabra código". Las palabras código de datos son recuperadas a
continuación a las palabras de código de datos correctas aplicando
un proceso de corrección de error que usa las palabras código de
corrección de error.
Las palabras de código de datos resultantes del
proceso de corrección de error son a continuación convertidas en
caracteres de datos basados en una tabla de conjunto de caracteres
por defecto previamente almacenados para descodificar la memoria de
datos 220. Los caracteres de datos son almacenados en la memoria de
resultados descodificados 215 en la VRAM 106. Obsérvese que los
datos de bit convertidos, los datos de código de palabra
convertidos, y los datos de error corregidos resultantes de las
operaciones intermedias antes indicadas en la operación de
conversión de caracteres de datos pueden también ser almacenados en
la memoria de resultados descodificados 215 en la
\hbox{VRAM
106.}
El controlador 201 controla la operación e
interacción de la unidad 202 de almacenamiento de datos de elemento
de imagen, la unidad 203 de búsqueda del diseño del localizador, la
unidad 204 de corrección de imagen, la unidad 205 de búsqueda del
módulo de orientación, la unidad 206 de búsqueda de módulo de datos,
y el convertidor 207 de caracteres de datos.
Un método para leer un código de barras
bidimensional de acuerdo con una realización del presente invento
comprende una operación de búsqueda de módulo de datos para calcular
la información de posición y la información de forma para todos los
módulos que constituyen el símbolo de código de barras. Consigue
esto calculando los ejes de orientación que pasan a través de los
módulos de orientación y el punto central del diseño del localizador
basado en la posición del diseño del localizador, la posición de los
módulos de orientación, y la información de forma sobre los módulos
de orientación en la imagen explorada del símbolo de código de dos
barras.
El método de acuerdo con el presente invento
comprende además preferiblemente una operación de búsqueda del
diseño del localizador para encontrar líneas de exploración a lo
largo de las cuales el diseño detectado en la imagen explorada del
símbolo de código de barras en una dirección de exploración
específica coincide con un diseño de referencia específico, detectar
el diseño del localizador en la imagen explorada del símbolo de
código de barras basado en las distintas líneas de exploración
encontradas, y obtener la información de posición y forma del diseño
del localizador.
El método del presente invento comprende además
preferiblemente una operación de corrección de imagen para calcular
una ecuación que representa la relación entre el símbolo de código
de barras y la imagen explorada del símbolo de código de barras, y
corregir a continuación la imagen explorada del símbolo de código de
barras basado en la ecuación resultante.
El método del presente invento comprende además
preferiblemente una operación de búsqueda del módulo de orientación
para encontrar en la imagen explorada de los varios grupos de datos
de elemento de imagen del símbolo de código de barras cuyo diseño de
color coincide con un diseño de plantilla de color específico. Los
diseños de color comprenden elementos de imagen blancos o negros
del grupo de datos de elementos de imagen respectivo, que están a
una distancia específica desde un punto específico en la imagen
explorada y están dispuestas en un intervalo angular específico.
Basado en los varios grupos de datos de elementos de imagen
encontrados, una pluralidad de módulos de orientación que
constituyen los grupos del módulo de orientación son detectados en
la imagen explorada del símbolo de código de barras, y se obtienen
la posición y forma de estos varios grupos de módulos de
orientación.
El método del presente invento comprende además
preferiblemente una operación de conversión de caracteres de datos
para convertir datos de bit de módulo de datos a palabras de código
correlacionando la posición de los módulos de datos que constituyen
el grupo de módulos de datos en la imagen explorada del símbolo de
código de barras en palabras de código específicas y valores de bit
específicos en las palabras de código específicas basadas en una
tabla de conversión de palabras de código específica, y convirtiendo
a continuación las palabras de código resultantes en caracteres de
datos específicos.
El funcionamiento de un método para leer un
código de barras bidimensional comprendido así, de acuerdo con una
realización preferida del presente invento es descrito a
continuación con referencia a las figuras adjuntas.
La fig. 3 es un diagrama de flujo del proceso de
descodificación en el método para leer un código de barras
bidimensional del presente invento.
Como se ha mostrado en la fig. 3, la primera
operación es para almacenar datos de imagen procedentes de la imagen
explorada capturada por el fotodetector 103 (no mostrado en la
figura) en un registro 210 de datos de elementos de imagen en la
VRAM 106 como datos de elemento de imagen correlacionados a una
posición de elemento de imagen específica (S301).
Los datos de elemento de imagen consisten de
coordenadas indicativas de la posición del elemento de imagen, y un
valor de escala de grises indicativa del nivel de gris del elemento
de imagen. Se ha supuesto aquí que el valor de escala de grises
disminuye en la proximidad de negro. Los valores de escala de grises
de los datos de elemento de imagen son convertidos a continuación a
valores del diseño binario de 1 (= negro) y 0 (= blanco) con
referencia a un valor de umbral de escala de grises específico
previamente almacenado para descodificar la memoria de datos 220. En
otras palabras, si el valor de escala de grises de un elemento de
imagen es menor que este valor de umbral de escala de grises, el
valor del diseño es 1 (que indica negro), pero si el valor de
escala de grises del elemento de imagen es mayor que o igual al
valor de umbral de escala de grises, el valor del diseño es 0 (que
indica blanco). Debe observarse que estos valores de elemento de
imagen de 1 (negro) y 0 (blanco) pueden ser almacenados en el
registro 210 de datos de elemento de imagen. El valor de umbral de
escala de grises es también variable.
La siguiente operación (S302) es buscar el diseño
del localizador, que es necesario para extraer el símbolo de
Maxicódigo de la imagen explorada, basado en los datos de elemento
de imagen almacenados en el registro 210 de datos de elemento de
imagen de la VRAM 106.
La información de forma del diseño del
localizador, es decir, el punto central, el tamaño, y la forma del
diseño del localizador, son calculados por la búsqueda del diseño
del localizador. Como se ha mostrado en la fig. 59 (b), el diseño
del localizador de un símbolo Maxicódigo real es un diseño de diana
de seis círculos concéntricos que alternan blanco y negro, siendo el
círculo interior siempre blanco y el círculo exterior siempre es
negro de manera que haya tres círculos blancos y tres negros. Las
coordenadas para el punto central del diseño del localizador, y las
coordenadas de posición para los límites entre los círculos blanco y
negro del diseño del localizador, son por ello calculadas para
obtener la información de forma del diseño del localizador.
A continuación, la información de forma para el
diseño del localizador localizado es comparada con la información de
forma para un diseño del localizador en un símbolo de Maxicódigo
estándar para calcular una ecuación de corrección de ángulo de carga
basada en el ángulo en el que la imagen fue capturada cuando el
fotodetector 103 explora la imagen del símbolo en un ángulo. Una
tabla de corrección de ángulo de carga es a continuación generada
aplicando la ecuación de corrección de ángulo calculada para
alcanzar una precisión de corrección especificada. La tabla de
corrección de ángulo de carga resultante es a continuación usada
para corregir el ángulo de carga de datos de elemento de imagen
(S303).
La fig. 35 muestra la relación entre un símbolo
de Maxicódigo normal y la imagen explorada de un símbolo de
Maxicódigo capturado desde un ángulo. La fig. 35 es una vista desde
la dirección positiva del eje y en un espacio tridimensional derecho
en el que el eje y es ortogonal al eje x y al eje z.
Como se ha mostrado en la fig. 35, la forma S
donde S = S(x,y,0) en el plano x-y tiene
puntos A y B. Supóngase a continuación que la forma S es un círculo
en el diseño del localizador de símbolo de Maxicódigo; el segmento
de línea AB es el diámetro del diseño del localizador; el punto P
fue el punto focal cuando la imagen fue explorada por el
fotodetector 103; y el punto C es el centro de la imagen explorada.
En este caso la imagen explorada estará sobre un plano ortogonal a
la línea PC, y el segmento de línea explorado AB es el segmento de
línea A'B' en la imagen explorada. Los triángulos A'B'P y A''B''P
son similares, y la línea en la que el segmento de línea AB fue
capturado puede ser denominada como segmento de línea A''B''. El
punto 0 es el punto central del diseño del localizador.
La relación entre un símbolo de Maxicódigo normal
y una imagen explorada capturada desde un ángulo puede ser
determinada calculando las ecuaciones siguientes f, g, o h.
A''=f(A')=f(g(A))=h(A)
B''=f(B')=f(g(B)=h(B)
C=f(C')=f(g(C))=h(C)
La relación entre un símbolo de Maxicódigo y una
imagen explorada puede también ser determinada calculando las
ecuaciones siguientes f_1 y g_1, o h_1.
A=g_1(A')=g_1(f_1(A''))=h_1(A'')
B=g_1(B')=g_1(f_1(B''))=h_1(B'')
C=g_1(C')=g_1(f_1(C))=h_1(C)
Por ello, las ecuaciones f y g, o h, y las
ecuaciones f_1 y g_1, o h_1, definen la relación entre la imagen
explorada y el símbolo de Maxicódigo real cuando el símbolo de
Maxicódigo es capturado desde un ángulo, y pueden ser así usadas
como ecuaciones de corrección de ángulo de carga. Una tabla de
corrección de ángulo de carga es a continuación generada usando las
ecuaciones de corrección de ángulo de carga calculado para conseguir
la precisión de corrección especificada.
Los datos de elemento de imagen necesarios en la
imagen explorada del símbolo de Maxicódigo es a continuación la
imagen corregida basada en la tabla de corrección del ángulo de
carga resultante.
Además, debido a que todos los módulos de datos
pueden ser encontrados buscando los módulos de orientación del
símbolo de Maxicódigo, no es necesario corregir todos los datos de
elemento de imagen que constituyen la imagen explorada del símbolo
de Maxicódigo. Más específicamente, sólo es necesario corregir los
datos de elemento de imagen en las áreas en que los módulos de
orientación están presentes. Por ello, las ecuaciones de corrección
de ángulo de carga calculado sólo necesitan ser ciertas en el área
en que los módulos de orientación de símbolo de Maxicódigo están
presentes.
A continuación, son detectados todos los datos de
elemento de imagen de imagen corregida que coinciden una plantilla
de color específico previamente almacenada para la descodificación
de la memoria de datos 220, y la información de posición y de forma
para los módulos de orientación son calculados basados en los datos
de elemento de imagen detectados (S304).
Como se ha mostrado en la fig. 60 y se ha
observado antes, los módulos de orientación indican la orientación
de un símbolo de Maxicódigo y están situados en lugares específicos
en el símbolo de Maxicódigo. Es por ello posible detectar la
orientación del símbolo de Maxicódigo situando los módulos de
orientación y a continuación calculando la posición y forma de los
módulos de orientación. Además, una vez que la orientación del
símbolo de Maxicódigo es conocida, la posición de cada módulo de
datos en el símbolo de Maxicódigo es conocida, y el color de cada
módulo de datos es también conocido.
Todos los módulos de datos en el símbolo de
Maxicódigo son a continuación agrupados como un módulo de datos
sobre un eje de orientación o un módulo de datos en un área entre
los ejes de orientación, y la posición y forma de cada módulo de
datos es a continuación calculada (S305). Esto es conseguido
corrigiendo la distorsión de los datos de imagen capturados por el
fotodetector 103 basados en los ejes de orientación que pasan a
través del punto central del diseño del localizador y los módulos
de orientación calculados, y la información de posición y de forma
calculada para los módulos de orientación.
La siguiente operación (S306) identifica el color
de cada módulo de datos, convierte los bits de todo los módulos de
datos, almacena los datos de bit convertidos en la tabla de matriz
de bits, convierte los datos a palabras de código basadas en una
tabla de conversión de palabra de código bidimensional específica
previamente almacenada para descodificar la memoria de datos 220, y
aplica un proceso de corrección de error. Las palabras código son a
continuación convertidas en caracteres de datos basados en conjuntos
de caracteres por defecto especificados previamente almacenados para
descodificar la memoria de datos 220, y el proceso de
descodificación termina.
Debe observarse que el método del presente
invento no tiene necesariamente todas las operaciones S302 a S306, y
puede tener sólo alguna de las operaciones S302 a S306.
Las operaciones de búsqueda del diseño del
localizador descritos antes son explicados en más detalle a
continuación con referencia a las fig. 4, fig. 26, fig. 27, fig. 28
y fig. 29.
La fig. 4 es un diagrama de flujo de un proceso
de búsqueda del diseño del localizador en el proceso de
descodificación del símbolo de Maxicódigo de acuerdo con el presente
invento mostrado en la fig. 3.
La imagen de símbolo de Maxicódigo es explorada
en una primera dirección de exploración para encontrar una línea de
exploración que pasa cerca del punto central del diseño del
localizador comparando el diseño (la "ecuación de relación del
diseño de color" a continuación) detectado a lo largo de una
línea de exploración particular con un diseño de referencia (la
"plantilla del diseño del localizador" a continuación). El
punto central es a continuación calculado desde la línea de
exploración encontrada. Esta operación es repetida varias veces para
encontrar varias de tales líneas de exploración, y el punto central
es calculado para cada una de las líneas de exploración así
identificadas (S401). Obsérvese que a continuación la línea de
exploración próxima al punto central del diseño del localizador
explorada en una primera dirección de exploración es denominada como
la "línea central candidata en la primera dirección de
exploración", el punto central es denominado como el "punto
central candidato en la primera dirección de exploración", y el
conjunto de varios puntos centrales como el "grupo de puntos
centrales candidatos en la primera dirección de exploración". La
pluralidad de líneas centrales candidatas en la primera dirección de
exploración son encontradas por ello, y un grupo de puntos centrales
candidatos en la primera dirección de exploración que comprende
varios puntos centrales candidatos en la primera dirección de
exploración son calculados. La primera dirección de exploración se
ha supuesto además a continuación que es la dirección horizontal
(obsérvese que los términos "horizontal" y "vertical" como
se han usado en este texto no pretenden imponer ninguna restricción
en las otras direcciones respectivas que no sea que las direcciones
horizontal y vertical son perpendiculares entre sí).
La fig. 26 es usada para describir una plantilla
del diseño del localizador. La fig. 26 (a) muestra un diseño de
color en una línea que pasa a través del punto central del diseño
del localizador, y la fig. 26 (b) muestra la plantilla del diseño
del localizador.
Como se ha mostrado en la fig. 26 (a), el
resultado de la línea de búsqueda 2601 que pasa a través del punto
central del diseño del localizador en la dirección indicada por la
flecha es un diagrama de onda de impulso en el que un impulso
elevado indica un área blanca y un impulso bajo indica un área
negra. Como se ha mostrado en la fig. 26 (b), si una distancia
(relativa) desde el borde exterior del primer círculo negro
(indicado por A) al borde exterior del siguiente círculo negro (en
C) es 1, entonces la distancia desde el borde exterior del primer
círculo negro (B) al mismo borde del siguiente círculo blanco (D) es
también 1. Además, la distancia desde el borde exterior (E) del
círculo negro que rodea directamente a la diana central blanca al
borde interior (G) del mismo círculo negro en el otro lado del
centro blanco, y la distancia desde el primer borde (F) del centro
blanco al borde interior del siguiente anillo blanco (H), son ambas
1.26.
Por ello, si el diseño de la diana es explorada
de izquierda a derecha (A a L) a través del centro como se ha
descrito antes, y la relación de distancias de
negro-negro (A-C),
blanco-blanco (B-D),
negro-negro
(C-E),...blanco-blanco
(J-L)) es acumulada, la relación del diseño de
color
AC:BD:CE:DF:EG:FH:GI:HJ:IK:JL =
1:1:1:1:1,26:1,26:1:1:1:1
será cierto cuando AC, por ejemplo,
indica la distancia del punto A al punto
C.
Esta ecuación que define la relación del diseño
de color de un diseño del localizador normal es almacenada en la
memoria 220 de datos de descodificación de la ROM 107 como una
plantilla del diseño del localizador.
Además, si el centro es explorado de derecha a
izquierda (L a A) y las distancias borde a borde son expresadas de
nuevo como una relación en el orden negro-negro
(L-J), blanco-blanco
(K-I), negro-negro
(J-H),...blanco-blanco
(C-A), la relación será la misma, es decir,
LJ:KI:JH:IG:HF:GE:FD:EC:BD:CD =
1:1:1:1:1,26:1,26:1:1:1:1
Como se ha mostrado en la fig. 27 (a), la primera
operación es por ello explorar horizontalmente (en una primera
dirección de exploración) la mitad de la imagen explorada completa
2701 del símbolo de MaxiCódigo para generar una onda de impulso
(véase fig. 27 (b)) basado en el diseño de color de la línea de
exploración 2702 y calcular la ecuación de relación del diseño de
color (relación del diseño de color) a lo largo de esa línea de
exploración. La relación detectada es a continuación comparada por
coincidencia del diseño con la plantilla del diseño del localizador
de MaxiCódigo (fig. 26 (b)) almacenada en la memoria 220 de datos
de descodificación en la ROM 107. Si la relación detectada coincide
con la plantilla, esa línea de exploración es definida como una
línea central candidata en la primera dirección de exploración.
Obsérvese que esta línea de exploración es aquí definida como una
línea central candidata debido a que puede suceder que haya otros
datos de negro y blanco que estén dispuestos en los mismos
intervalos que la plantilla.
Si como se ha mostrado en la fig. 27 (b) el
número de puntos de comparación en la relación del diseño de color y
el número de puntos de comparación en la plantilla del diseño del
localizador no son los mismos, está claro que la línea no pasa a
través del punto central 2703 de la diana del diseño del
localizador. En este caso, como se ha mostrado en la fig. 28, la
imagen es explorada otra vez, intercalando la línea central 1 de la
imagen completa 2801 por encima y por debajo de las líneas de
exploración 2, 3, y así sucesivamente en exploraciones sucesivas. El
diseño que coincide usando la relación del diseño de color detectado
y la plantilla del diseño del localizador es repetido después de
cada exploración para encontrar la línea de exploración que coincide
un diseño específico como se ha descrito antes, y la línea de
exploración determinada para coincidir la plantilla más próxima es
definida como la línea central en la dirección horizontal.
El punto medio entre la intersección de esta
línea central y el interior del círculo negro más exterior (es
decir, el punto correspondiente a B en la fig. 26 (b)), y la
intersección de esta línea central y el interior del círculo negro
más exterior en el lado opuesto (es decir, el punto correspondiente
a K en la fig. 26 (b)), es decir, dos puntos en el borde exterior
del círculo blanco más exterior del diseño del localizador, es a
continuación encontrado y definido como un punto central candidato
(punto central candidato en la primera dirección de
exploración).
Debe observarse que el punto medio entre dos
puntos de borde exterior del círculo blanco más exterior es usado
para obtener las coordenadas centrales en vez de usar el punto medio
entre dos puntos de borde exterior del círculo negro más exterior
del diseño del localizador ya que los datos del elemento de imagen
negro pueden tocar el borde exterior del círculo negro más exterior
del diseño del localizador, y la posición de este círculo negro más
exterior podría por ello ser mal interpretada.
Hay también casos en los que una coincidencia
precisa entre una línea de exploración y la plantilla no puede ser
determinada, y hay varias líneas centrales candidatas en la
dirección horizontal. En este caso las coordenadas x de las
coordenadas centrales candidatas son redondeadas, y solo aquellas
coordenadas que redondean el mismo valor entero son almacenadas en
la RAM como las coordenadas x candidatas de los puntos centrales
candidatos plurales (grupo de puntos centrales candidatos en la
primera dirección de exploración). Puede además suponerse que la
posición que tiene la distribución más elevada de las coordenadas
centrales candidatas en la dirección perpendicular a la línea de
exploración horizontal es más probable donde las coordenadas
centrales candidatas en esta dirección perpendicular están
situadas.
La exploración es repetida a continuación en la
dirección horizontal por encima por debajo de la línea central
candidata con las líneas de exploración aumentando gradualmente en
distancia desde la línea central, y los datos explorados son
almacenados en el registro 211 de información del diseño del
localizador de la VRAM 106.
La exploración es a continuación realizada en una
segunda dirección de exploración diferente de la primera dirección
de exploración, y la operación de coincidencia con el mismo diseño
es realizada usando la relación del diseño de color detectada en las
líneas de exploración en esta segunda dirección de exploración para
encontrar las líneas de exploración próximas al punto central del
diseño del localizador y calcular el punto central a partir de las
líneas de exploración identificadas. Esta operación es repetida
varias veces para encontrar varias líneas de exploración y calcular
la pluralidad de puntos centrales desde las líneas de exploración
(S402). Debe observarse aquí que unas líneas de exploración próximas
al centro del diseño del localizador explorado en esta segunda
dirección de exploración son denominadas a continuación como una
línea central candidata en la segunda dirección de exploración, un
punto central como un punto central candidato en la segunda
dirección de exploración, y un conjunto de puntos centrales como un
grupo de puntos centrales en la segunda dirección de exploración.
Por ello, son encontradas varias líneas centrales candidatas en la
segunda dirección de exploración y un grupo de puntos centrales
candidatos en la segunda dirección de exploración que comprende
varios puntos centrales candidatos plurales en la segunda dirección
de exploración es calculado.
La exploración es realizada en una segunda
dirección de exploración (dirección vertical) desplazada 90 grados
con la dirección de exploración horizontal, y se realiza la misma
operación de coincidencia del diseño en la dirección horizontal.
La primera línea de exploración en la dirección
vertical es una línea perpendicular a la línea central candidata
previamente obtenida en la primera dirección de exploración y que
pasa a través del punto central calculado de esta línea central
candidata horizontal. La velocidad con la que la coordenada central
puede ser obtenida puede ser mejorada tomando la primera
exploración en la dirección vertical a través de las coordenadas
centrales candidatas obtenidas por el proceso de exploración
horizontal anterior, en vez de comenzar explorando a través de la
mitad de la imagen completa, ya que es mayor la probabilidad de que
las coordenadas centrales verdaderas del diseño del localizador
estén en este candidato de línea central horizontal.
Como durante la exploración horizontal, la línea
de exploración vertical con una relación del diseño de color que
coincide más estrechamente con la plantilla como se ha mostrado en
la fig. 26 (b) es definida como el centro en la dirección vertical.
Donde las coordenadas del punto central en las direcciones
horizontal y vertical se cortan es el centro del diseño del
localizador. Como durante la exploración horizontal, el punto medio
entre puntos en el borde exterior del círculo blanco más exterior
del diseño del localizador es usado para las coordenadas centrales
en la dirección vertical. A continuación, se obtiene el lugar en la
dirección horizontal que tiene la mayor población de coordenadas
centrales candidatas (grupo de puntos centrales candidatos en la
segunda dirección de exploración) obtenidas en la línea vertical de
exploración.
La exploración en la dirección vertical es a
continuación repetida con cada línea de exploración aumentando
gradualmente la distancia alternativamente a derecha e izquierda de
la línea central vertical, y los valores de datos resultantes son
almacenados en el registro 211 de información del diseño del
localizador de la VRAM 106 (véase fig. 28).
Será obvio que las operaciones de exploración
horizontal y vertical pueden conseguirse siendo cualquiera de ellas
la primera.
Finalmente, el punto central del diseño del
localizador es calculado basado en los grupos de puntos centrales
candidatos previamente calculados la primera y segunda direcciones
de exploración (S403).
La fig. 29 ilustra el cálculo del punto central
del diseño del localizador.
Como se ha mostrado en la fig. 29, la
intersección de la línea perpendicular a la primera dirección de
exploración calculada partir del grupo de puntos centrales
candidatos en la primera dirección de exploración, y la línea
perpendicular a la segunda dirección de exploración calculada a
partir del grupo de puntos centrales candidatos en la segunda
dirección de exploración es el punto central del diseño del
localizador. Es decir, se obtiene el punto central del diseño del
localizador desde la intersección de la línea vertical donde el
punto central obtenido por exploración en la dirección horizontal
está muy probablemente presente, y la línea vertical donde el punto
central obtenido por exploración en la dirección vertical está muy
probablemente presente.
Debe observarse también que después de la
exploración y coincidencia del diseño en una primera dirección de
exploración (dirección horizontal en esta realización), la dirección
de exploración es hecha girar 90 grados para exploración y
coincidencia del diseño en la segunda dirección de exploración
(dirección vertical en esta realización). El invento no está
limitado a la primera y segunda direcciones de exploración que son
perpendiculares entre sí; el ángulo entre la primera y segunda
direcciones de exploración puede ser cualquier ángulo siempre que
las dos direcciones de exploración se corten. Sin embargo, la
primera dirección y la segunda dirección son preferiblemente
ortogonales entre sí si, después de explorar en la dirección
horizontal, e toma una línea vertical a través del punto en el que
es mayor la probabilidad de las coordenadas centrales existentes en
la dirección vertical como se ha descrito antes. Además, cuando los
valores de datos explorados son almacenados en la VRAM como datos
bidimensionales en un sistema de coordenadas x-y,
que tienen la primera y segunda direcciones mutuamente
perpendiculares hacen más fácil el tratamiento y la lectura de
datos.
La fig. 5 es un diagrama de flujo del proceso
para encontrar el grupo de puntos centrales candidatos en la primera
dirección de exploración en el proceso de búsqueda del diseño del
localizador.
En primer lugar, se lleva a cabo una búsqueda en
la dirección horizontal para el diseño del localizador, y la
dirección de búsqueda es ajustada en ambos sentidos (direcciones)
(S501). Obsérvese que "ambos sentidos" como se ha usado aquí
significa por encima y por debajo de la línea de exploración
corriente en la dirección horizontal. A continuación, se inicia la
búsqueda con una línea en la mitad de la imagen capturada (altura
de imagen capturada/2) (S502). Esto es debido a que el símbolo está
en la mitad sustancialmente de una imagen que contiene el símbolo, y
el diseño del localizador de un símbolo de MaxiCódigo o Código
Azteca está en la mitad del símbolo.
Una línea de datos es a continuación capturada en
la dirección horizontal (S503), y la relación del diseño de color
(véase fig. 27 (b)) del diseño de negro y blanco es generada (S504).
La relación del diseño de color y la plantilla del diseño del
localizador antes descrita son a continuación comparados para
detectar una coincidencia entre ellos (S505).
Si la relación del diseño de color y la plantilla
no coinciden (S505 resulta No) y la exploración de la línea
horizontal no ha sido completada (S507 resulta No), es sabido que la
relación del diseño de color fue generada para datos de imagen
distintos de los del diseño del localizador. La relación del diseño
del color es por ello regenerada (por las operaciones S508 y S504),
y comparada de nuevo con la plantilla del diseño del localizador
(S505).
Si la relación del diseño de color y la plantilla
no coinciden (S505 resulta Si), las coordenadas x-y
son obtenidas y almacenadas para el punto medio entre los bordes
interiores del círculo negro más exterior (el punto medio entre B y
K en la fig. 26 (a)) como las coordenadas para el punto central del
círculo central del diseño del localizador (S506).
Si la exploración de una línea de datos es
completada (S507 resulta Si), el número de coordenadas de punto
medio del candidato para esa línea es determinado. Si hay una
coincidencia con la plantilla, el número de puntos de coordenadas es
uno (S509 resulta No), y el procedimiento avanza a S510.
En la operación S510, la línea de búsqueda es
desplazada una línea hacia arriba (correspondiente a una línea de
sensor de CCD) (a la línea 2 en la fig. 28), y las operaciones S503
a S509 se repiten. Si como resultado del desplazamiento de la línea
hacia arriba hay un par de coordenadas de punto medio (S509 resulta
No) y el procedimiento avanza al paso S510, la línea de búsqueda es
desplazada dos líneas hacia abajo (correspondiente a dos líneas de
sensor de CCD) (a la línea 3 en la fig. 28) porque la dirección de
búsqueda es ajustada a "ambos sentidos" en S501, y las
operaciones S503 a S509 se repiten.
Si las coordenadas de punto medio no son
encontradas como resultado del desplazamiento de dos líneas hacia
abajo (S509 resulta Si), el procedimiento avanza hacia S511, que
determina si el número total de puntos candidatos obtenidos desde
las líneas de exploración 1 a 3 es uno o más. Si hay uno o más
puntos candidatos (S511 resulta Si), el procedimiento avanza desde
S512 a S513, y la dirección de búsqueda es ajustada a "por
encima". Obsérvese que la dirección de búsqueda es ajustada a
"por encima" aquí para impedir búsquedas innecesarias debido a
que el diseño del localizador no puede ser encontrado por otra
exploración por debajo. Debido a que no se ha encontrado un punto
medio la primera vez cuando se buscaba la línea más abajo (línea 3
en la fig. 28), la búsqueda puede ser ajustada a una línea por
encima ajustando un indicador o banderola que indica que no hay
puntos medios por debajo, cambiando por ello la línea de exploración
de la siguiente operación de exploración a la línea por encima de la
línea 2 en la fig. 28, es decir, a la línea 4 en la fig. 28. En
otras palabras, sólo son exploradas las líneas situadas por encima
de la línea más elevada para las que la exploración ha sido
completada.
En este caso, después de ajustar la dirección de
búsqueda a "por encima" en las operaciones S513, S503 a S509
son repetidas de nuevo. Debido a que no se ha encontrado un punto
medio en la línea 4 en la fig. 28, S509 resulta Si, S511 resulta Si,
y S512 resulta No. La exploración en la dirección horizontal es
completada por ello, y el procedimiento avanza a S514.
Si no se ha encontrado una coincidencia de
plantilla cuando la exploración de una línea es finalizada (S505
resulta No, S507 resulta Si, y S509 resulta No), el procedimiento
avanza a S510, y la línea de exploración es desplazada una línea por
encima o por debajo, y el procedimiento vuelve de nuevo a S503.
Además, una banderola que indica que no hay punto
medio por encima es ajustada la primera vez que no se ha encontrado
un punto medio después de explorar una línea situada en la dirección
"por encima" mientras que la exploración es ajustada para ambos
sentidos. Como resultado, las operaciones de exploración
subsiguientes prosiguen sólo sobre líneas por debajo de la línea más
inferior para la que la exploración ha sido completada.
En las operaciones S514 y S515 las partes enteras
de las coordenadas x de los puntos candidatos son extraídas, y los
puntos candidatos son agrupados de tal manera que en cada grupo
todas las coordenadas x tienen el mismo valor entero. El número de
puntos candidatos en cada grupo es contado, y los puntos candidatos
del grupo con el valor de cómputo más elevado (el grupo de más
populoso) es seleccionado como el grupo del punto central candidato
final en la primera dirección de exploración (usando las valores de
la coordenada x respectiva al segundo lugar decimal) y la coordenada
y asociada con cada punto candidato seleccionado (también al segundo
lugar decimal) (S516).
La operación prosigue entonces para buscar en la
segunda dirección de exploración. Esto se ha descrito a continuación
con referencia a la fig. 6, un diagrama de flujo del proceso para
encontrar el grupo del punto central candidato en la segunda
dirección de exploración en el proceso de búsqueda del diseño del
localizador.
Un proceso sustancialmente igual que para las
búsquedas horizontales mostradas en la fig. 5 es a continuación
realizado después de S516 en la fig. 5. Este proceso es idéntico al
proceso de búsqueda horizontal excepto en que una línea en el
proceso horizontal mostrado en la fig. 5 es una columna; "por
encima" y "por debajo" a la dirección de búsqueda en la
fig. 5 son izquierda y derecha, respectivamente, en la fig. 6; y la
coordenada x en la fig. 5 es la coordenada y en la fig. 6. Los
procesos son por otro lado los mismos, y una descripción adicional
del mismo es así omitida aquí.
Por otro lado, mientras S502 en la fig. 5 se
refiere a (altura de imagen/2), S602 en la fig. 6 difiere porque usa
el valor de la coordenada x del candidato final obtenida en la
búsqueda horizontal. El valor de la coordenada x del candidato final
obtenido en la búsqueda horizontal (exploración) es usado aquí
porque con este valor el valor de la coordenada x del punto central
es ya sustancialmente conocido, y el tratamiento puede ser
completado más rápidamente buscando en la dirección vertical desde
aquí.
En las operaciones S614 a S616 en la fig. 6, el
grupo más populoso de puntos candidatos de la misma coordenada
entera y es seleccionado a partir de los puntos candidatos de una
manera análoga a la explicada en el contexto de la fig. 5. Los
valores de coordenada y (al segundo lugar decimal) del grupo
seleccionado y los valores de la coordenada x correspondientes (al
segundo lugar decimal) son almacenados como las coordenadas del
grupo de puntos centrales candidatos finales en la segunda dirección
de exploración.
La fig. 7 es un diagrama de flujo del proceso de
cálculo del punto central del diseño del localizador en el proceso
de búsqueda del diseño del localizador.
Avanzando a S701 en la fig. 7, es obtenida una
coordenada y de las almacenadas en la búsqueda horizontal mostrada
en la fig. 5 cuya parte entera coincide con el grupo más populoso
obtenido en la búsqueda en dirección vertical mostrada en la fig. 6,
y la coordenada x (al segundo lugar decimal) para esa coordenada y
es usada como la coordenada x (al segundo lugar decimal) del punto
central.
Además, en S704, es obtenida una coordenada x de
las almacenadas en la búsqueda vertical mostrada en la fig. 6 cuya
parte entera coincide con el grupo más populoso obtenido en la
búsqueda en dirección horizontal mostrada en la fig. 5, y la
coordenada y (al segundo lugar decimal) para esa coordenada x es
usada como la coordenada y (al segundo lugar decimal) del punto
central.
Si estos valores de coordenadas no pueden ser
seleccionados en S702 y S705, se ha decidido que las coordenadas
centrales no podrían ser encontradas.
Una realización alternativa de la operación de
búsqueda del diseño del localizador está descrita a
continuación.
Si el diseño negro y blanco obtenido por
exploración del diseño del localizador en la dirección horizontal y
el diseño de plantilla están en el orden
negro-blanco-negro-blanco-negro-blanco-negro-blanco-negro-blanco-negro
es determinado comparando simplemente la secuencia en la que negro y
blanco son detectados (no es necesario comparar relaciones). Como
resultado, si el diseño negro y blanco explorado coincide con la
plantilla, esa línea de exploración puede suponerse que atraviesa
sustancialmente la parte media del diseño del localizador (fig. 26
(a)). Las intersecciones (puntos B y K en la fig. 26 (a)) entre esa
línea de exploración y el miembro que constituye la parte más
exterior del diseño del localizador (el círculo más exterior de los
tres círculos negros en el símbolo de MaxiCódigo) son a continuación
obtenidas, y el punto medio entre ellas es usado como un punto
central candidato.
Como se ha observado antes, el borde interior del
círculo negro más exterior es referenciado con el fin de evitar
errores de interpretación resultantes de la presencia de un elemento
de imagen negro que toca el diseño del localizador.
La exploración es a continuación desplazada en
paralelo a la línea de exploración previa, y el punto medio entre
los puntos B y K es hecho el punto central. Esto se repite varias
veces.
Una línea que pasa a través de varios puntos
medios obtenidos explorando en la dirección horizontal es a
continuación explorada como la segunda dirección (dirección
vertical). Como al explorar horizontalmente, el punto medio entre
los puntos B y K es hecho el punto central, y esto es repetido
varias veces.
Las coordenadas de la intersección de una línea
que une varios puntos centrales obtenidos en la dirección horizontal
(primera dirección de exploración) y una línea que une varios puntos
centrales obtenidos en la dirección vertical (segunda dirección de
exploración), pueden ser obtenidas a continuación como las
coordenadas del centro (la intersección de las líneas de trazos en
la intersección ampliada en la fig. 33).
Es posible por medio de esta realización obtener
exactamente las coordenadas del centro de la diana del diseño del
localizador incluso cuando la imagen del diseño del localizador es
capturada desde un ángulo, o el diseño del localizador no es un
círculo sino una elipse. En este caso, al menos una de las primera y
segunda direcciones es ajustada preferiblemente a la dirección del
eje mayor o menor del óvalo. (Véase fig. 34).
Otra realización alternativa de las operaciones
de búsqueda del diseño del localizador descritas antes es descrita a
continuación con referencia a la fig. 8, fig. 26, fig. 27, fig. 28,
fig. 30, y fig. 31.
La fig. 8 es un diagrama de flujo de un proceso
de búsqueda de diseño del localizador en el proceso de
descodificación del símbolo de MaxiCódigo de acuerdo con el presente
invento mostrado en la fig. 3.
La imagen de símbolo de Maxicódigo es explorada
en una primera dirección de exploración para encontrar una línea de
exploración que pasa cerca del punto central del diseño del
localizador comparando el diseño (la "ecuación de relación de
diseño de color" siguiente) detectado a lo largo de una línea de
exploración particular con un diseño de referencia (la "plantilla
de diseño del localizador" siguiente). El punto central es a
continuación calculado a partir de la línea de exploración
encontrada.
La imagen es a continuación explorada desde el
punto central en una segunda dirección de exploración, que es
diferente de la primera dirección de exploración. La coincidencia de
diseño entre la plantilla del diseño del localizador y la relación
de diseño de color detectado en esta segunda dirección de
exploración (perpendicular) es usada para calcular un punto central
candidato para el diseño del localizador a partir de las líneas de
exploración (S801). Debe observarse que la línea de exploración
próxima al centro del diseño del localizador encontrada cuando se
explora en la primera dirección de exploración es denominada a
continuación como la línea central de la primera dirección de
exploración, el punto central del mismo es denominado como el punto
central de la primera dirección de exploración, y la línea de
exploración próxima al centro del diseño del localizador encontrada
cuando se explora en la segunda dirección de exploración es
denominada a continuación como la línea central de la segunda
dirección de exploración. La primera dirección de exploración se ha
supuesto además a continuación que pasa horizontalmente a través de
la imagen explorada, y la segunda dirección de exploración se ha
supuesto que pasa verticalmente a través de la imagen explorada.
La fig. 26 es usada para describir una plantilla
del diseño del localizador. La fig. 26 (a) muestra un diseño de
color en una línea que pasa a través del punto central del diseño
del localizador, y la fig. 26 (b) muestra la plantilla del diseño
del localizador.
Como se ha mostrado en la fig. 26 (a), el
resultado de la línea de búsqueda 2601 que pasa a través del punto
central del diseño del localizador en la dirección indicada por la
flecha es un diagrama de onda de impulso en el que un impulso alto
indica un módulo de datos blancos y un impulso bajo indica un módulo
de datos negro. Como se ha mostrado en la fig. 26 (b), si la
distancia desde el borde exterior del primer círculo negro (indicado
por A) al borde exterior del siguiente círculo negro (en C) es 1,
entonces la distancia desde el borde exterior del primer círculo
blanco (B) al mismo borde del siguiente círculo blanco (D) es
también 1. Además, la distancia desde el borde exterior (E) del
círculo negro que encierra directamente la diana del centro blanco
al borde interior (G) del mismo círculo negro en el otro lado del
centro blanco, y la distancia desde el primer borde (F) del centro
blanco al borde interior del siguiente anillo blanco (H) son ambas
1,26.
Por ello, si el diseño de la diana es explorado
de izquierda a derecha (A a L) a través del centro como se ha
descrito antes, y la relación de distancias de
negro-negro (A-C)
blanco-blanco (B-D),
negro-negro (C-E),...
blanco-blanco (J-L) es acumulada, la
relación de diseño de color
AC:BD:CE:DF:EG:FH:GI:HJ:IK:JL =
1:1:1:1:1,26:1,26:1:1:1:1
será cierta donde AC, por ejemplo,
indica la distancia desde el punto A al punto
C.
Esta ecuación que define la relación del diseño
de color de un diseño del localizador normal es almacenada en la
memoria 220 de datos de descodificación de la ROM 107 como una
plantilla de diseño del localizador.
Además, si el centro es explorado de derecha a
izquierda (L a A) y las distancias de borde a borde son expresadas
de nuevo como una relación en el orden negro-negro
(L-J), blanco-blanco
(K-I), negro-negro
(J-H),... blanco-blanco
(C-A), la relación será la misma, es decir,
LJ:KI:JH:IG:HF:GE:FD:EC:BD:CA =
1:1:1:1:1.26:1.26:1:1:1:1
Como se ha mostrado en la fig. 27 (a), la primera
operación es por ello explorar horizontalmente (en una primera
dirección de exploración) la mitad de la imagen completa 2701 de la
imagen explorada que contiene el símbolo de Maxicódigo para generar
una onda de impulso (véase fig. 27 (b)) basada en el diseño de color
de la línea de exploración 2702 y calcular la ecuación de relación
del diseño de color (relación del diseño de color) a lo largo de esa
línea de exploración. La relación detectada es a continuación
comparada por coincidencia de diseño con la plantilla de diseño del
localizador de Maxicódigo (fig. 26 (b)) almacenado en la memoria 220
de datos de descodificación en la ROM 107. Si la relación detectada
coincide con la plantilla, esa línea de exploración es definida como
una línea central candidata en la primera dirección de exploración
(línea central de la primera dirección de exploración). Obsérvese
que esta línea de exploración está aquí definida como una línea
central candidata ya que puede suceder que otros datos blanco y
negro estén dispuestos en los mismos intervalos que la
plantilla.
Si como se ha mostrado en la fig. 27 (b) el
número de puntos de comparación en la relación de diseño de color y
el número de puntos de comparación en la plantilla del diseño del
localizador no son los mismos, está claro que la línea no pasa a
través del punto central 2703 de la diana del diseño del
localizador. En este caso, como se ha mostrado en la fig. 28, la
imagen es explorada de nuevo, ahorquillando la línea central 1 de la
imagen completa 2801 por encima y por debajo con líneas de
exploración 2, 3, y así sucesivamente en exploraciones sucesivas. La
coincidencia de diseño usando la relación de diseño de color
detectada y la plantilla de diseño del localizador es repetida
después de cada exploración para encontrar la línea de exploración
que coincide con un diseño específico como se ha descrito antes, y
la línea de exploración determinada como que coincide con la
plantilla de modo más estrecho es definida como la línea central en
la dirección horizontal.
El punto medio entre la intersección de esta
línea central y el interior del círculo negro más exterior (es
decir, el punto correspondiente a B en la fig. 26 (b)), y la
intersección de esta línea central y el interior del círculo negro
más exterior en el lado opuesto (es decir, el punto correspondiente
a K en la fig. 26 (b)), es decir, dos puntos en el borde exterior
del círculo blanco más exterior del diseño del localizador, es a
continuación encontrado y definido como un punto central candidato
(punto central en la primera dirección de exploración).
Debe observarse que el punto medio entre los dos
puntos de borde exterior del círculo blanco más exterior es usado
para obtener las coordenadas centrales en vez de usar el punto medio
entre dos puntos de borde exterior del círculo negro más exterior
del diseño del localizador ya que los datos del elemento de imagen
negro pueden tocar el borde exterior del círculo negro más exterior
del diseño del localizador, y la situación de este círculo negro más
exterior podría por ello ser mal interpretada.
La fig. 30 muestra un diseño del localizador
explorado en una segunda dirección de exploración. Se ha encontrado
una línea de exploración cerca del punto central del diseño del
localizador, y un punto central candidato del diseño del localizador
es calculado a partir de la línea de exploración encontrada,
explorando desde el punto central de la primera dirección de
exploración 3001 en una segunda dirección de exploración que difiere
de la primera dirección de exploración, y comparando la relación del
diseño de color a lo largo de esta segunda línea de exploración con
la plantilla de diseño del localizador.
La exploración es realizada en una segunda
dirección de exploración (dirección vertical) desplazada 90 grados
con relación a la dirección de exploración horizontal, y la misma
operación de coincidencia de diseño aplicada en la dirección
horizontal es realizada. Para explorar en la dirección vertical, es
explorada una línea (la línea vertical previamente obtenida)
ortogonal a la línea central horizontal y que pasa a través del
punto central calculado previamente de la línea central. Debe
observarse que en vez de explorar la longitud completa en la
dirección vertical de la línea que pasa por el punto central
obtenido explorando horizontalmente, una relación de diseño de color
para sólo una plantilla del diseño del localizador es calculada de
manera que el punto central en la primera dirección de exploración
está en el centro de la misma, y esta relación del diseño de color
es a continuación comparada con la plantilla del diseño de
color.
La velocidad con la que las coordenadas centrales
verdaderas del diseño del localizador pueden ser obtenidas puede así
ser mejorada ya que el punto central antes calculado de la línea de
exploración horizontal tiene la probabilidad más elevada de ser el
punto central verdadero del diseño del localizador.
Como durante la exploración horizontal, si la
relación del diseño de color coincide con la plantilla del diseño
del localizador mostrada en la fig. 26 (b), el punto medio entre
puntos en el borde exterior del círculo blanco más exterior
explorado en la dirección vertical es definido como el punto central
candidato del diseño del localizador. Si la relación del diseño de
color no coincide con la plantilla del diseño del localizador en la
fig. 26 (b), se repite la exploración horizontal a lo largo de una
línea de exploración separada verticalmente de la línea central
horizontal, y los datos capturados son almacenados en el registro
211 de información del diseño del localizador de la VRAM 106 (véase
fig. 28).
Será obvio para un experto ordinario en la
técnica relacionada que el orden de las operaciones de exploración
vertical y horizontal no es importante, y cualquier dirección puede
ser explorada en primer lugar.
Finalmente, el punto central del diseño del
localizador es calculado basado en el punto central candidato
calculado del diseño del localizador (S802).
La fig. 31 ilustra el cálculo del punto central
del diseño del localizador.
Como se ha mostrado en la figura 31, el diseño
del localizador es explorado de nuevo en una primera dirección de
exploración 3102 a la derecha e izquierda del punto central
candidato del diseño del localizador 3101, y los puntos en los que
el diseño de color cambia de blanco a negro son etiquetados como P1
y P2. El diseño del localizador es a continuación explorado de nuevo
en una segunda dirección de exploración 3103 por encima y por
debajo del punto central candidato del diseño del localizador 3101,
y los puntos en los que el diseño de color cambia de blanco a negro
son etiquetados como P3 y P4. El baricentro 3104 del cuadrilátero de
vértices P1, P2, P3 y P4 es a continuación calculado para obtener el
centro del diseño del localizador. Aunque el punto central candidato
del diseño del localizador puede ser usado como el punto central
verdadero del diseño del localizador, la distorsión hace a menudo
que el punto central se desplace. Es por ello preferible volver a
calcular el punto central verdadero del diseño del localizador.
Debe observarse también que después de la
exploración y la coincidencia del diseño en una primera dirección de
exploración (dirección horizontal en esta realización), la dirección
de exploración es girada 90 grados para exploración y coincidencia
de diseño en la segunda dirección de exploración (dirección vertical
en esta realización). El invento no está limitado a direcciones
perpendiculares, sin embargo, como el ángulo entre las primera y
segunda direcciones de exploración puede ser cualquier ángulo
siempre que las dos direcciones de exploración se corten. Además,
cuando los valores de datos explorados son almacenados en la VRAM
como datos bidimensionales en un sistema de coordenadas
x-y, que tiene la primera y segunda direcciones
mutuamente perpendiculares hace la lectura y tratamiento de datos
más fácil.
La fig. 9 es un diagrama de flujo del proceso
para encontrar el grupo de puntos centrales candidatos en el proceso
de búsqueda del diseño del localizador.
La exploración comienza con una línea en el medio
de la imagen (altura de imagen capturada/2) (S901). Esto es debido a
que el símbolo está sustancialmente en el medio de una imagen que
contiene el símbolo, y el diseño del localizador del símbolo de
Maxicódigo o Código Azteca está en el medio del símbolo.
Una línea de datos es a continuación capturada en
la dirección horizontal (S902), y es generada una relación del
diseño de color (véase fig. 27 (b)) del diseño blanco y negro
(S903). La relación del diseño de color y la plantilla del diseño
del localizador antes descrita son a continuación comparados para
detectar una coincidencia entre ellos (S904).
Si la relación del diseño de color y la plantilla
no coinciden (S904 resulta No) y la exploración de la línea
horizontal no ha sido completada (S905 resulta No), es sabido que la
relación del diseño de color fue generada para otros datos de imagen
distintos de los del diseño del localizador. La relación del diseño
del color es por ello regenerada (por las operaciones S907 y S903),
y comparada de nuevo con la plantilla del diseño del localizador
(S904).
Si la relación del diseño de color y la plantilla
coinciden (S904 resulta Si), las coordenadas x-y son
obtenidas y almacenadas para el punto medio entre los bordes
interiores del círculo negro más exterior (el punto medio entre B y
K en la fig. 26 (a)) como las coordenadas para el punto central de
la diana del diseño del localizador (S909).
Los datos requeridos para la comparación con una
plantilla del diseño del localizador son a continuación capturados
en una línea de exploración que es perpendicular a la primera
dirección de exploración y que pasa a través del punto central
obtenido en la operación S909 como se ha mostrado en la fig. 30
(S910). La relación del diseño de color es calculada a continuación
y compilada (S911), y comparada con la plantilla del diseño del
localizador (S912).
Si la relación del diseño de color y la plantilla
del diseño del localizador no coinciden (S912 resulta No), es sabido
que el punto central obtenido en la operación S909 no es el punto
central del diseño del localizador. El proceso vuelve nuevo por ello
a explorar otra línea en la dirección horizontal (S912 a S905).
Si la relación del diseño de color y la plantilla
del diseño del localizador coinciden (S912 resulta Si), las
coordenadas x-y son obtenidas y almacenadas para el
punto medio entre los bordes interiores del círculo negro más
exterior (el punto medio entre B y K en la fig. 26 (a)) como las
coordenadas para un punto central candidato del diseño del
localizador (S913).
Si no se ha encontrado una coincidencia de
plantillas cuando ha terminado la exploración de una línea (S904
resulta No, S912 No, y S905 Si), el procedimiento avanza a S906. Si
no ha terminado la exploración de todas las líneas (S906 resulta
No), la línea de exploración es desplazada una línea por encima o
por debajo de la línea de exploración previa (S908), y el
procedimiento vuelve de nuevo a S902. Si se ha completado la
exploración de todas las líneas (S906 resulta Si), es sabido que el
punto central del diseño del localizador podría no ser encontrado, y
el proceso termina en una búsqueda fallida.
La fig. 10 es un diagrama de flujo de un proceso
de búsqueda de punto central del diseño del localizador en el
proceso de búsqueda del diseño del localizador del presente
invento.
Los datos son capturados en primer lugar en una
dirección de exploración horizontal a la derecha e izquierda del
punto central candidato del diseño del localizador obtenido como se
ha mostrado en la fig. 9 (S1001), y los puntos donde el color del
elemento de imagen cambia de blanco a negro son etiquetados P1 y P2
(S1002) (véase fig. 31). Los datos son capturados a continuación
explorando el diseño del localizador desde el punto central del
diseño del localizador obtenido como se ha mostrado en la fig. 9 en
una dirección de exploración vertical (S1003), y los puntos donde el
diseño de color cambia de blanco a negro son etiquetados P3 y P4
(S1004) (véase fig. 31).
A continuación se calcula un cuadrilátero virtual
de vértices P1, P2, P3 y P4, y se calculan las coordenadas x, y del
baricentro de este cuadrilátero (S1005). El baricentro obtenido por
este cálculo es usado como el punto central del diseño del
localizador (S1006).
Esta realización del presente invento puede así
obtener exactamente el punto central del diseño del localizador
cuando la imagen del diseño del localizador es capturada desde un
ángulo y el diseño del localizador en la imagen explorada no es ya
circular sino elíptico. Lo mismo se aplica cuando la imagen del
diseño del localizador no es capturada desde una ángulo sino que el
diseño del localizador en el propio símbolo de código es elíptico.
Cuando la imagen del diseño del localizador es elíptica, el punto
central candidato 201 obtenido en el proceso mostrado en la fig. 9
está a menudo desplazado del verdadero punto central del diseño del
localizador (véase fig. 32 (a)). Sin embargo, obteniendo el
baricentro 3202 como se ha mostrado en la fig. 10, el punto central
del diseño del localizador puede ser situado exactamente (véase fig.
32 (b)).
Una realización preferida de la operación de
corrección de imagen antes indicada está descrita a continuación con
referencia a la fig. 11, fig. 36, fig. 37 y fig. 61.
La fig. 11 es un diagrama de flujo del proceso de
corrección de imagen en el proceso de descodificación del símbolo de
MaxiCódigo mostrado como operación S303 en la fig. 3.
Como se ha descrito antes, la operación S302 del
proceso de descodificación del símbolo de MaxiCódigo mostrado en la
fig. 3 busca el diseño del localizador y calcula las coordenadas
para el punto central del diseño del localizador, y las coordenadas
de posición para los límites de color entre los círculos blanco y
negro del diseño del localizador como la información de forma del
diseño del localizador. Además, debido a que todos los módulos de
datos pueden ser encontrados situando los módulos de orientación del
símbolo de MaxiCódigo, es suficiente aplicar la corrección de imagen
a los datos de elemento de imagen en el área en la que hay presentes
módulos de orientación. Por ello sólo es necesario que la ecuación
de corrección del ángulo de carga sea cierta en el área de imagen
donde hay presentes módulos de orientación del símbolo de
MaxiCódigo.
Debe observarse además que los módulos de
orientación son adyacentes al diseño del localizador en un símbolo
de MaxiCódigo. La ecuación de corrección del ángulo de carga para el
diseño del localizador puede por ello también ser aplicada a los
módulos de orientación.
El proceso de corrección de imagen determina por
ello si anillos del diseño del localizador pueden ser aproximados
por elipses respectivas basado en las coordenadas del punto central
del diseño del localizador y los grupos de coordenadas para los
punto de transición en los anillos negro y blanco del diseño del
localizador (S1101). Debe observarse que los anillos del diseño del
localizador en este caso son los círculos del diseño del localizador
del símbolo de MaxiCódigo normales deformados en la imagen
explorada.
Si los anillos del diseño del localizador puede
ser aproximados por elipses (S1101 resulta Si), el procedimiento
avanza a la siguiente operación (S1103). En esta realización
preferida del invento los anillos del diseño del localizador puede
ser aproximados por elipses si, por ejemplo, la distancia entre el
punto central C de la imagen explorada y el punto central O del
diseño del localizador están dentro de un intervalo definido (véase
fig. 35) (es decir, el punto central O del diseño del localizador
está cerca del punto central C de la imagen explorada), y la
relación entre la distancia entre el punto focal P y el punto
central C, y la longitud del segmento de línea AB, que es el
diámetro del diseño del localizador (= longitud de línea PC/longitud
del segmento AB) es mayor que o igual a un valor de umbral definido
(es decir, el radio del diseño del localizador es bastante menor que
la distancia entre el punto focal P y el punto central C).
Si los anillos del diseño del localizador no
pueden ser aproximados por elipses (S1101 resulta No), se calcula
una ecuación de corrección del ángulo de carga basado en las
coordenadas del punto central del diseño del localizador del símbolo
de MaxiCódigo y las coordenadas de los límites blanco y negro en el
diseño del localizador (S1102), y el procedimiento avanza a la
operación S1107.
Obsérvese además, que puede generarse
directamente una tabla de corrección del ángulo de carga basado en
la relación entre la forma del diseño del localizador en un símbolo
de MaxiCódigo real y la forma del diseño del localizador en la
imagen explorada, en vez de calcular una ecuación de corrección del
ángulo de carga, y a continuación realizar la operación S1107.
La relación entre los círculos en un diseño del
localizador normal y las elipses del diseño del localizador en una
imagen explorada cuando los anillos del diseño del localizador
pueden ser aproximados por elipses es considerada a
continuación.
La fig. 36 muestra la relación entre un círculo y
una elipse. Como se ha mostrado en la fig. 36, si un círculo es
distorsionado en una elipse en la imagen explorada capturada en un
ángulo, el punto P del círculo es desplazado al punto P' de la
elipse. Supongamos, como se ha mostrado en la fig. 36, que el eje
mayor de la elipse es el eje horizontal, el punto central es el
punto O, el eje mayor es el segmento AC, y el eje menor es el
segmento BD. Si el ángulo AOP es \theta y el ángulo AOP' es
\theta', la relación entre el ángulo \theta y el ángulo
\theta' es como se ha mostrado en la siguiente ecuación de
corrección del ángulo de carga
\theta' =
arctg(\gamma*tg\theta)
donde \gamma es la relación de la
elipse (= longitud del segmento de línea BO/longitud del segmento de
línea AO) y "*" es el operador de
multiplicación.
El punto P situado en el ángulo \theta en un
círculo es así desplazado al punto P' en el ángulo \theta' en la
elipse.
A continuación se genera una tabla de corrección
del ángulo de carga basada en esta ecuación de corrección del ángulo
de carga. Es decir, se compila una tabla que contiene valores de
conversión \theta - \theta', es decir, valores para conversiones
entre el ángulo \theta y el ángulo \theta', generados para cada
ángulo \alpha de corrección de incremento, que determina la
precisión de la corrección.
Esto se consigue ajustando en primer lugar las
divisiones de ángulo basadas en el ángulo \alpha de corrección de
incremento, que determina la precisión de la corrección de la tabla
de corrección del ángulo de carga (S1103). Es decir, el número de
divisiones usado para corregir todos los ángulos (360 grados) es
calculado basado en el ángulo \alpha de corrección de incremento
para ajustar las divisiones de ángulo. Obsérvese que \alpha es un
submúltiplo entero de 60. Se observará que los módulos de
orientación que indican la orientación del símbolo de MaxiCódigo
real están dispuestos a intervalos de 60 grados alrededor del punto
central del símbolo de MaxiCódigo. La división del ángulo segmenta
así el ángulo completo cada 60 grados, y a continuación divide en
60 grados cada ángulo \alpha de corrección de incremento. Es
decir, la división del ángulo expresa el ángulo \theta usando una
matriz bidimensional (i,j) que da como resultado la ecuación
siguiente donde i es un entero desde 0 a 5, y j es un entero desde 0
a n.
n =
60/\alpha-1
\theta(i,j) = 60*I +
\alpha*j
Por ejemplo, si \alpha = 1, es decir, si la
precisión de la tabla de conversión de \theta - \theta' es de 1
grado, el ángulo \theta(i,j) es expresado por una matriz de
6 x 60 donde i = 0-5 y j = 0-59.
Un ángulo de desplazamiento es a continuación
ajustado (S1104) para generar una tabla de conversión de valores
desplazados por un ángulo de desplazamiento con respecto al ángulo
\theta.
Como se ha observado antes, los tres módulos de
orientación, un módulo de orientación interior, módulo de
orientación exterior, y módulo de orientación central, de cada grupo
de módulos de orientación tienen casi la misma orientación en un
símbolo de MaxiCódigo. El ángulo de desplazamiento es por ello
ajustado a un ángulo entre la orientación del módulo de orientación
interior y el módulo de orientación exterior, y la orientación del
módulo de orientación central.
La fig. 37 muestra la relación entre el ángulo
del módulo de orientación interior y el módulo de orientación
exterior y el ángulo del módulo de orientación central. La fig. 37
(a) muestra los módulos de orientación en un símbolo de MaxiCódigo
real, y la fig. 37 (b) muestra los módulos de orientación en una
imagen explorada.
Como se ha mostrado en la fig. 37 (a), el ángulo
de desplazamiento \beta está definido por la siguiente
ecuación
\beta =
\theta1 -
\theta2
donde el ángulo \theta1 es el
ángulo entre el eje horizontal y la orientación del módulo de
orientación interior 3701 y el módulo de orientación exterior 3702,
y el ángulo \theta2 es el ángulo entre el eje horizontal y el
módulo de orientación central
3703.
Como se ha mostrado en la fig. 61, las siguientes
ecuaciones son ciertas en las que el punto O es el punto central del
símbolo de MaxiCódigo, el punto D es el punto medio entre el punto
central y el módulo de orientación interior y el punto central del
módulo de orientación exterior, el punto A es el punto central del
módulo de orientación exterior, el punto C es el punto central del
módulo de orientación central, y W es la anchura de módulo
(distancia entre puntos centrales de módulos adyacentes).
longitud del
segmento de línea OD =
6,5*W
longitud del
segmento de línea DC =
3/2*W
tg \beta =
3/(2*6)
Como se ha observado antes, el ángulo de
desplazamiento \beta puede ser expresado como
\beta =
arctg(\sqrt{3}/(2*6) \approx
7,59
Con preferencia a la fig. 37 (a), la relación
entre el ángulo \theta1(i,j) y el ángulo
\theta2(i,j) está definida por la ecuación
\theta2(i,j) =
\theta1(i,j) -
\beta
A continuación, se genera una tabla de corrección
del ángulo de carga usando la aproximación por elipse basado en las
divisiones de ángulo (S1105).
Como se ha mostrado en la fig. 36, si un círculo
es distorsionado a una elipse en la imagen explorada capturada desde
un ángulo, el punto P en el círculo es desplazado al punto P' en la
elipse. Por ello, como se ha mostrado en la fig. 37 (b), si el punto
P' es el punto central del módulo de orientación interior 3704 o del
módulo de orientación exterior 3705, el ángulo \theta1'(i,j) entre
el eje horizontal y el módulo de orientación interior 3704 y el
módulo de orientación exterior 3705 de determinado por la ecuación
de corrección del ángulo de carga
\theta1'(i,j)
=
arctg(\gamma*tg\theta1(i,j))
cuando i = 0, 1, o
2.
\theta1'(i,j)
= \theta1'(i-3,j) +
180
cuando i = 3, 4 o
5.
Además, si el ángulo de desplazamiento es
\beta, el ángulo \theta2'(i,j) entre el eje horizontal y el
módulo de orientación central 3706 es determinado por la ecuación de
corrección del ángulo de carga
\theta2'(i,j)
=
arctg(\gamma*tg\theta2(i,j))
\theta2(i,j) =
\theta1(i,j) -
\beta
cuando i = 0, 1, o
2.
\theta2(i,j) =
\theta2'(i-3,j) +
180
cuando i = 3, 4 o
5.
Por ello, el ángulo \theta2, el ángulo
\theta1', y el ángulo \theta2' para el ángulo subdividido
\theta1 son calculados usando las anteriores ecuaciones de
corrección de ángulo de carga, y los resultados son almacenados como
elementos de la tabla de corrección del ángulo de carga.
A continuación se determina (S1106) si los
elementos de la tabla de corrección del ángulo de carga ha sido
calculados para todas las divisiones de ángulo. Si lo han sido
(S1106 resulta Si), el procedimiento avanza a la operación S1107. Si
no lo han sido (S1106 resulta No), la operación S1105 es repetida
hasta que los elementos de la tabla de corrección del ángulo de
carga han sido calculados en todos los ángulos.
Los datos de elemento de imagen de la imagen
explorada son a continuación corregidos basado en la tabla de
corrección del ángulo de carga resultante (S1107).
Finalmente, la tabla de corrección del ángulo de
carga resultante es almacenada en el registro 212 de datos de
corrección de imagen de VRAM 106 (S1108). Será obvio para un experto
en la técnica que las ecuaciones de corrección del ángulo de carga y
la información de división podrían ser almacenadas en lugar de la
tabla de corrección del ángulo de carga. Además, la tabla de
corrección del ángulo de carga puede almacenar las ecuaciones de
corrección del ángulo de carga y la información de división.
La operación de búsqueda del módulo de
orientación está descrita a continuación con referencia a la fig.
12, fig. 38, fig. 39, y fig. 61.
La fig. 12 es un diagrama de flujo del proceso de
búsqueda del módulo de orientación en el proceso de descodificación
del símbolo MaxiCódigo del presente invento.
La primera operación es ajustar el intervalo de
búsqueda del módulo de orientación (S1201).
La fig. 61 muestra la relación entre el diseño
del localizador y los módulos de orientación en un símbolo de
MaxiCódigo real. Como se ha mostrado en la figura 61, el polígono
virtual 6101 que conecta los puntos centrales de los módulos de
orientación interior del símbolo de MaxiCódigo es un hexágono
regular cuya longitud de un lado es seis veces la anchura del
módulo W, y el polígono virtual 6101 que conecta los puntos
centrales de los módulos de orientación exteriores es un hexágono
regular cuya longitud de un lado es siete veces la anchura del
módulo W. Obsérvese que la anchura del módulo W es la distancia
entre los puntos centrales de los módulos adyacentes. Además, el
punto O es el punto central del símbolo MaxiCódigo, el punto E es el
punto central de un módulo de orientación interior, el punto D es el
punto medio entre el punto central de un módulo de orientación
interior y el punto central de un módulo de orientación exterior, el
punto A es el punto central de un módulo de orientación exterior, y
el punto C es el punto central de un módulo de orientación
central.
Se ha encontrado por ello que el punto central de
un módulo de orientación interior en un círculo cuyo radio es el
segmento de línea OE, el punto central de un módulo de orientación
exterior se ha encontrado en un círculo cuyo radio es el segmento de
línea OA, el punto central de un módulo de orientación central se ha
encontrado en un círculo cuyo radio es el segmento de línea OC, y
cada uno depende de la anchura de módulo W. Las longitudes de los
segmentos de línea OE, OA y OC se han mostrado a continuación.
longitud del
segmento OE =
6.000*W
longitud del
segmento OA =
7.000*W
longitud del
segmento OC = raíz cuadrada de (longitud del segmento
OD)^{2} + (longitud del segmento
DC)^{2}).
\approx
6.543*W
El intervalo de búsqueda para módulos de
orientación en la imagen explorada de un símbolo MaxiCódigo está
descrito a continuación con referencia a la fig. 38. La fig. 38 (a)
muestra la anchura de módulo W, y la fig. 38 (b) muestra la relación
entre la anchura de módulo W y el punto central de un módulo de
orientación interior.
Como se ha mostrado la fig. 38 (a), la anchura de
módulo W es calculada a partir del radio de límite de color 3803
entre las partes blanca 3801 y negra 3802 del diseño del
localizador. Como se ha mostrado en la fig. 61, el límite de color
6103 es un círculo en la imagen explorada de un símbolo MaxiCódigo
capturada desde el frente (es decir, sin formar un ángulo), pero
cuando la imagen explorada es capturada en ángulo el límite de
color 3803 es una forma que se parece a una elipse como se ha
mostrado en la fig. 38 (a).
Como se ha mostrado también en la fig. 61, la
siguiente ecuación es cierta cuando el punto F es un punto en el
límite de color circular 6103 y R' es el radio del círculo.
R' <
4,0*W
Por ello si el radio del límite de color 3803 en
la fig. 38 (a) es R, la anchura W del módulo puede ser calculada
como
W =
R/n
donde n es la tasa, es decir, una
variable que correlaciona el radio R y la anchura W del módulo. En
este caso la tasa n es un valor desde 4,00 a 3,00 en incrementos de
0,05.
Como se ha mostrado en la fig. 38 (b), la tasa n
es variada mientras se busca el punto central del módulo de
orientación interior debido a que el punto central del módulo de
orientación interior está situado en un círculo de radio L1. En esta
realización preferida el radio L1 es = 6.000*W.
Los puntos centrales del módulo de orientación
exterior y del módulo de orientación central están probablemente
sobre círculos de radios L2 y L3 (no mostrados), respectivamente.
Por ello, los puntos centrales de los módulos de orientación
exterior y central son por ello buscados también mientras varía la
tasa n. En esta realización preferida el radio L2 es = 7.000*W y el
radio L3 = 6,543*W.
Además, como se ha mostrado en la fig. 61, la
línea que conecta el punto central O y el punto central C de un
módulo de orientación central forma una ángulo \beta con la línea
que une el punto central O y el punto central A del módulo de
orientación exterior. El ángulo \beta es denominado aquí como el
ángulo de desplazamiento del módulo de orientación central. Este
ángulo de desplazamiento del módulo de orientación central es
definido como:
tg\beta =
(longitud del segmento DC)/(longitud del segmento
OD)
\beta\approx
7,59
El intervalo de búsqueda del módulo de
orientación es así ajustado.
A continuación, se genera un diseño de plantilla
de color para el grupo de módulos de orientación interior, grupo de
módulos de orientación exterior, y grupo de módulos de orientación
central usando los valores de bit negro = 1 y blanco = 0 (S1202).
Obsérvese que el grupo de módulos de orientación interior consiste
del conjunto de seis módulos de orientación interior (uno en cada
uno de los seis grupos de módulos de orientación), el módulo de
orientación exterior consiste del conjunto de seis módulos de
orientación exterior, y el grupo de módulos de orientación central
consiste del conjunto de seis módulos de orientación central.
La fig. 39 muestra un diseño de plantilla de
color ejemplar. Como se ha mostrado en la fig. 39 las seis
orientaciones están mostradas como orientaciones 0 a 5. El diseño de
plantilla de color es generado compilando un diseño de bit dónde
negro = 1 y blanco = 0 dos veces para cada orientación 0 a
orientación 5.
Los diseños de plantilla de color para el grupo
de módulos de orientación interior, grupo de módulos de orientación
exterior, y grupo de módulos de orientación central así compilados
son mostrados a continuación.
diseño de plantilla de color del grupo de módulos
de orientación interior = 101101101101
diseño de plantilla de color del grupo de módulos
de orientación exterior = 001011001011
diseño de plantilla de color del grupo de módulos
de orientación central = 101110101110.
A continuación, son buscados los módulos de
orientación candidatos en el grupo de módulos de orientación
interior, grupo de módulos de orientación exterior, y grupo de
módulos de orientación central que coincidan con el diseño de
plantilla de color basados en la tasa n (S1203). Si no hay módulos
de orientación que coincidan con el diseño de plantilla de color, se
ha concluido que no hay datos de módulo de orientación
candidato.
A continuación (S1204) es determinado si hay
algún dato de módulo de orientación candidato que se ha encontrado
basado en todas las tasas n definidas. Si lo hay (S1204 resulta Si),
el procedimiento avanza a la operación S1205. Si no se ha encontrado
tal dato de módulo de orientación candidato (S1204 resulta No), se
repite la operación S1203 hasta que se hayan encontrado datos de
módulo de orientación candidato basado en todas las tasas n
definidas.
A continuación (S1205) se determina si hay
presentes algunos datos de módulo de orientación candidato. Si los
hay (S1205 resulta Si), los módulos de orientación son determinados
a partir de los datos del módulo de orientación candidato (S1206), y
el proceso de búsqueda del módulo de orientación termina.
Si no hay datos del módulo de orientación
candidato (S1205 resulta No), se genera un error que indica que no
podría encontrarse un módulo de orientación (S1207), y el proceso de
descodificación termina.
El anterior proceso para encontrar datos de
módulo de orientación candidato está descrito en mayor detalle a
continuación.
La fig. 13 es un diagrama de flujo del proceso de
búsqueda actos de módulo de orientación candidato en el proceso de
búsqueda de módulo de orientación.
Como se ha descrito en la operación S1201 en la
fig. 12, los miembros del grupo de módulos de orientación interior
se han encontrado en un círculo de radio L1, los miembros del grupo
de módulos de orientación exterior se han encontrado en un círculo
de radio L2, y los miembros del grupo de módulos de orientación
central se han encontrado en un círculo de radio L3 basado en la
tasa n. El ángulo de desplazamiento de los módulos de orientación
central es el ángulo \beta. Además, los seis módulos de
orientación interior que constituyen el grupo de módulos de
orientación interior están situados a intervalos de 60 grados
alrededor del punto central del diseño del localizador. Lo mismo es
cierto para los seis módulos de orientación del grupo de módulos de
orientación exterior y los seis módulos de orientación del grupo de
módulos de orientación central.
El ángulo \theta de búsqueda del módulo de
orientación es expresado dividiendo el ángulo completo cada 60
grados y a continuación dividiendo éstas divisiones de 60 grados
cada ángulo \alpha de incremento de búsqueda usando una matriz
bidimensional (i,j), y los módulos de orientación son encontrados
entonces. Obsérvese que i es un entero de 0 a 5, y j es un entero de
0 a n.
n =
60/\alpha-1
\theta(i,j) = 60*i +
\alpha*j
Por ejemplo, si el ángulo de incremento de
búsqueda \alpha = 1, el ángulo \theta(i,j) es expresado
por una matriz de 6 x 60 donde i es un entero de 0 a 5 y j es un
entero de 0 a 59. El área del ángulo representada por i es el área
i. Por ejemplo, el área donde i = 0, es decir, 0 < = \theta
< 60, es el área 0.
Un grupo de módulos de orientación interior que
coincida con el diseño de plantilla de color del grupo de módulos de
orientación interior es detectado en primer lugar en el ángulo de
búsqueda \theta para detectar candidatos de módulos de orientación
interior (S1301).
\newpage
Entonces se determina (S1302) si se han
encontrado candidatos de módulo de orientación interior. Si es si
(S1302 resulta Si), el procedimiento avanza a la operación S1303. Si
es no (S1302 resulta No), el procedimiento avanza a la operación
S1307 para desplazarse al ángulo de búsqueda siguiente.
A continuación, se detecta un grupo de módulos de
orientación exterior que coincide con el diseño de plantilla de
color del grupo de módulos de orientación exterior para detectar
candidatos de módulo de orientación exterior (S1303).
A continuación se determina (S1304) si se han
encontrado candidatos de módulos de orientación exterior. Si es si
(S1304 resulta Si) el procedimiento avanza a la operación S1305. Si
es no (S1304 resulta No), el procedimiento avanza a la operación
S1307 para desplazarse al siguiente ángulo de búsqueda.
A continuación, se detecta un grupo de módulos de
orientación central que coincide con el diseño de plantilla de color
del grupo de módulos de orientación central para detectar candidatos
de módulo de orientación central (S1305).
A continuación se determina (S1306) si se han
encontrado candidatos de módulos de orientación exterior. Si es si
(S1306 resulta Si) el procedimiento avanza a la operación S1307. Si
es no (S1306 resulta No), el procedimiento avanza a la operación
S1307 para desplazarse al siguiente ángulo de búsqueda.
A continuación se determina (S1307) si se ha
usado cada ángulo de búsqueda para situar los datos de candidato. Si
se han buscado todos los ángulos de búsqueda (S1307 resulta Si), el
procedimiento avanza a la operación S1308. Si no es así (S1307
resulta No), se repiten las operaciones S1301 a S1306 hasta que
todos los ángulo de búsqueda han sido buscados.
Debe observarse que debido a que los módulos de
orientación están situados a intervalos regulares de 60 grados
alrededor del punto central del diseño del localizador, el intervalo
de búsqueda del ángulo de búsqueda \theta es una división del
ángulo de búsqueda entre 0 grados y menos de 60 grados. El ángulo de
búsqueda \theta puede por ello ser denominado como área 0.
A continuación se determina (S1308) si se han
encontrado candidatos para los módulos de orientación interior,
módulos de orientación exterior, y módulos de orientación central.
Si se han encontrado (S1308 resulta Si), los candidatos de módulo de
orientación consistentes de los candidatos de módulo de orientación
interior, candidatos de módulo de orientación exterior, y candidatos
de módulo de orientación central encontrados en la tasa n son
fijados (S1309), y el proceso de búsqueda de candidato del módulo de
orientación termina.
Sin embargo, si no hay candidato de módulo de
orientación interior, candidato de módulo de orientación exterior, o
candidato de módulo de orientación central (S1308 resulta No), se
produce un error en el proceso de manipulación debido a que no se ha
encontrado candidato del módulo de orientación a la tasa n (S1310),
y el proceso de búsqueda de candidato de módulo de orientación
termina.
Debe observarse que la operación S1301 para
detectar candidatos de módulo de orientación interior, la operación
S1303 para detectar candidatos de módulo de orientación exterior, y
la operación S1305 para detectar candidatos de módulo de orientación
central en el proceso anterior de búsqueda de candidatos de módulo
de orientación no depende de ningún orden particular. Estas
operaciones pueden ser realizadas en cualquier orden en la medida en
que los candidatos de módulo de orientación interior, candidatos de
módulo de orientación exterior, y candidatos de módulo de
orientación central puedan ser detectados.
Un proceso para detectar los candidatos de módulo
de orientación interior en el proceso anterior de búsqueda de
candidato de módulo de orientación está descrito con más detalle a
continuación.
La fig. 14 es un diagrama de flujo del proceso de
búsqueda de candidato del módulo de orientación interior en el
proceso anterior de búsqueda de candidato del módulo de
orientación.
Debido a que hay presente un módulo de
orientación interior en seis direcciones, se ha supuesto que hay
presente un módulo de orientación interior en el ángulo \theta de
búsqueda, y las posiciones de los módulos de orientación interior
candidatos en las seis direcciones son calculadas (S1401).
La fig. 40 muestra la posición de un módulo de
orientación candidato en el ángulo \theta búsqueda cuanto el punto
central del diseño del localizador es el punto O, el punto central
del módulo de orientación interior candidato presente en un círculo
de radio L1 en el área i es el punto Aij, y el ángulo entre el
segmento OAij y el eje x es el ángulo \thetaij; el punto central
del módulo de orientación exterior candidato presente en un círculo
de radio L2 es el punto A'ij; el punto central del módulo de
orientación central candidato presente en un círculo de radio L3 es
el punto A''ij; y el ángulo de desplazamiento del módulo de
orientación central es \beta, además, las coordenadas del punto
Aij son (xij, yij), Las color de nado del punto A'ij son (x'ij,
y'ij), Las coordenadas del punto A''ij son (x''ij, y''ij), y las
coordenadas del punto \thetaij son \theta(i,j).
Como se ha mostrado en la fig. 40, la situación
del punto A0j en el área i=0 está definida por las siguientes
ecuaciones.
X0j = L1 *
sen(\theta0j)
Y0j = L1 *
cos(\theta0j)
\Theta0j =
\theta(0,j)
Los puntos centrales Aij de los módulos de
orientación interior candidatos en las seis direcciones pueden por
ello ser expresados por las siguientes ecuaciones.
xij = L1 *
sen(\thetaij)
yij = L1 *
cos(\thetaij)
\thetaij =
\theta(i,j) =
\theta0j+60*I
El color de los datos de elemento de imagen que
corresponde a los módulos de orientación interior candidato presente
en las seis direcciones calculadas es a continuación extraído y
convertido en un diseño de bit en el que negro = 1 y blanco = 0 como
se ha señalado antes (S1402). El diseño de bit del grupo del módulo
de orientación interior candidato que comprende los diseños de bit
de los módulos de orientación interior candidatos presentes en las
seis direcciones convertidas es a continuación ajustado como el
diseño del módulo de orientación interior candi-
dato.
dato.
El diseño del módulo de orientación interior
candidato es a continuación comparado con parte del diseño de la
plantilla de color del grupo de módulos de orientación interior para
detectar una coincidencia ente ellos (S1403). El diseño desde el
valor k ésimo desde el lado izquierdo del diseño al valor (k + 6) en
el diseño de la plantilla de color del grupo del módulo de
orientación interior es a continuación usado como el diseño parcial
de la plantilla de color interior. Este diseño parcial y el diseño
del módulo de orientación interior candidato son a continuación
comparados para detectar una coincidencia entre ellos. Obsérvese que
k es denominado aquí como el número de comienzo, y sólo necesita
variar de 1 a 6.
Si el diseño parcial de la plantilla de color
interior y el diseño del módulo de orientación interior candidato
coinciden (S1403 resulta Si), los módulos de orientación interior
candidatos situados en las seis direcciones son usados como los
datos candidatos para los módulos de orientación interior (S1404), y
el procedimiento avanza a la operación S1405 para comparación con
el siguiente diseño parcial de la plantilla de color interior.
Si el diseño parcial de la plantilla de color
interior y el diseño del módulo de orientación interior candidato no
coinciden (S1403 resulta No), el procedimiento avanza a la operación
S1405 para comparación con el diseño parcial de la plantilla de
color interior.
Por ejemplo, si el diseño del módulo de
orientación interior candidato es 110110, el diseño de la plantilla
de color del grupo del módulo de orientación interior es
101101101101, y hay una coincidencia con el diseño del módulo de
orientación interior 110110 cuando k = 3 y cuando k = 6. El módulo
de orientación interior candidato es por ello detectado como el
candidato del módulo de orientación interior. Sin embargo, si el
diseño del módulo de orientación interior candidato es 100110, no
hay diseño parcial de la plantilla de color que coincida.
A continuación se determina (S1405) si todos los
diseños parciales de la plantilla de color y los diseños del módulo
de orientación interior candidato han sido comparados. Más
específicamente, se ha determinado si se han hecho comparaciones
para todos los números de comienzo k desde 1 al 6. Si no se han
comparado todos los diseños parciales de la plantilla de color
interior y los diseños del módulo de orientación interior candidato
(S1405 resulta No), las operaciones S1403 a S1404 son repetidas
hasta que todos los diseños han sido comparados y S1405 resulta
Si.
Si se han comparado todos los diseños parciales
de la plantilla de color interior y los diseños del módulo de
orientación interior candidato (S1405 resulta Si), se determina
(S1406) si el módulo de orientación interior candidato ha sido
detectado. Si lo ha sido S1406 resulta Si, el proceso de detección
del módulo de orientación interior candidato termina. Si no lo ha
sido (S1406 resulta No), S1407 determina que no hay datos candidatos
y el proceso de detección del módulo de orientación interior
candidato termina.
Un proceso para detectar un módulo de orientación
exterior candidato en el proceso anterior de búsqueda del módulo de
orientación candidato es descrito de forma más detallada a
continuación.
La fig. 15 es un diagrama de flujo del proceso de
búsqueda del módulo de orientación exterior candidato en el proceso
anterior de búsqueda del módulo de orientación candidato.
Debido a que un módulo de orientación exterior
está presente en seis direcciones, se ha supuesto que un módulo de
orientación exterior está presente en el ángulo de búsqueda
\theta, y son calculadas (S1501) las posiciones de los módulos de
orientación exterior candidatos en las seis direcciones.
Como se ha mostrado en la fig. 40, la situación
del punto A'0j en el área i = 0 está definida por las ecuaciones
siguientes.
x'0j = L2 *
sin(\theta0j)
y'0j = L2 *
cos(\theta0j)
\theta0j =
\theta(0,j)
Los puntos centrales A'ij de los módulos de
orientación exterior candidatos en las seis direcciones pueden por
ello expresarse por la ecuaciones siguientes.
x'ij = L2 *
sen(\thetaij)
y'ij = L2 *
cos(\thetaij)
\thetaij =
\theta(i,j) = \theta0j +
60*i
El color de los datos de elemento de imagen que
corresponde a los módulos de orientación exterior candidatos
presentes en las seis direcciones calculadas es a continuación
extraído y convertido en un diseño de bit donde negro = 1 y blanco =
0 como se ha señalado antes (S1502). El diseño de bit del grupo del
módulo de orientación exterior candidato que comprende los diseños
de bit de los módulos de orientación exterior candidatos presentes
en las seis direcciones convertidas es a continuación ajustado como
diseño del módulo de orientación exterior candi-
dato.
dato.
A continuación se determina (S1503) si el número
de comienzo k coincide con el de los candidatos de módulo de
orientación interior. Un diseño parcial de plantilla de color
exterior es generado a partir del diseño de la plantilla de color
del grupo de módulos de orientación exterior basado en el número de
comienzo k del mismo modo que el diseño parcial de la plantilla de
color interior.
Si el número de comienzo k coincide con el de los
módulos de orientación interior candidatos (S1503 resulta Si), el
diseño del módulo de orientación exterior candidato y el diseño
parcial de la plantilla de color exterior son comparados para
detectar una coincidencia entre ellos (S1504).
Si el número de comienzo k no coincide con el de
los módulos de orientación interior candidatos (S1503 resulta No),
el procedimiento avanza a la operación S1506 para su comparación con
el siguiente diseño parcial de la plantilla de color exterior.
Si el diseño parcial de la plantilla de color
exterior y el diseño del módulo de orientación exterior candidato
coinciden (S1504 resulta Si), los módulos de orientación exterior
candidatos situados en las seis direcciones son usados como los
candidatos para los módulos de orientación exterior (S1505), y el
procedimiento avanza a la operación S1506 para su comparación con el
siguiente diseño parcial de la plantilla de color exterior.
Si el diseño parcial de la plantilla de color
exterior y el diseño del módulo de orientación exterior candidato no
coinciden (S1504 resulta No), el procedimiento avanza a la operación
S1506 para su comparación con el siguiente diseño parcial de la
plantilla de color exterior.
A continuación se determina (S1506) si todos los
diseños parciales de la plantilla de color exterior y los diseños
del módulo de orientación exterior han sido comparados. Si no han
sido comparados todos los diseños parciales de la plantilla de color
exterior y los diseños del módulo de orientación exterior candidato
(S1506 resulta No), las operaciones S1503 a S1505 son repetidas
hasta que todos los diseños han sido comparados (S1506 resulta
Si).
Si todos los diseños parciales de la plantilla de
color exterior y los diseños del módulo de orientación exterior
candidato han sido comparados (S1506 resulta Si), se determina
(S1507) si el candidato del módulo de orientación exterior ha sido
detectado. Si lo ha sido (S1507 resulta Si), el proceso de detección
candidato del módulo de orientación exterior termina. Si no lo ha
sido (S1507) resulta No), S1508 determina que no hay datos
candidatos y el proceso de detección del módulo de orientación
exterior termina.
\newpage
Un proceso para detectar los candidatos del
módulo de orientación central en el proceso de búsqueda candidato
del módulo de orientación anterior ha sido descrito de forma más
detallada a continuación.
La fig. 16 es un diagrama de flujo del proceso de
búsqueda del candidato del módulo de orientación central en el
proceso de búsqueda del candidato del módulo de orientación
anterior.
Debido a que el módulo de orientación central
está presente en seis direcciones, se ha supuesto que un módulo de
orientación central está presente en el ángulo de búsqueda
\theta-\beta, es decir, el ángulo de búsqueda
\theta menos el ángulo de desplazamiento \beta, y se calculan
(S1601) las posiciones de los módulos de orientación central
candidatos en las seis direcciones.
Como se ha mostrado en la fig. 40, la situación
del punto A''0j en el área i = 0 está definida por las ecuaciones
siguientes.
x''0j = L3
*sen(\theta0j-\beta)
y''0j = L3 *
cos(\theta0j-\beta)
\theta0j =
\theta(0,j)
Los puntos centrales A''ij de los módulos de
orientación central candidatos en las seis direcciones pueden por
ello ser expresados por las ecuaciones siguientes.
x''ij = L3 *
cos(\thetaij-\beta)
y''ij = L3 *
cos(\thetaij-\beta)
\thetaij =
\theta(i,j) = \theta0j +
60*I
El color de los datos de elemento de imagen que
corresponde a los módulos de orientación central candidatos
presentes en las seis direcciones calculadas es a continuación
extraído y convertido en un diseño de bit donde negro = 1 y blanco =
0 como se ha señalado antes (S1602). El diseño de bit del grupo de
módulos de orientación central candidatos que comprende los diseños
de bit de los módulos de orientación central candidatos presentes en
las seis direcciones calculadas es a continuación ajustado como el
diseño de módulo de orientación central candidato.
A continuación se determina (S1603) si hay un
número de comienzo k que coincide con el módulo de orientación
central candidato. Obsérvese que aquí los candidatos del módulo de
orientación exterior son los candidatos del módulo de orientación
interior así como los candidatos del módulo de orientación exterior.
Un diseño parcial de la plantilla de color central es a continuación
generado a partir del diseño de la plantilla de color del grupo de
módulos de orientación central basado en el número de comienzo k del
mismo modo que el diseño parcial de la plantilla de color
interior.
Si el número de comienzo k coincide con el
candidato del módulo de orientación exterior (S1603 resulta Si), el
diseño del módulo de orientación central candidato y el diseño
parcial de la plantilla de color central son comparados para
detectar una coincidencia entre ellos (S1604).
Si el número de comienzo k no coincide con el
candidato del módulo de orientación exterior (S1603 resulta No), el
procedimiento avanza a la operación S1606 para su comparación con el
siguiente diseño parcial de la plantilla de color central.
Si el diseño parcial de la plantilla de color
central y el diseño del módulo de orientación exterior coinciden
(S1604 resulta Si), los módulos de orientación central candidatos en
las seis direcciones son usados como los candidatos para los módulos
de orientación central (S1605), y el procedimiento avanza a la
operación S1606 para su comparación con el siguiente diseño parcial
de la plantilla de color central.
Si el diseño parcial de la plantilla de color
central y el diseño del módulo de orientación central candidato no
coinciden (S1604 resulta No), el procedimiento avanza a la operación
S1606 para su comparación con el diseño parcial de la plantilla de
color central siguiente.
A continuación se determina (S1606) si todos los
diseños parciales de la plantilla de color central y los diseños del
módulo de orientación central candidato han sido comparados. Si no
han sido comparados todos los diseños parciales de la plantilla de
color central y los diseños del módulo de orientación central
candidato (S1606 resulta No), se repiten las operaciones S1603 a
S1605 hasta que todos los diseños han sido comparados (S1606 resulta
Si).
Si todos los diseños parciales de la plantilla de
color central y los diseños del módulo de orientación central
candidato han sido comparados (S1606 resulta Si), se determina
(S1607) si el candidato del módulo de orientación central ha sido
detectado. Si lo ha sido (S1607 resulta Si), el proceso de detección
candidato del módulo de orientación exterior termina. Si no lo ha
sido (S1607 resulta No), S1608 determina que no hay datos
candidatos y el proceso de detección del candidato del módulo de
orientación central termina.
Un proceso para determinar los candidatos del
módulo de orientación en los procesos de búsqueda del candidato del
módulo de orientación descrito se ha descrito en mayor detalle a
continuación.
La fig. 17 es un diagrama de flujo de un proceso
de determinación del candidato del módulo de orientación en el
proceso de búsqueda del candidato del módulo de orientación.
Los datos candidatos para un módulo de
orientación interior a la tasa n son determinados basados en los
datos candidatos detectados para varios módulos de orientación
interior.
Los módulos de orientación son determinados
identificando los candidatos del módulo de orientación que tienen
las misma orientación basada en los candidatos del módulo de
orientación detectados, y obteniendo el promedio de los datos
candidatos identificados.
La fig. 41 muestra la conversión de los datos
candidatos para módulos de orientación que tienen la misma
orientación. La fig. 41 (a) muestra los datos candidatos para
módulos de orientación en la misma orientación antes de la
conversión de datos, y la fig. 41 (b) muestra los datos candidatos
para módulos de orientación en la misma orientación después de la
conversión de datos.
Como se ha mostrado en la fig. 41 (a), datos
candidatos para módulos de orientación detectados en la misma
orientación pueden estar presentes tanto en el área i como en el
área (i + 1). En la fig. 41 (a) los puntos A10, A11, A12, y A0m son
datos candidatos para módulos de orientación presentes en áreas i=0
e i=1 y tienen la misma orientación. El punto Aij, detectado como
candidato del módulo de orientación, está situado en el área i, y
ha sido detectado en la división del ángulo de búsqueda j ésima. No
es posible por ello usar la expresión Aij para indicar datos
candidatos para módulos de orientación en la misma orientación. Los
datos expresados en la forma Aij son por ello convertidos a puntos
de datos de la forma Bpq, que etiquetan datos candidatos en módulos
de orientación en la misma orientación, dónde p es el número del
módulo de orientación y q es el número candidato. Las coordenadas
de posición del punto Aij y del punto Bpq son las mismas.
Este proceso de conversión comienza detectando si
el punto Aij de datos candidatos son datos candidatos para el mismo
módulo de orientación que el punto Bpq (S1701). Si lo es (S1701
resulta Si), el punto Aij es convertido al punto Bpq (S1702), y el
procedimiento avanza a la operación S1705.
Como se ha mostrado en la fig. 41, por ejemplo,
punto A00, los datos candidatos para el mismo módulo de orientación,
son convertidos en B00, A01 a B01, y A02 a B02. El punto A10, que
son datos candidatos para un módulo de orientación desplazado en 60
grados, es convertido en B10, A11 a B11, y A12 a B12.
Si los datos candidatos no son para el mismo
módulo de orientación (S1701 resulta No), se detecta si el punto de
datos candidato Aij son datos candidatos para el mismo módulo de
orientación que el punto B(p+1)q desplazado en 60
grados del punto Bpq (S1703).
Si son datos candidatos para un módulo de
orientación desplazado en 60 grados (S1703 resulta Si), el punto Aij
es convertido en el punto B(p+1)q (S1704), y el
procedimiento avanza a la operación S1705. Si no son datos
candidatos para un módulo de orientación desplazado en 60 grados
(S1703 resulta No), los datos no son convertidos y el procedimiento
avanza a la operación S1705.
Por ejemplo, como se ha mostrado en la fig. 41,
el punto A0m son datos candidatos para un módulo de orientación
diferente del punto B02, pero son datos candidatos para el mismo
módulo de orientación que el punto B12. El punto A0m candidato del
módulo de orientación es por ello convertido en el punto B13.
Debe observarse que si se determina que un punto
de datos son datos candidatos para un módulo de orientación
desplazado en 60 grados, por ejemplo, sigue. Si la ecuación
siguiente es verdadera para la distancia entre el punto A0m y el
punto A12 los puntos de datos son para módulos de orientación
diferente:
distancia entre
puntos A0m y A12 < altura V de
módulo
donde la altura V del módulo es
determinada por la ecuación siguiente usando la anchura del módulo
W.
V =
(2/\sqrt{3}) *
W
\newpage
A continuación se determina (S1705) si los datos
candidatos para todos los módulos de orientación detectados han sido
convertidos. Si lo han sido (S1705 resulta Si), el procedimiento
avanza a la operación S1706. Si no lo han sido (S1705 resulta No),
se repiten las operaciones S1701 a S1704 hasta que todos los datos
candidatos han sido convertidos.
Finalmente, las coordenadas medias son calculadas
para los datos candidatos convertidos para el mismo módulo de
orientación, y las coordenadas calculadas son definidas como las
coordenadas del candidato del módulo de orientación a una tasa n
(S1706). Obsérvese que las coordenadas medias son calculadas en esta
operación obteniendo las medias simples de los valores de coordenada
x e y de los datos candidatos en un espacio de coordenadas
x-y. La media para las coordenadas polares es el
ángulo medio cuando el radio es la tasa n.
La fig. 42 muestra un método para determinar los
candidatos del módulo de orientación a tasa n.
Como se ha mostrado en la fig. 42, si las
coordenadas medias para puntos B10, B11, B12, y B13, datos
candidatos detectados para el mismo módulo de orientación, son las
del punto Cn1, entonces el punto Cn1 es un candidato del módulo de
orientación a tasa n.
Un proceso para determinar los módulos de
orientación en el proceso de búsqueda del módulo de orientación
antes descrito se ha descrito a continuación de forma más
detallada.
La fig. 18 es un diagrama de flujo del proceso de
determinación del módulo de orientación en el proceso de búsqueda
del módulo de orientación.
La primera operación es calcular las coordenadas
medias para módulos de orientación detectados a tasa n, y determinar
la situación del punto central del módulo de orientación
(S1801).
La fig. 43 ilustra este método preferido para
determinar la posición del punto central de un módulo de
orientación.
Como se ha mostrado en la fig. 43, el punto DO es
la situación del punto central del módulo de orientación si el punto
DO es el punto de las coordenadas medias de puntos C(3,55,
0), C(3,5, 0), y C(3,45, 0), siendo los puntos C datos
candidatos para un módulo de orientación detectado a tasa n.
A continuación, se calcula (S1802) el ángulo
\theta formado por el eje horizontal y la línea que une el punto
central del diseño del localizador y el punto central del módulo de
orientación.
La anchura del módulo de orientación W es
calculada entonces (S1803).
Finalmente, los datos de imagen de la imagen
explorada son convertidos basados en las posiciones del módulo de
orientación a fin de detectar las posiciones del módulo de datos en
el símbolo MaxiCódigo (S1804).
La fig. 44 es usada para describir la conversión
de datos por rotación de imagen. La fig. 44 (a) muestra el proceso
de conversión de datos, y la fig. 44 (b) muestra una tabla de
números de secuencia del módulo de orientación.
Los números del módulo de orientación son
convertidos a números de secuencia como se ha mostrado en la fig. 44
(a). Los números del módulo de orientación indican el área en el que
está situado el módulo de orientación, y los números de secuencia
conforme a la tabla en la fig. 44 (b).
Un ejemplo de la operación de búsqueda de los
datos antes señalados está descrito a continuación con referencia a
la fig. 19, fig. 45, y fig. 46.
La fig. 19 es un diagrama de flujo del proceso de
búsqueda del módulo de datos en el proceso de descodificación del
símbolo MaxiCódigo.
En primer lugar, es estimado un eje de
orientación que pasa a través del punto central del diseño del
localizador, el punto central de un módulo de orientación interior,
y el punto central de un módulo de orientación exterior, y se
calculan (S1901) la información de posición y forma para módulos de
datos en este eje de orientación.
La fig. 45 muestra un MaxiCódigo sobre un eje de
orientación. La fig. 45 (a) muestra un módulo real y un módulo
candidato en el eje de orientación, y la fig. 45 (b) muestra la
localización de módulos de datos en un eje de
orienta-
ción.
ción.
Como se ha mostrado en la fig. 45 (a), un eje de
orientación que pasa a través del punto central del diseño del
localizador, el punto central de un módulo de orientación interior,
y el punto central de un módulo de orientación exterior, son
estimados, y un número es asignado al eje de orientación. Para
describir el cálculo de las posiciones del módulo de datos, se van a
considerar dos módulos en el eje de orientación supuesto, siendo
uno un módulo que es parte del símbolo MaxiCódigo (un "módulo
real" a continuación) y otro un módulo que no es parte del
símbolo MaxiCódigo (un "módulo candidato" en lo que sigue).
Usando el ejemplo mostrado en la fig. 45 (b), la
posición del punto central de cada módulo es calculada para un grupo
de módulos que contiene 10 módulos reales y 8 módulos candidatos en
el eje de orientación 0. También se ha considerado aquí un grupo de
módulos que contiene 11 módulos reales y 7 módulos candidatos en el
eje de orientación 1; un grupo de módulos que contiene 11 módulos
reales y 6 módulos candidatos en el eje de orientación 2; un grupo
de módulos que contiene 9 módulos reales y 8 módulos candidatos en
el eje de orientación 3; un grupo de módulos que contiene 11 módulos
reales y 6 módulos candidatos en el eje de orientación 4; y un grupo
de módulos que contiene 11 módulos reales y 7 módulos candidatos en
el eje de orientación 5. Debe observarse que mientras hay 12
módulos reales en el eje de orientación 1, un módulo real más
próximo al punto central del diseño del localizador que un módulo de
orientación interior es convertido en bit por separado después de
determinar la posición del punto central de ese módulo. El grupo de
módulos sobre el eje de orientación 1 puede por ello ser denominado
como con 11 módulos reales y 7 módulos candidatos.
Un diseño de bit es entonces generado a partir de
los datos de elemento de imagen para la situación del punto central
calculado de cada módulo (S1902). Como se ha observado antes, los
elementos de imagen negros son bits 1, y los elementos de imagen
blancos son bits 0. Los módulos candidatos no son convertidos a un
diseño de bit aquí.
La información de posición es calculada entonces
para los módulos de datos de símbolo MaxiCódigo presentes en el área
entre ejes de orientación (S1903).
La fig. 46 muestra un módulo entre ejes de
orientación. La fig. 46 (a) muestra un módulo real y un módulo
candidato entre ejes de orientación, y la fig. 46 (b) muestra la
posición de un módulo de datos entre ejes de orientación.
Como se ha mostrado en la fig. 46 (a) el área
triangular que comprende ejes de orientación 0 y 1 es etiquetada
área 0 de símbolo candidato; el área triangular que comprende ejes
de orientación 1 y 2 es etiquetada área 1 de símbolo candidato; el
área triangular que comprende ejes de orientación 2 y 3 es
etiquetada área 2 de símbolo candidato; el área triangular que
comprende ejes de orientación 3 y 4 es etiquetada área 3 de símbolo
candidato; el área triangular que comprende ejes de orientación 4 y
5 es etiquetada área 4 de símbolo candidato; y el área triangular
que comprende ejes de orientación 5 y 0 es etiquetada área 5 de
símbolo candidato. El área de símbolo MaxiCódigo en el área i de
símbolo candidato comprende un módulo real (hexágono de línea
continua) y el área exterior al símbolo MaxiCódigo comprende módulos
candidatos (hexágonos mostrados con líneas de trazos).
Como se ha mostrado en la figura 46 (b), los
puntos centrales de módulos en el eje de orientación i y los puntos
centrales de los módulos en el eje de orientación i + 1 están
conectados por líneas rectas, y los puntos que dividen esta línea en
(número de módulos entre ejes de orientación + 1) intervalos son
usados como el punto central de cada módulo. En otras palabras, si
se forman 18 líneas en el área O de símbolo candidato y los puntos
centrales de los módulos de orientación interiores en los eje de
orientación son A1 y A'1, los puntos de unión de línea A1 y A'1
están divididos en 6 partes, y los puntos separados son usados como
los puntos centrales del módulo. Además, la línea que une el puntos
Ak y el punto A'k está dividida en (k+5) partes, y los puntos
separados son usados como los puntos centrales del módulo.
A continuación, los datos de elemento de imagen
detectados desde los puntos centrales calculados de cada módulo son
usados para generar un diseño de bit donde negro = 1 y blanco = 0
como se ha observado antes (S1904), y el proceso de búsqueda de
módulo de datos termina. Obsérvese que la operación de conversión
del diseño de bit de la operación S1904 es aplicada a los módulos
reales solamente.
Un proceso para calcular la información de
posición y forma para los módulo de datos de los ejes de orientación
antes indicados está descrito a continuación con referencia a la
fig. 20 y a la fig. 47.
La fig. 20 es un diagrama de flujo del proceso de
cálculo de la posición del módulo de datos de eje de orientación en
el proceso de búsqueda de módulo de datos.
La primera operación es encontrar un grupo de
módulos negros buscando a lo largo del eje de orientación al
exterior del símbolo que comienza desde un módulo de orientación
interior usado como el módulo de comienzo de búsqueda (S2001). Más
específicamente, un grupo consecutivo de módulos negros en el eje de
orientación es encontrado basado en los datos de elemento de imagen
almacenados en el registro 210 de datos de elementos de imagen de
VRAM 106, y la búsqueda de datos de elemento de imagen negros
comienza desde el punto central de un módulo de orientación
interior. Obsérvese que un grupo de módulos negros como es usado
aquí es un grupo de módulos que incluye uno o varios módulos negros
consecutivos.
El ángulo del eje de orientación es a
continuación corregido basado en el grupo de módulos negros
posicionados (S2002). La distorsión en la imagen explorada del
símbolo significa que la posición del módulo de orientación
encontrado en la operación S304 de la fig. 3 no es necesariamente la
posición de un punto central de un módulo de orientación. Por ello,
los puntos centrales del módulo de datos no son encontrados
necesariamente en el eje de orientación calculado a partir de la
posición del punto central del diseño del localizador y la posición
del módulo de orientación. Además, incluso si la posición del módulo
de orientación es la posición del punto central de un módulo de
orientación, los puntos centrales del módulo de datos no son
necesariamente encontrados en el eje de orientación en la parte
exterior de un símbolo en el que la distorsión de la imagen es
grande. Por ello es necesario corregir el ángulo del eje de
orientación de modo que el eje de orientación calculado a partir de
la posición del módulo de orientación y la posición del punto
central del diseño del localizador pase cerca de los puntos
centrales de los módulos de orientación y módulos de datos.
La fig. 47 muestra la corrección del ángulo del
eje de orientación. Como se ha mostrado en la fig. 47 corregir el
ángulo del eje de orientación en la operación S2001 mueve el eje de
orientación de modo que pasa cerca de los puntos centrales de los
módulos.
A continuación se determina (S2003) si se han
encontrado todos los grupos de módulos negros en el eje de
orientación. Más específicamente, se ha determinado si el ángulo del
eje de orientación estaba corregido basado en todos los grupos de
módulos negros. Si no se han buscado todos los grupos de módulos
negros en el eje de orientación (S2003 resulta No), el
procedimiento vuelve de nuevo a S2001 y las operaciones S2001 y
S2002 son repetidas hasta que todos los grupos de módulos negros en
el eje de orientación i han sido encontrados.
Si se han encontrado todos los grupos de módulos
negros en el eje de orientación (S2003 resulta Si), el eje de
orientación i después de que se haya corregido el ángulo del eje de
orientación basado en todos los grupos de módulos negros es definido
como el eje de orientación corregido (S2004). Es así posible
corregir el ángulo del eje de orientación basado en todos los grupos
de módulos negros para corregir el eje de orientación i de modo que
pase cerca de los puntos centrales de los módulos de datos en el
área exterior del símbolo cuando la distorsión de la imagen
es
grande.
grande.
A continuación se determina (S2005) si se han
corregido todos los seis ejes de orientación. Si no se han corregido
(S2005 resulta No), el procedimiento vuelve de nuevo a S2001 y las
operaciones S2001 a S2004 se repiten hasta que se han corregido los
seis ejes de orientación.
Sin embargo, si se han corregido los seis ejes de
orientación (S2005 resulta Si), es corregida (S2006) la anchura de
todo los módulos reales presentes en los ejes de orientación de
ángulo corregido, a continuación es corregida (S2007) la anchura de
los módulos candidatos en los eje de orientación de ángulo
corregido, y el proceso termina.
Un proceso para corregir el ángulo de los ejes de
orientación está descrito en detalle continuación con referencia a
la fig. 21, fig. 24, fig. 48, fig. 49, fig. 50, fig. 51 y fig.
52.
La fig. 21 es un diagrama de flujo del proceso de
corrección del ángulo del eje de orientación del proceso para
calcular posiciones de módulo de datos en los ejes de
orientación.
En primer lugar, si el primer punto central
corregido del módulo negro más próximo al diseño del localizador en
el grupo de módulos es designado punto PO del grupo de módulos
negros en el eje de orientación i, la posición del punto P0 es
calculada (S2101). Obsérvese que el eje de orientación i en esta
operación es cualquiera de los seis ejes de orientación
determinados alrededor del punto central del diseño del localizador
determinado basado en los seis módulos de orientación. Obsérvese,
además, que los números i de eje de orientación aumentan en sentido
contrario a las agujas del reloj alrededor del punto central del
diseño del localizador, i varía desde 0 a 5, y cuando i = 5, el
siguiente eje de orientación en (i+1) es el eje de orientación 0. El
proceso para calcular la información de posición del punto central
del módulo es escrito adicionalmente a continuación con referencia a
la
fig. 24.
fig. 24.
A continuación, el eje de orientación i es girado
en sentido contrario a las agujas del reloj \thetai grados
alrededor del punto P0 para obtener el eje de reserva adyacente i',
y un grupo de módulos negros que contiene el módulo negro en el que
el punto P0 está situado en el eje de reserva adyacente i' es
buscado para (S2102). Obsérvese que el ángulo \thetai es un ángulo
entre el eje de orientación i y el eje de orientación (i+1).
La fig. 49 muestra la relación entre el eje de
orientación i y el eje de reserva adyacente i'. Como se ha mostrado
en la fig. 49, el eje de reserva adyacente i' es el eje de
orientación i girado en sentido contrario a las agujas del reloj
\thetai alrededor del punto P0.
Basado en el grupo de módulos negros situado en
el eje de reserva adyacente i', un candidato para el segundo punto
central corregido del módulo negro en el que el punto P0 está
situado es designado punto P1, y la posición del punto P1 es
calculada (S2103).
La fig. 50 muestra el proceso para calcular la
situación del punto P1, un candidato para el segundo punto central
corregido del módulo. Como se ha mostrado en la fig. 50, la
situación del punto P1 es calculada suponiendo que todos los módulos
contenidos en el grupo de módulos negros y situados en el eje de
reserva adyacente i' tienen el mismo tamaño.
A continuación, el eje de orientación i es girado
en el sentido de las agujas del reloj \thetai-1
grados alrededor del punto P0 para obtener el eje de reserva
adyacente i'', y es buscado (S2104) un grupo de módulos negros que
contiene el módulo negro en el que el punto P0 está situado en el
eje de reserva adyacente i''. Obsérvese que el ángulo
\thetai-1 es un ángulo entre el eje de orientación
i y el eje de orientación (i-1). Además, cuando el
eje de orientación i es el eje de orientación 0, el eje de
orientación (i-1) es el eje de orientación 5.
Basado en el grupo de módulos negros situado en
el eje de reserva adyacente i'', un candidato para el segundo punto
central corregido del módulo negro en el que está situado el punto
P0 es designado punto P2, y la posición del punto P2 es calculada
(S2105).
La fig. 51 muestra el proceso para calcular la
posición del punto P2, un candidato para el segundo punto central
corregido del módulo. Como se ha mostrado en la fig. 51, la posición
del punto P2 es calculada suponiendo que todos los módulos
contenidos en el grupo de módulos negros y situados en el eje de
reserva adyacente i'' tienen el mismo tamaño.
El ángulo del corrección del eje de reserva
adyacente i' y el ángulo de corrección del eje de reserva adyacente
i'' son a continuación comparados para detectar el eje con el menor
error de corrección (S2106). Si la corrección del ángulo del eje de
reserva adyacente i' es menor (S2106 resulta i'), el punto P1 es
ajustado al punto P3 donde P3 es el segundo punto central corregido
del módulo negro en el que está presente P0 (S2107). Si la
corrección de la ángulo del eje de reserva adyacente i'' es menor
(S2106 resulta i''), el punto P2 es ajustado al punto P3 donde P3 es
el segundo punto central corregido del módulo negro en el que está
presente P0 (S2108). La magnitud del error de corrección es evaluada
para el número total de módulos contenidos en el grupo de módulos
negros en el eje de orientación. En otras palabras, debido a que se
ha supuesto que todos los módulos tienen el mismo tamaño, el error
disminuye cuando disminuye el número de módulos. En los casos
mostrados en la fig. 50 y fig. 51, por ello, P2 es ajustado como el
segundo punto central candidato P3 debido a que el número de módulos
en el eje de reserva adyacente i' es mayor que el número de módulos
en el eje de reserva adyacente i''.
A continuación es encontrado (S2109) el grupo de
módulos negros que contiene el módulo negro en el que está presente
P3 en el eje de reserva de orientación j, y es calculada (S2110) la
posición del punto P, es decir el punto central del módulo negro en
el que está presente P3. Obsérvese que el eje de reserva de
orientación j es aquí el eje que pasa a través de P3 y el punto
central del diseño del localizador.
La fig. 52 muestra el proceso para calcular la
posición del punto P, el punto central del módulo. Como se ha
mostrado en la figura 52, la posición del punto P central del módulo
es calculada suponiendo que todos los módulos contenidos en el grupo
de módulos negros contienen el módulo negro en el que está presente
P3 y situados en el eje de reserva de orientación j tienen el mismo
tamaño.
El eje de orientación k pasa a través del punto P
central del módulo y el punto central del diseño del localizador es
ajustado al eje de orientación obtenido por corrección del ángulo
del eje de orientación i, y el ángulo \alphai entre este eje de
orientación k y el eje de orientación horizontal es calculado
(S2111). Como se ha mostrado en la fig. 52, la línea que pasa a
través del punto P y del punto central del diseño del localizador es
de orientación k obtenida por corrección de ángulo del eje de
orientación i. Obsérvese que el eje de orientación k y el eje de
reserva de orientación j son la misma línea.
La anchura de los módulos negros en el eje de
orientación k que constituyen el grupo de módulos negros es a
continuación calculada (S2112), y el proceso termina.
La fig. 24 es un diagrama de flujo de un proceso
para calcular la posición del punto central de módulos en un eje de
orientación particular.
La longitud L del eje de orientación i que cruza
un grupo de módulos que comprenden uno o una pluralidad de módulos
contiguos es calculada basada en los datos de elementos de imagen
almacenados en el registro 210 de datos de elementos de imagen de
VRAM 106 (S2401).
La fig. 48 ilustra el proceso para calcular la
posición de un punto central de módulo. La fig. 48 (a) muestra el
área L en un grupo de módulos en un eje de orientación, y la fig. 48
(b) muestra la posición del punto central de un módulo en el grupo
de módulos.
Como se ha mostrado en la fig. 48 (a), la
longitud del eje de orientación i que cruza un grupo de módulos de
módulos negros es medida basada en los límites entre los elementos
de imagen negro y blanco. Si estos puntos son A y B, La longitud del
eje de orientación L = línea AB.
Un valor n' (= L/W) es a continuación calculado
basado en la anchura W del módulo (calculada en la operación S304
del proceso de búsqueda del módulo de orientación mostrado en la
fig. 3) y la longitud recién calculada L. El número n de módulos en
el grupo de módulos es a continuación calculado basado en una tabla
de valores del límite o el valor redondeado de n' (S2402).
En la fig. 48 (a), n = 2 debido a que hay dos
módulos negros en el grupo de módulos.
Finalmente, la posición del punto central del
módulo es calculada basada en el orden r de los módulos en el grupo
de módulos (S2403) donde r = 1 indica el módulo más próximo al
diseño del localizador en el grupo de módulos, y
r = n indica el módulo más alejado del diseño del localizador. Se ha supuesto además que todos los módulos en el grupo de módulos tienen el mismo tamaño, y la posición del punto central del módulo es calculada sobre la suposición de que el eje de orientación i pasa por el punto central de todos los módulos. Más específicamente, el punto en el que la longitud L se divide en (2r-1):(2n-2r+1) es hecho el punto central del módulo r ésimo. Como ha se ha mostrado en la fig. 48 (b), si el punto PO es el punto central del módulo cuando r = 1, el punto PO es el punto que divide la longitud L (segmento de línea AB) 1:3.
r = n indica el módulo más alejado del diseño del localizador. Se ha supuesto además que todos los módulos en el grupo de módulos tienen el mismo tamaño, y la posición del punto central del módulo es calculada sobre la suposición de que el eje de orientación i pasa por el punto central de todos los módulos. Más específicamente, el punto en el que la longitud L se divide en (2r-1):(2n-2r+1) es hecho el punto central del módulo r ésimo. Como ha se ha mostrado en la fig. 48 (b), si el punto PO es el punto central del módulo cuando r = 1, el punto PO es el punto que divide la longitud L (segmento de línea AB) 1:3.
La fig. 22 es un diagrama de flujo de un proceso
para corregir la anchura de los módulos reales en un eje de
orientación en el proceso que calcula posiciones del módulo de datos
en un eje de orientación.
El eje de orientación i es buscado empezando
desde un módulo de orientación interior y prosiguiendo al exterior
del símbolo para encontrar módulos que comprende módulo reales
negros (S2201).
Las posiciones de todos los puntos centrales del
módulo real en el grupo de módulos posicionado son calculadas
(S2202), y la anchura del módulo real es calculada a continuación
(S2203).
A continuación se determina (S2204) si hay
algunos módulos reales blancos en el interior de los módulos reales
negros más próximos al interior del símbolo (más próximo al diseño
del localizador) en el eje de orientación i. Si los hay (S2204
resulta Si), La anchura del módulo real negro más próximo al centro
del símbolo es hecha la anchura de los módulos reales blancos
(S2206).
A continuación, usando el módulo más próximo al
exterior del símbolo en el grupo de módulos posicionados del mismo
color, se busca el eje de orientación i al exterior del símbolo para
un grupo de módulos que comprende módulos reales de un color
diferente del color del grupo de módulos encontrados previamente
(S2206).
Las posiciones de los puntos centrales de todos
los módulos reales que constituyen el grupo de módulos posicionados
son calculadas a continuación (S2207), y la anchura del módulo real
es calculada (S 2208).
A continuación se determina (S2209) si un grupo
de módulos que contiene módulo reales negros se ha encontrado en la
parte más exterior del símbolo sobre el eje de orientación i. Si no
se ha encontrado (S2209 resulta No), el procedimiento vuelve de
nuevo a S2201 y las operaciones S2206 a S2208 son repetidas hasta
que un grupo de módulos que contiene un módulo real negro es
encontrado en la parte más exterior del símbolo.
Si tal grupo de módulos es encontrado (S2209
resulta Si), a continuación se determina (S2210) si las posiciones
de los puntos centrales del módulo real y las anchura de módulo real
han sido calculadas para los seis ejes de orientación. Si los
cálculos han sido completados para todos los ejes (S 2210 resulta
Si), el proceso termina. Si todos los cálculos han sido completados
para todos los ejes (S2110 resulta No), el procedimiento vuelve de
nuevo a S2201 y las operaciones S2201 a S2209 son repetidas hasta
que los cálculos son completados para todos los ejes.
La fig. 23 es un diagrama de flujo de un proceso
para corregir la anchura de módulos candidato sobre el eje de
orientación en el proceso para calcular posiciones de módulo de
datos en un eje de orientación.
En primer lugar, de los seis ejes de orientación,
el eje de orientación que tiene la menor de distorsión es detectado
y usado como eje m de orientación de referencia (S2301). Por
ejemplo, la magnitud de distorsión Ei de un eje de orientación puede
ser calculada usando la ecuación siguiente basada en la relación Ri
entre la anchura Wi de los módulos reales negros presentes en la
parte más exterior del símbolo y calculada por corrección de
anchura de los módulos reales como se ha mostrado en la fig. 22, y
la anchura WOi de los módulos reales calculada por lo operación S304
del proceso de búsqueda de módulo de orientación mostrado en la fig.
3. Obsérvese que i es el número del eje.
Ei = | Ri_1 | =
| Wi/W0i_1
|
La distorsión Ei es así calculada para cada uno
de los seis eje de orientación, y el eje de orientación con la menor
distorsión es usado como eje m de orientación de referencia.
Las posiciones de todos los módulos reales y
módulos candidato no calculadas en el eje m de orientación de
referencia son calculadas a continuación (S2302) suponiendo que la
anchura de los módulos reales y la anchura de los módulos candidato
no calculadas sobre el eje m de orientación de referencia son la
misma que la anchura de los módulos reales negros en la parte más
exterior del símbolo. la posición del punto central del módulo en
el eje de orientación (i+1) es también considerada basada en las
posiciones de los puntos centrales de los módulos reales y módulos
candidato sobre el eje de orientación i donde el eje m de
orientación de referencia es el eje de orientación i.
La distancia L desde el punto central de un
módulo real negro en la parte más exterior del símbolo en el eje de
orientación (i+1) al punto central de un módulo candidato en la
parte más exterior del área del símbolo candidato en el eje de
orientación (i+1) es a continuación calculada basado en la posición
del punto central del diseño del localizador, la posición de un
módulo en el eje de orientación i, y la posición del punto central
de un módulo real negro en la parte más exterior del símbolo en el
eje de orientación (i+1) (S2303). Obsérvese que el área de símbolo
candidato es el área mostrada en la fig. 46 como se ha descrito
antes.
Las posiciones de los puntos centrales de todos
los módulos reales y módulos candidato no calculadas sobre el eje de
orientación (i=1) son calculadas a continuación basadas en la
longitud L calculada y el número de módulos a partir del módulo real
negro en la parte más exterior del símbolo sobre el eje de
orientación (i+1) al módulo candidato en la parte más exterior del
área del símbolo candidato sobre el eje de orientación (i+1)
(S2304).
La fig. 53 muestra el proceso para calcular la
longitud L y las posiciones de los puntos centrales del módulo no
calculadas.
Como se ha mostrado en la fig. 53, el punto 0 es
el punto central del diseño del localizador, el punto A' es el punto
central del módulo real negro en la parte más exterior del símbolo
sobre el eje de orientación (i+1), el punto B' es el centro del
módulo candidato en la parte más exterior del área del símbolo
candidato en el eje de orientación (i+1), y el punto B es el centro
del módulo candidato en la parte más exterior del área del símbolo
candidato sobre el eje de orientación i. El punto central del módulo
sobre el eje de orientación i en el que el número de módulos desde
el módulo de orientación interior sobre el eje de orientación i es
igual al número de módulos desde el módulo de orientación interior y
sobre el eje de orientación (i+1) al módulo real negro en la parte
más exterior del símbolo es ajustado como punto A. Obsérvese que la
distancia L desde el punto A' a B' puede ser calculada usando la
siguiente ecuación:
L = A'B' = AB *
(OA'/OA)
Las posiciones del punto central del módulo son a
continuación calculadas suponiendo que los módulos (n+1) desde el
módulo en el que el punto A' está presente al módulo en el que el
punto B' está presente son las mismas.
Por último, se ha comprobado si las posiciones de
los puntos centrales de todos los módulos reales y módulos candidato
para los seis ejes ha sido calculadas (S2305). si el proceso de
cálculo es completado para todos los ejes de orientación (S2305
resulta Si), el proceso termina. Si no (S2305 resulta No), el
procedimiento vuelve de nuevo a S2303, y las operaciones S2303 y
S2304 se repiten para completar los cálculos para todos los ejes
después de sustituir el eje de orientación (i+1) como eje de
orientación i para las siguientes series de cálculos.
A continuación se ha descrito un ejemplo de la
operación de conversión de caracteres de datos.
La fig. 25 es un diagrama de flujo del proceso de
conversión de caracteres de datos en el proceso de descodificación
del símbolo MaxiCódigo de acuerdo con el presente invento.
La conversión de caracteres de datos convierte
los módulo de datos en un diseño de bit de 1 y 0 donde el negro
tiene un valor de bit de 1 y el blanco tiene un valor de bit de 0,
los datos del diseño de bit son a continuación convertidos a una
palabra código, y las palabras código son a continuación convertidas
en caracteres de datos.
La fig. 54 muestra una palabra código típica.
Como se ha mostrado en la fig. 54, una palabra
código es un tren de bits que representa un carácter de datos. Cada
palabra código consiste de seis bits de datos procedentes de los
seis módulos de datos, y dos bits 0. La conversión de la palabra
código calcula así los valores i y j donde los datos de bit
respectivos corresponden al j ésimo bit de la palabra código i
ésima.
El diseño de bit para la posición del módulo de
datos en el símbolo MaxiCódigo es almacenado como los datos de bit
en una tabla de matriz de bits (S2501), denominada a continuación
como BT(n,m) donde n es un entero desde 0 a 29 y m es un
entero desde 0 a 32.
La fig. 55 muestra una tabla de matriz de bits.
La fig. 55 (a) muestra la relación entre la posición de un módulo de
datos en un símbolo MaxiCódigo, y la posición de los datos
almacenados en la tabla de matriz de bits. La fig. 55 (b) muestra
los datos almacenados en la tabla de matriz de bits.
Como se ha mostrado en la fig. 55, el valor del
tercer módulo de datos desde la derecha y el tercero desde la parte
superior en el símbolo MaxiCódigo es almacenado en BT(27,2)
en la tabla de matriz de bits.
Basado en los elementos de datos de la tabla de
matriz de bits de palabra código, los datos de bit almacenados en la
tabla de matriz de bits son convertidos al bit j ésimo en la palabra
de código i ésima durante la conversión de la palabra de código
(S2502).
La fig. 56 muestra una tabla de matriz de bits de
palabras código típica denominada como CT(n,m) donde n es un
entero desde 0 a 29 y m es un entero desde 0 a 32.
La relación entre los valores i y j en la
operación de conversión de palabra código y la tabla de matriz de
bits de palabras código CT(n,m) está mostrada por las
siguientes ecuaciones:
i =
[CT(n,m)/256]
j =
CT(n,m) -
I*256
Como se ha mostrado en la fig. 56, el valor de
esta tabla de matriz de bits de palabras código en CT(n,m) es
8452. Como resultado, i = [8452/256] = 33, y j =
8452-33*256 = 4, y esta celda almacena los datos de
bit para el 4º bit en la palabra de código 33ª. Debe observarse que
un proceso de software es llevado a cabo sustituyendo para la
palabra código i ésima el valor obtenido desplazando
(5-j)bits El valor de bit 1 o 0 expresado por
BT(n,m).
La fig. 57 muestra la relación entre los datos de
bit almacenados en la tabla de matriz de bits y los elementos de
datos en la tabla de matriz de palabras código.
Como se ha mostrado en la fig. 57, los datos de
bit en BT(n,m) son el valor del bit j ésimo en la palabra
código i ésima calculados a partir de la tabla de palabras código
CT(n,m). Por ejemplo, BT(27,2) = 0 que es el valor del
4º bit en la 33ª palabra de código.
A continuación, se determina si todos los módulos
han sido convertidos en palabras código (S2503). Si todos los
módulos de datos ha sido convertidos (S2503 resulta Si), la
operación S2504 es realizada. Si no lo han sido (S2503 resulta No),
se repiten las operaciones S2501 y S2502 hasta que todos los módulos
de datos son convertidos a palabras código.
Las secuencias de bits perdidas como resultado de
las operaciones de conversión y los datos perdidos son a
continuación recuperados a los datos correctos por un proceso de
corrección de error (S2504). También hay casos en los que el proceso
de corrección de error no puede recuperar los datos correctos debido
a la cantidad de secuencias de bit perdidas. Por ello se determina
si los datos correctos han sido recuperados por un proceso de
corrección de error (S2505). Si los datos correctos fueron
recuperados (S2505 resulta Si), todas las palabras código son
convertidas a caracteres de datos basado en la tabla de conjunto de
caracteres por defecto (S2506) y el proceso de descodificación
termina. La fig. 58 muestra parte de la tabla de conjuntos de
caracteres por defecto.
Si los datos correctos no pudieran haber sido
recuperados (S2505 resulta No), se pone en marcha un proceso de
manipulación de error debido a que el símbolo MaxiCódigo podría no
ser reconocido (S2507), y el proceso de descodificación termina.
Un medio de almacenamiento de datos de acuerdo
con el presente invento almacena un programa ejecutable por
ordenador que incluye las operaciones del método de lectura de
código de barras bidimensional descritas antes.
Un medio de almacenamiento de datos de acuerdo
con el presente invento puede ser un Disco Compacto, disco flexible,
disco duro, disco magneto-óptico, Disco Versátil Digital (DVD),
cinta magnética, tarjeta de memoria u otro medio legible por
ordenador.
El presente invento proporciona los siguientes
beneficios.
El centro del diseño del localizador de un
símbolo de código de barras, por ejemplo un símbolo MaxiCódigo puede
ser encontrado rápida y fácilmente en la imagen explorada del
símbolo de código de barras buscando los diseños de detección a
partir de líneas de exploración que atraviesan la imagen para la
detección de un diseño que coincide con un diseño de referencia
específico a lo largo de una línea de exploración que pasa a través
del punto central del diseño del localizador. Así puede ser
fácilmente descodificado un código de barras bidimensional.
Es también posible acortar el tiempo requerido
para procesar una imagen explorada de un símbolo de código de
barras, por ejemplo un símbolo MaxiCódigo, que es usado en esta
descripción como ejemplar de un símbolo de código de barras
bidimensional, por medio de un método de búsqueda de módulo de
orientación que detecta los datos de elemento de imagen que
coinciden con un diseño de plantilla de color en los datos de
elemento de imagen del intervalo de búsqueda del módulo de
orientación de la imagen explorada del símbolo de código de barras,
y a continuación encuentra todos los músculos de orientación basados
en los datos de elemento de imagen detectados.
Es también posible descodificar un símbolo de
código de barras, por ejemplo un símbolo MaxiCódigo a partir de una
imagen explorada capturada en una ángulo en vez directamente desde
el frente haciendo que la ecuación que describe la relación entre el
diseño del localizador del símbolo de código de barras real y el
diseño del localizador en una imagen explorada del símbolo de código
de barras capturado desde una ángulo se aproxime a la ecuación de
un círculo y una elipse, y la imagen que corrige la imagen explorada
basada en esta ecuación.
Además, el método de corrección de distorsión del
presente invento es adecuado para distorsión plana en la imagen
explorada de un símbolo de código de barras, por ejemplo un símbolo
MaxiCódigo, y puede corregir los ejes de orientación de una imagen
explorada distorsionada corrigiendo los ángulos de los ejes de modo
que pasen a través de los centros de los módulos de orientación y
módulos de datos basados en las áreas de los grupos de módulos
negros presentes en el eje de orientación que pasa por el punto
central del diseño de localizador y módulos de orientación.
Es también posible corregir la información de
posición y forma de módulos en los ejes de orientación de una imagen
explorada distorsionada basado en las áreas de los grupos de módulos
del mismo color en los ejes de orientación corregidos, y corregir
las posiciones de módulos de datos entre ejes de orientación basado
en la información de posición y forma de los módulos en los eje de
orientación corregidos.
Es también aún posible acortar el tiempo
necesario para descodificar la imagen explorada de un símbolo de
código de barras, por ejemplo un símbolo MaxiCódigo, que es usado
como representativo de símbolos de código de barras bidimensional,
detectando la información de posición y forma del módulo basado en
la corrección de imagen explorada antes descrita.
Es aún posible también acortar el tiempo
necesario para descalificar la imagen explorada de un símbolo de
código de barras, por ejemplo un símbolo MaxiCódigo, que es usado
como representativo de símbolos de un código de barras
bidimensional, por medio de un método de conversión de caracteres de
datos que almacena datos de bit procedentes de los módulos de datos
detectados en una tabla de matriz de bits, convierte los datos de
bits a palabras código basado en una tabla de matriz de palabras
código, y a continuación convierte los datos de bit en caracteres de
datos.
Un programa que realiza las operaciones del
método de lectura de código de barras bidimensional del presente
invento puede también ser escrito como un producto de software a un
medio de almacenamiento de datos, que puede ser fácilmente
distribuido y comercializado.
Es también posible proporcionar un aparato de
lectura de código de barras bidimensional que tiene medios para
realizar el método de lectura de código de barras bidimensional del
presente invento.
Claims (16)
1. Un método de lectura de un símbolo de código
de barras bidimensional que tiene módulos de orientación y un diseño
de localizador con un punto central, comprendiendo el método: 1)
explorar el símbolo de código de barras para obtener una imagen
explorada, 2) determinar el punto central del diseño de localizador
en una imagen explorada del símbolo de código de barras y 3)
realizar una operación de búsqueda de módulo de datos para calcular
la información de posición y forma para todos los módulos que
constituyen el símbolo de código de barras, caracterizado
porque la operación 3) incluye calcular un eje de orientación que
pasa a través de un módulo de orientación y el punto central del
diseño de localizador en una imagen explorada del símbolo de código
de barras por: (a) cálculo, basado en la información de posición del
diseño de localizador y en la información de posición del módulo de
orientación y en la información de forma, de la información de
posición y forma para una pluralidad de módulos que constituyen un
grupo de módulos en dicho eje de orientación; (b) detección de un
diseño de bit de varios de dichos módulos de datos sobre el eje de
orientación calculado por la operación de calcular la posición del
módulo del eje de orientación; (c) cálculo, basado en la información
de posición y forma de los distintos módulos de un grupo de módulos
sobre el eje de orientación calculados por la operación de calcular
la posición del módulo del eje de orientación, de la información de
posición para una pluralidad de módulos que constituyen un grupo de
módulos entre ejes de orientación adyacentes; y (d) detección del
diseño de bit de los distintos módulos de datos presentes entre los
ejes de orientación calculados por la operación de calcular la
posición del módulo del eje de orientación.
2. El método de la reivindicación 1ª, en el que
la operación (a) comprende las siguientes operaciones: (a1) corregir
el ángulo del eje de orientación de modo que el eje de orientación
pase por los puntos centrales de la pluralidad de módulos que
constituyen un grupo de módulos sobre el eje de orientación; (a2)
calcular la información de posición para una pluralidad de módulos
reales presentes sobre un eje de orientación corregida por la
operación de corrección del ángulo del eje de orientación y basada
en la información de posición calculada corrigiendo la altura del
módulo, que es información de forma para la pluralidad de módulos
reales; (a3) calcular la información de posición para una pluralidad
de módulos candidatos presentes en el eje de orientación basado en
la información de posición y forma de módulo real calculada por la
operación de corregir la anchura del módulo real sobre el eje de
orientación.
3. El método de la reivindicación 2ª, en el que
la operación (a1) comprende las siguientes operaciones: (a11)
calcular, basado en el área de un grupo de módulos negros que
contiene uno o una pluralidad de módulos negros contiguos presentes
en el eje de orientación, un primer punto central corregido de un
módulo negro más próximo al diseño de localizador en el grupo de
módulos negros; (a12) calcular un segundo punto central de módulo
negro corregido basado en el área de un grupo de módulos negros que
comprende uno o una pluralidad de módulos negros contiguos que
incluyen el módulo negro presente en un eje de reserva vecino
paralelo a un eje de orientación adyacente al eje de orientación y
que pasa a través del primer punto central de módulo negro corregido
calculado por la operación de cálculo del primer punto central
corregido; (a13) calcular un punto central de módulo negro basado en
el segundo punto central de módulo negro corregido calculado por lo
operación de cálculo del segundo punto central corregido, y el área
de un grupo de módulos negros que comprende uno o una pluralidad de
módulos negros contiguos que incluyen el módulo negro presente en un
eje de reserva de orientación que pasa por el punto central del
diseño de localizador; y (a14) calcular un ángulo de corrección de
un eje de orientación que pasa por el punto central del diseño del
localizador y el punto central del módulo negro calculado por lo
operación de cálculo del punto central.
4. El método de la reivindicación 2ª, en el que
la operación (a2) comprende una operación para calcular un punto
central y anchura de módulo de módulos reales que constituyen un
grupo de módulos reales del mismo color basado en el área de un
grupo de módulos reales del mismo color que comprenden uno o una
pluralidad de módulos reales del mismo color contiguos en el mismo
eje de orientación.
5. El método de la reivindicación 2ª, en el que
la operación (a3) comprende las siguientes operaciones: (a31)
detectar un eje de orientación de referencia como el eje de
orientación que tiene la menor corrección de todos los ejes de
orientación; (a32) calcular los puntos centrales y las anchura de
módulo para una pluralidad de módulos candidatos presentes en un eje
de orientación y basado en la información de forma para el módulo
negro más alejado del diseño de localizador sobre el eje de
orientación de referencia detectado por la operación de detección
del eje de orientación de referencia; y (a33) calcular puntos
centrales y anchura de módulo para una pluralidad de módulos
candidatos presentes en un eje de orientación distinto del eje de
orientación de referencia basado en las posiciones de módulo real y
módulo candidato sobre el eje de orientación de referencia.
6. El método según cualquiera de las
reivindicaciones 1ª a 5ª, en el que el símbolo de código de barras
codifica datos por medio de celdas alternativas negra y blanca.
7. El método según cualquiera de la
reivindicaciones 1ª a 5ª, en el que el símbolo del código de barras
es un símbolo de MaxiCódigo.
8. Un aparato para leer un símbolo de código de
barras bidimensional que comprende una unidad de búsqueda de módulo
de datos para calcular la información de posición y forma para todos
los módulos que constituyen el símbolo de código de barras,
incluyendo la unidad (206) de búsqueda de módulo de datos medios
para explorar el símbolo del código de barras para obtener una
imagen explorada, una unidad (203) de búsqueda de diseño de
localizador para determinar el punto central del diseño de
localizador en una imagen explorada del símbolo de código de barras
caracterizado porque la unidad de búsqueda de módulo de datos
incluye además medios para calcular un eje de orientación que pasa a
través de un módulo de orientación y el punto central del diseño de
localizador en una imagen explorada de símbolo de código de barras
que comprende: una unidad de cálculo de la posición del módulo en
el eje de orientación para calcular, basado en la información de
posición del diseño de localizador y en la información de posición
del módulo de orientación y en información de forma, la información
de posición y forma para una pluralidad de módulos que constituyen
un grupo de módulos sobre dicho eje de orientación; una unidad para
detectar un diseño de bit de módulo de datos sobre el eje de
orientación para detectar un diseño de bit de dicha pluralidad de
módulos de datos sobre el eje de orientación calculada por la unidad
de cálculo de la posición del módulo sobre el eje de orientación;
una unidad de cálculo de la posición del módulo sobre el eje de
orientación, basado en la información de posición y forma de la
pluralidad de módulos de la pluralidad de grupos de módulos sobre
el eje de orientación calculadas por la unidad de cálculo de la
posición del módulo sobre el eje de orientación, constituyendo la
información de posición para una pluralidad de módulos un grupo de
módulos entre ejes de orientación adyacentes; y una unidad de
detección del diseño de bit del módulo de datos sobre el eje de
orientación para detectar el diseño de bit de la pluralidad de
módulos de datos presentes entre los ejes de orientación calculada
por la unidad de cálculo de la posición del módulo sobre el eje de
orientación.
9. El aparato de la reivindicación 8ª, en el que
La unidad de cálculo de la posición del módulo sobre el eje de
orientación comprende: una unidad de corrección del ángulo del eje
de orientación para corregir el ángulo del eje de orientación de
modo que el eje de orientación pase por los puntos centrales de la
pluralidad de módulos que constituyen un grupo de módulos sobre el
eje de orientación; una unidad de corrección de la anchura del
módulo real sobre el eje de orientación para calcular la información
de posición para una pluralidad de módulos reales presentes sobre un
eje de orientación corregida por la unidad de corrección del ángulo
del eje de orientación y basada en la información de posición
calculada que corrige la anchura de módulo, que es información de
forma para la pluralidad de módulos reales; una unidad de corrección
de la anchura del módulo candidato sobre el eje de orientación para
calcular la información de posición para una pluralidad de módulos
candidatos presentes sobre el eje de orientación basada en la
información de posición y forma del módulo real calculada por la
unidad de corrección de anchura del módulo real sobre el eje de
orientación.
10. El aparato de la reivindicación 9ª, en el que
la unidad de corrección del ángulo del eje de orientación comprende:
una unidad de cálculo del primer punto central corregido para
calcular, basado en un área de grupo de módulos negros que contiene
uno o una pluralidad de módulos negros contiguos presentes sobre el
eje de orientación, un primer punto central corregido de un módulo
negro más próximo al diseño de localizador en el grupo de módulos
negros; una unidad de cálculo del segundo punto central corregido
para calcular un segundo punto central del módulo negro corregido
basado en el área de un grupo de módulos negros que comprende uno o
una pluralidad de módulos negros contiguos que incluyen el módulo
negro presente en un eje de reserva vecino paralelo a un eje de
orientación adyacente al eje de orientación y que pasa a través del
primer punto central del módulo negro corregido calculado por la
unidad de cálculo del primer punto central corregido; una unidad de
cálculo de punto central para calcular un punto central de módulo
negro basado en el segundo punto central de módulo negro corregido
calculado por la unidad de cálculo del segundo punto central
corregido, y el área de un grupo de módulos negros que comprende
uno o una pluralidad de módulos negros contiguos que incluyen el
módulo negro presente en un eje de reserva de orientación que pasa
por el punto central del diseño de localizador; una unidad de
cálculo del ángulo de corrección del eje de orientación para
calcular un ángulo de corrección de un eje de orientación que pasa
por el punto central del diseño de localizador y el punto central
del módulo negro calculado por la unidad de cálculo del punto
central.
11. El aparato de la reivindicación 9ª, en el que
la unidad de corrección de la anchura del módulo real sobre el eje
de orientación comprende una unidad de cálculo para calcular un
punto central y la anchura de módulo de módulos reales que
constituyen un grupo de módulos reales del mismo color basado en el
área del grupo de módulos reales del mismo color que comprende uno o
una pluralidad de módulos reales del mismo color contiguos sobre el
mismo eje de orientación.
12. El aparato de la reivindicación 9ª, en el que
la unidad de corrección de la anchura de módulo candidato sobre el
eje de orientación comprende: una unidad de detección del eje de
orientación de referencia para detectar un eje de orientación de
referencia como el eje de orientación que tiene la menor corrección
de todos los eje de orientación; una primera unidad de cálculo para
calcular puntos centrales y anchuras de módulo para una pluralidad
de módulos candidatos presentes en un eje de orientación basado en
la información de forma para el módulo negro más alejado del diseño
de localizador sobre el eje de orientación de referencia detectada
por la unidad de detección del eje de orientación de referencia; y
una segunda unidad de cálculo para calcular puntos centrales y
anchuras de módulo para una pluralidad de módulos candidatos
presentes sobre un eje de orientación distinto del eje de
orientación de referencia basado en las posiciones de módulo real y
módulo candidato sobre el eje de orientación de referencia.
13. El aparato según cualquiera de las
reivindicaciones 8ª a 12ª, en el que el símbolo del código de barras
codifica datos por medio de celdas alternativas negra y blanca.
14. El aparato según cualquiera de la
reivindicaciones 8ª a 12ª, en el que el símbolo del código de barras
es un símbolo de MaxiCódigo.
15. Un medio de almacenamiento de datos legible
por ordenador que pone en práctica un programa para llevar a cabo
operaciones del método según se ha definido en cualquiera de la
reivindicaciones 1ª a 7ª.
16. El medio de almacenamiento de datos según la
reivindicación 15ª, en el que el medio de almacenamiento de datos es
un Disco Compacto, disco flexible, disco duro, disco magneto-óptico,
Disco Versátil Digital (DVD), cinta magnética, o tarjeta de
memoria.
Applications Claiming Priority (8)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000-104970 | 2000-04-06 | ||
| JP2000104970A JP2001291051A (ja) | 2000-04-06 | 2000-04-06 | 二次元バーコードの読み取り方法及び装置、情報記録媒体 |
| JP2000201279A JP2002024752A (ja) | 2000-07-03 | 2000-07-03 | 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置 |
| JP2000-201279 | 2000-07-03 | ||
| JP2000-237086 | 2000-08-04 | ||
| JP2000237086A JP2002049889A (ja) | 2000-08-04 | 2000-08-04 | 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置 |
| JP2000355940A JP2002157549A (ja) | 2000-11-22 | 2000-11-22 | 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置 |
| JP2000-355940 | 2000-11-22 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2256106T3 true ES2256106T3 (es) | 2006-07-16 |
Family
ID=27481198
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES01108629T Expired - Lifetime ES2256106T3 (es) | 2000-04-06 | 2001-04-05 | Metodo y aparato para leer un simbolo de codigo de barra bidimensional y medio de almacenamiento de datos. |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US6604682B2 (es) |
| EP (1) | EP1143372B1 (es) |
| KR (1) | KR100579356B1 (es) |
| CN (1) | CN1334544A (es) |
| AT (1) | ATE321310T1 (es) |
| DE (1) | DE60118051T2 (es) |
| ES (1) | ES2256106T3 (es) |
| HK (1) | HK1043852A1 (es) |
Families Citing this family (71)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6705526B1 (en) * | 1995-12-18 | 2004-03-16 | Metrologic Instruments, Inc. | Automated method of and system for dimensioning objects transported through a work environment using contour tracing, vertice detection, corner point detection, and corner point reduction methods on two-dimensional range data maps captured by an amplitude modulated laser scanning beam |
| US20060082557A1 (en) * | 2000-04-05 | 2006-04-20 | Anoto Ip Lic Hb | Combined detection of position-coding pattern and bar codes |
| US20020016750A1 (en) * | 2000-06-20 | 2002-02-07 | Olivier Attia | System and method for scan-based input, storage and retrieval of information over an interactive communication network |
| US6666377B1 (en) | 2000-07-18 | 2003-12-23 | Scott C. Harris | Bar code data entry device |
| AU2003287495A1 (en) * | 2002-11-04 | 2004-06-07 | Deepq Technologies, A General Partnership | Document processing based on a digital document image input with a confirmatory receipt output |
| ATE465468T1 (de) * | 2002-12-03 | 2010-05-15 | Silverbrook Res Pty Ltd | Rotationssymmetrische markierungen |
| JP4133298B2 (ja) * | 2002-12-19 | 2008-08-13 | 株式会社リコー | デジタルカメラ装置 |
| CN2591284Y (zh) * | 2002-12-27 | 2003-12-10 | 萧呈方 | 散热风扇 |
| JP4257132B2 (ja) * | 2003-02-21 | 2009-04-22 | 富士通株式会社 | バーコード読取装置およびバーコード読取方法 |
| SE0301143D0 (sv) * | 2003-04-17 | 2003-04-17 | C Technologies Ab | Sätt och anordning för inläsning av data |
| US7156311B2 (en) * | 2003-07-16 | 2007-01-02 | Scanbuy, Inc. | System and method for decoding and analyzing barcodes using a mobile device |
| US7387250B2 (en) * | 2003-12-04 | 2008-06-17 | Scanbuy, Inc. | System and method for on the spot purchasing by scanning barcodes from screens with a mobile device |
| US20050227217A1 (en) * | 2004-03-31 | 2005-10-13 | Wilson Andrew D | Template matching on interactive surface |
| US7296747B2 (en) | 2004-04-20 | 2007-11-20 | Michael Rohs | Visual code system for camera-equipped mobile devices and applications thereof |
| KR100560330B1 (ko) * | 2004-04-21 | 2006-03-30 | 에이디정보통신 주식회사 | 색상 보정이 가능한 대용량 2차원 칼라 바코드인코딩/디코딩 시스템 및 그 방법 |
| US8316068B2 (en) | 2004-06-04 | 2012-11-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Memory compression |
| US7593593B2 (en) * | 2004-06-16 | 2009-09-22 | Microsoft Corporation | Method and system for reducing effects of undesired signals in an infrared imaging system |
| US7309015B2 (en) * | 2004-07-14 | 2007-12-18 | Scanbuy, Inc. | Mobile device gateway providing access to instant information |
| US20060050961A1 (en) * | 2004-08-13 | 2006-03-09 | Mohanaraj Thiyagarajah | Method and system for locating and verifying a finder pattern in a two-dimensional machine-readable symbol |
| US7201321B2 (en) * | 2004-08-27 | 2007-04-10 | Symbol Technologies, Inc. | Electro-optically reading direct part markings on workpieces by image capture |
| JP4089670B2 (ja) * | 2004-09-09 | 2008-05-28 | 村田機械株式会社 | 文書管理装置 |
| US7578436B1 (en) | 2004-11-08 | 2009-08-25 | Pisafe, Inc. | Method and apparatus for providing secure document distribution |
| WO2006089247A2 (en) * | 2005-02-16 | 2006-08-24 | Pisafe, Inc. | Method and system for creating and using redundant and high capacity barcodes |
| WO2006105686A1 (en) * | 2005-04-06 | 2006-10-12 | Eidgenössische Technische Hochschule Zürich | Method of executing an application in a mobile device |
| WO2006112866A2 (en) | 2005-04-13 | 2006-10-26 | Scanbuy, Inc. | Visual code system for camera-equipped mobile devices and applications thereof |
| US7775428B2 (en) | 2005-05-06 | 2010-08-17 | Berkun Kenneth A | Systems and methods for generating, reading and transferring identifiers |
| JP4670464B2 (ja) * | 2005-05-10 | 2011-04-13 | 日本電気株式会社 | 情報読取装置、情報処理装置、情報通信システム、情報読取方法、及びプログラム |
| WO2006127608A2 (en) * | 2005-05-23 | 2006-11-30 | Nextcode Corporation | Efficient finder patterns and methods for application to 2d machine vision problems |
| US7911444B2 (en) * | 2005-08-31 | 2011-03-22 | Microsoft Corporation | Input method for surface of interactive display |
| US7974435B2 (en) * | 2005-09-16 | 2011-07-05 | Koplar Interactive Systems International Llc | Pattern-based encoding and detection |
| US7942340B2 (en) * | 2005-11-24 | 2011-05-17 | Canon Kabushiki Kaisha | Two-dimensional code, and method and apparatus for detecting two-dimensional code |
| WO2007075719A2 (en) * | 2005-12-16 | 2007-07-05 | Pisafe, Inc. | Method and system for creating and using barcodes |
| US7584891B2 (en) * | 2005-12-19 | 2009-09-08 | Pitney Bowes Inc. | Black fluorescent optical codes and process for printing and reading |
| US8016187B2 (en) * | 2006-02-21 | 2011-09-13 | Scanbury, Inc. | Mobile payment system using barcode capture |
| CN100377167C (zh) * | 2006-03-17 | 2008-03-26 | 北京紫光捷通科技有限公司 | 一种用于二维码识别的二维码区域精确定位方法 |
| US8150163B2 (en) | 2006-04-12 | 2012-04-03 | Scanbuy, Inc. | System and method for recovering image detail from multiple image frames in real-time |
| US7857219B2 (en) * | 2006-05-26 | 2010-12-28 | Symbol Technologies, Inc. | Imaging reader target object finder system |
| WO2008073455A1 (en) * | 2006-12-11 | 2008-06-19 | Koplar Interactive Systems International, L.L.C. | Spatial data encoding and decoding |
| US8212857B2 (en) | 2007-01-26 | 2012-07-03 | Microsoft Corporation | Alternating light sources to reduce specular reflection |
| WO2008118425A1 (en) | 2007-03-23 | 2008-10-02 | Ltt, Ltd | Method and apparatus for using a limited capacity portable data carrier |
| US7780084B2 (en) | 2007-06-29 | 2010-08-24 | Microsoft Corporation | 2-D barcode recognition |
| US8472039B2 (en) * | 2007-07-10 | 2013-06-25 | Samsung Electronics Co., Ltd. | Copy apparatus having a copy prevention function and a copy prevention method thereof |
| JP5432714B2 (ja) * | 2007-08-03 | 2014-03-05 | 学校法人慶應義塾 | 構図解析方法、構図解析機能を備えた画像装置、構図解析プログラム及びコンピュータ読み取り可能な記録媒体 |
| US20090111584A1 (en) * | 2007-10-31 | 2009-04-30 | Koplar Interactive Systems International, L.L.C. | Method and system for encoded information processing |
| MX2010008335A (es) * | 2008-01-29 | 2011-02-22 | Veritec Inc | Simbolo bidimensional y metodo para leerlo. |
| JP5567908B2 (ja) * | 2009-06-24 | 2014-08-06 | キヤノン株式会社 | 3次元計測装置、その計測方法及びプログラム |
| WO2011011051A2 (en) * | 2009-07-20 | 2011-01-27 | The Regents Of The University Of California, Santa Cruz | Image-based barcode reader |
| US8531401B2 (en) | 2009-08-13 | 2013-09-10 | Hewlett-Packard Development Company, L.P. | Computer accessory device |
| US20110066504A1 (en) * | 2009-09-17 | 2011-03-17 | Ehud Chatow | System for providing promotion information |
| US8788325B2 (en) * | 2009-11-30 | 2014-07-22 | Ncr Corporation | Techniques for generating a product path with custom advertisements |
| CN101882220B (zh) * | 2010-06-01 | 2013-07-17 | 福建新大陆电脑股份有限公司 | 一种基于动态模板的条码图像校正方法及校正点获取方法 |
| KR101109510B1 (ko) * | 2010-07-02 | 2012-01-31 | (주) 애니모비 | 2차원 바코드 인식방법 |
| US9396421B2 (en) | 2010-08-14 | 2016-07-19 | Rujan Entwicklung Und Forschung Gmbh | Producing, capturing and using visual identification tags for moving objects |
| FR2968796B1 (fr) | 2010-12-10 | 2014-04-25 | Samuel Boury | Procede de detection d'un marqueur appose sur la surface d'un objet et systeme de mise en oeuvre |
| FR2968797A1 (fr) * | 2010-12-10 | 2012-06-15 | Samuel Boury | Procede de generation d'un marqueur a apposer sur la surface d'un objet |
| AU2010257441B2 (en) * | 2010-12-24 | 2012-09-20 | Canon Kabushiki Kaisha | Method, apparatus and system for identifying candidate pairs of finder patterns of a barcode |
| WO2012136902A1 (fr) | 2011-04-05 | 2012-10-11 | Franck Guigan | Code-barres de sécurité |
| KR101865197B1 (ko) * | 2011-11-29 | 2018-07-16 | 삼성전자주식회사 | 휴대용 단말기에서 코드 이미지를 획득하기 위한 장치 및 방법 |
| CN102708349B (zh) * | 2012-05-11 | 2014-11-05 | 深圳市天朗时代科技有限公司 | 一种矩阵式二维码的解码方法 |
| EP2711866A1 (en) * | 2012-09-21 | 2014-03-26 | Biomerieux | Method and system for detecting a 2D barcode in a circular label |
| US9171203B2 (en) * | 2013-09-10 | 2015-10-27 | Dropbox, Inc. | Scanbox |
| JP6393226B2 (ja) * | 2015-03-31 | 2018-09-19 | 日本電産サンキョー株式会社 | スタック型バーコード読取装置およびスタック型バーコード読取方法 |
| US9760819B2 (en) | 2015-12-14 | 2017-09-12 | International Business Machines Corporation | Encoding and decoding data in two-dimensional symbology |
| EP3199953B1 (en) * | 2016-02-01 | 2021-03-24 | Roche Diagniostics GmbH | Method for teaching positioning of a bar code scanner and apparatus for processing a sample or reagent |
| CN106156684B (zh) * | 2016-06-30 | 2019-01-18 | 南京理工大学 | 一种二维码识别方法及装置 |
| CN111291584B (zh) | 2016-07-22 | 2023-05-02 | 创新先进技术有限公司 | 识别二维码位置的方法及其系统 |
| US9928632B1 (en) | 2017-06-14 | 2018-03-27 | Capital One Services, Llc | Systems and methods for generating and reading intrinsic matrixed bar codes |
| CN107590522B (zh) * | 2017-08-23 | 2020-08-21 | 阿里巴巴集团控股有限公司 | 一种识别码生成及识别的方法及装置 |
| US10802498B2 (en) | 2018-05-30 | 2020-10-13 | Datalogic Ip Tech S.R.L. | Target direction estimation using centroid follower |
| CN110332897A (zh) * | 2019-08-08 | 2019-10-15 | 珠海博明视觉科技有限公司 | 一种提高系统对小圆测量精度的补偿模型 |
| JP7408334B2 (ja) | 2019-10-03 | 2024-01-05 | Thk株式会社 | 画像処理装置及び移動体制御システム |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4889367A (en) * | 1988-10-07 | 1989-12-26 | Frito-Lay, Inc. | Multi-readable information system |
| US5189292A (en) * | 1990-10-30 | 1993-02-23 | Omniplanar, Inc. | Finder pattern for optically encoded machine readable symbols |
| JP2764224B2 (ja) | 1993-03-01 | 1998-06-11 | ユナイテツド パーセル サービス オブ アメリカ インコーポレイテツド | 補足目標の位置を求める方法および装置 |
| US5591956A (en) * | 1995-05-15 | 1997-01-07 | Welch Allyn, Inc. | Two dimensional data encoding structure and symbology for use with optical readers |
| GB9408626D0 (en) * | 1994-04-29 | 1994-06-22 | Electronic Automation Ltd | Machine readable binary code |
| DK0764307T3 (da) * | 1994-06-07 | 1999-05-10 | United Parcel Service Inc | Fremgangsmåde og anordning til at dekode todimentionale symboler i det rumlige domæne |
| US5515447A (en) | 1994-06-07 | 1996-05-07 | United Parcel Service Of America, Inc. | Method and apparatus for locating an acquisition target in two-dimensional images by detecting symmetry in two different directions |
| JP3448120B2 (ja) * | 1994-12-27 | 2003-09-16 | シャープ株式会社 | デジタル情報記録担体 |
| US5637849A (en) * | 1995-05-31 | 1997-06-10 | Metanetics Corporation | Maxicode data extraction using spatial domain features |
| US5786583A (en) * | 1996-02-16 | 1998-07-28 | Intermec Corporation | Method and apparatus for locating and decoding machine-readable symbols |
| US5742041A (en) * | 1996-05-29 | 1998-04-21 | Intermec Corporation | Method and apparatus for locating and decoding machine-readable symbols, including data matrix symbols |
| US5761219A (en) * | 1996-07-12 | 1998-06-02 | Intermec Technologies Corporation | Error correction for PDF417 and other machine-readable symbologies |
| ATE206833T1 (de) * | 1997-11-17 | 2001-10-15 | Datalogic Spa | Maxicode-lokalisierungsverfahren |
| US6267296B1 (en) * | 1998-05-12 | 2001-07-31 | Denso Corporation | Two-dimensional code and method of optically reading the same |
| TW434520B (en) * | 1998-06-30 | 2001-05-16 | Sony Corp | Two-dimensional code recognition processing method, device therefor and medium |
| US6412695B1 (en) * | 2000-04-07 | 2002-07-02 | Motorola, Inc. | Optical code and delineator apparatus and method |
-
2001
- 2001-04-05 ES ES01108629T patent/ES2256106T3/es not_active Expired - Lifetime
- 2001-04-05 AT AT01108629T patent/ATE321310T1/de not_active IP Right Cessation
- 2001-04-05 DE DE60118051T patent/DE60118051T2/de not_active Expired - Lifetime
- 2001-04-05 EP EP01108629A patent/EP1143372B1/en not_active Expired - Lifetime
- 2001-04-06 KR KR1020010018244A patent/KR100579356B1/ko not_active Expired - Fee Related
- 2001-04-06 CN CN01119210A patent/CN1334544A/zh active Pending
- 2001-04-06 US US09/828,453 patent/US6604682B2/en not_active Expired - Lifetime
-
2002
- 2002-07-22 HK HK02105405.6A patent/HK1043852A1/zh unknown
Also Published As
| Publication number | Publication date |
|---|---|
| EP1143372A3 (en) | 2002-04-24 |
| DE60118051T2 (de) | 2006-08-31 |
| US6604682B2 (en) | 2003-08-12 |
| EP1143372A2 (en) | 2001-10-10 |
| DE60118051D1 (de) | 2006-05-11 |
| CN1334544A (zh) | 2002-02-06 |
| EP1143372B1 (en) | 2006-03-22 |
| HK1043852A1 (zh) | 2002-11-08 |
| KR100579356B1 (ko) | 2006-05-12 |
| ATE321310T1 (de) | 2006-04-15 |
| KR20010098464A (ko) | 2001-11-08 |
| US20020020747A1 (en) | 2002-02-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2256106T3 (es) | Metodo y aparato para leer un simbolo de codigo de barra bidimensional y medio de almacenamiento de datos. | |
| US11151346B2 (en) | Methods and apparatus for decoding under-resolved symbols | |
| US5951056A (en) | Information reproduction system for reproducing a two-dimensional, optically readable code | |
| AU668332B2 (en) | Polygonal information encoding article, process and system | |
| KR102427514B1 (ko) | 머신 판독 물품들을 위한 폐색 탄성 광학 코드들 | |
| US6053407A (en) | Maxicode data extraction using spatial domain features | |
| EP0672994A1 (en) | Method and apparatus for reading an optically two-dimensional code | |
| WO2018204306A1 (en) | Method and apparatus for label detection | |
| ES2616146B2 (es) | Método de detección y reconocimiento de marcadores visuales de largo alcance y alta densidad | |
| CN101833641B (zh) | 条码解码芯片 | |
| ES2947177T3 (es) | Células y matrices de células codificadas | |
| CN101908122A (zh) | 条空边界处理模块、条码识别装置及其方法 | |
| ES2649573T3 (es) | Procedimiento de detección de un marcador colocado en la superficie de un objeto y sistema de aplicación | |
| US10733489B2 (en) | Optically readable tags and methods and systems for decoding an optically readable tag | |
| US7950581B2 (en) | System and method of acquiring a machine-readable symbol | |
| CN101908126B (zh) | Pdf417条码解码芯片 | |
| Ahsan et al. | Grid-Index-Based Three-Dimensional Profilometry | |
| ES2817652B2 (es) | Codigo visual, procedimiento para generar un codigo visual y procedimiento para decodificar un codigo visual | |
| CN101833643B (zh) | 复合码条码解码芯片 | |
| ES2848842T3 (es) | Método de detección de código de barras | |
| JP2006331214A (ja) | 物体識別タグ及びこれを使用した物体識別システム | |
| JP2002157549A (ja) | 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置 | |
| KR101479899B1 (ko) | 점 패턴 검색 장치 및 방법 | |
| ES2817926B2 (es) | Codigo visual y procedimiento para codificar y decodificar una imagen bidimensional | |
| CN101833642A (zh) | MicroPDF417条码解码芯片 |