ES2303566T3 - Aparato y metodo para reconocer un codigo. - Google Patents
Aparato y metodo para reconocer un codigo. Download PDFInfo
- Publication number
- ES2303566T3 ES2303566T3 ES02802741T ES02802741T ES2303566T3 ES 2303566 T3 ES2303566 T3 ES 2303566T3 ES 02802741 T ES02802741 T ES 02802741T ES 02802741 T ES02802741 T ES 02802741T ES 2303566 T3 ES2303566 T3 ES 2303566T3
- Authority
- ES
- Spain
- Prior art keywords
- image
- code
- color
- colors
- shadow
- 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; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
- Communication Control (AREA)
- Character Input (AREA)
- Facsimile Image Signal Circuits (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
Un aparato para reconocer un código, cuyo aparato comprende: una parte (17) de configuración de código para establecer una relación entre el carácter, número o símbolo y el color o la sombra correspondientes; una parte (11) de adquisición de imagen para adquirir una imagen no elaborada en la que está contenida una imagen de código, cuyo aparato se caracteriza por: una parte (13) de tratamiento de imagen para discriminar de otras áreas un área de la imagen de código, extraer una pluralidad de celdas incluidas en el área de imagen de código, y reconocer el color estándar o la sombra estándar representados en cada una de las celdas, y para corregir los colores o sombras reconocidos con respecto a cada una de las celdas incluidas en el área de imagen de código, usar una variable ambiental que se configura para discriminar los colores o sombras de la imagen no elaborada teniendo en cuenta un ambiente en el que está introducida la imagen no elaborada; y una parte (15) de conversión de código para convertir los colores o sombras corregidos en una pluralidad de colores estándar o sombras estándar usados para generar la imagen de código, y para extraer un carácter, número o símbolo correspondientes del color o de la sombra reconocidos en cada una de las celdas de la imagen de código de acuerdo con la relación establecida en la parte (17) de configuración de código, para generar datos de código.
Description
Aparato y método para reconocer un código.
El presente invento se refiere a un aparato para
reconocer una imagen de código, que se ha expresado física o
electrónicamente, y para extraer información representada en la
imagen de código, y a un método para realizar dichas
operaciones.
En un método para representar datos
reconocibles, tales como caracteres, números o símbolos, existe un
caso en el que los caracteres, números, o símbolos se representan
como imágenes en consideración a la seguridad de los datos o en un
espacio de presentación visual. Análogamente, con el fin de leer
unos datos originales de una imagen de código en la que los datos
estén representados como una imagen, se debe proveer un
descodificador adecuado.
Por el documento US 5.352.878 es conocido
proveer un lector de código de barras que descodifica un símbolo de
código de barras, un carácter cada vez, mediante el análisis de los
espacios de cada carácter independientemente de las barras de cada
carácter. El lector determina las anchuras de cada espacio y cada
barra y determina valores umbrales de anchura independientemente.
Luego, el lector descodifica el carácter de acuerdo con estas
clasificaciones estrecho/ancho.
Por el documento EP 0582911 se conoce la
provisión de un método y aparato para detectar y descodificar
símbolos de códigos de barras que están dispuestos de forma
aleatoria en imágenes bidimensionales de píxeles de escala de
grises.
Para solucionar el problema, un objeto del
presente invento es proveer un aparato para reconocer un código que
es capaz de leer unos datos originales de una imagen de código en la
que los datos están expresados como un color o una sombra, y un
método para realizar dicho reconocimiento.
De acuerdo con un primer aspecto del presente
invento, se provee un aparato para reconocer un código, cuyo
aparato comprende:
una parte de configuración de código para
establecer una relación entre el carácter, número o símbolo y el
color o sombra correspondientes;
una parte de adquisición de imagen para adquirir
una imagen no elaborada en la que está contenida una imagen de
código; cuyo aparato se caracteriza por:
- una parte para tratamiento de imagen para determinar un área de la imagen de código de otras áreas, extraer una pluralidad de celdas incluidas en el área de imagen de código, y reconocer el color estándar o la sombra estándar representados en cada una de las celdas, y para corregir colores o sombras reconocidos con respecto a cada una de las celdas incluidas en el área de imagen de código, usando una variable ambiental que se configura para discriminar colores o sombras de la imagen no elaborada en consideración de un ambiente en el que se introduce como entrada la imagen no elaborada; y
- una parte de conversión de código para convertir los colores o sombras corregidos en una pluralidad de colores estándar o sombras estándar usados para generar la imagen de código, y para extraer un carácter, número o símbolo correspondientes del color o sombra reconocidos en cada una de las celdas de la imagen de código de acuerdo con la relación establecida en la parte de configuración de código, para generar datos de código.
\vskip1.000000\baselineskip
De acuerdo con un segundo aspecto del presente
invento, se ha provisto un método para reconocer un código, cuyo
método comprende las etapas de: adquirir una imagen no elaborada en
la que está contenida una imagen de código; caracterizándose el
método por las etapas de: discriminar de otras áreas el área de
imagen de código, extraer una pluralidad de celdas incluidas en el
área de imagen de código, y reconocer el color estándar o la sombra
estándar representados en cada una de las celdas; corregir colores o
sombras reconocidos con respecto a cada una de las celdas incluidas
en el área de imagen de código, usando una variable ambiental que se
configura para discriminar colores o sombras de la imagen no
elaborada teniendo en cuenta un ambiente en el que se introduce
como entrada la imagen no elaborada;
convertir los colores o sombras corregidos en
una pluralidad de colores estándar o sombras estándar usados para
generar la imagen de código; y
extraer un carácter, número o símbolo
correspondientes del color o sombra reconocidos en cada una de las
celdas de la imagen de código de acuerdo con una relación entre el
carácter, número o símbolo y el color o sombra correspondientes,
para generar datos de código.
\vskip1.000000\baselineskip
El objetivo anterior y las ventajas del presente
invento resultarán más evidentes mediante la descripción detallada
de realizaciones preferidas del mismo con referencia a los dibujos
adjuntos, en los que:
La Figura 1A es un diagrama de bloques de un
aparato para reconocer un código de acuerdo con una primera
realización del presente invento, y la Figura 1B es un diagrama de
flujo que ilustra el funcionamiento del aparato mostrado en la
Figura 1A;
Las Figuras 2A hasta 2E ilustran varios ejemplos
de imágenes de código a leer por el aparato, las Figuras 3A hasta
3C ilustran ejemplos de tablas de conversión de código utilizadas
para convertir datos predeterminados en una imagen, y la Figura 4
ilustra un ejemplo en el que una imagen de código se incorpora a una
tarjeta de nombre;
La Figura 5 es un diagrama de bloques del
aparato de acuerdo con una segunda realización del presente invento,
y la Figura 6 es un diagrama de flujo que ilustra el funcionamiento
del aparato mostrado en la Figura 5;
Las Figuras 7A hasta 7F ilustran resultados en
los que se obtienen imágenes en blanco y negro a partir de imágenes
no elaboradas;
Las Figuras 8A hasta 8F ilustran etapas de la
extracción de una imagen de ruido de una imagen en blanco y
negro;
La Figura 9 es un diagrama de flujo que ilustra
la etapa de reconocer un color estándar representado en cada píxel
de la imagen de código;
Las Figuras 10 a 14 ilustran ejemplos para
explicar la Figura 9; y
La Figura 15 es un diagrama de bloques del
aparato de acuerdo con una tercera realización del presente invento,
y la Figura 16 es un diagrama de flujo que ilustra el
funcionamiento del aparato mostrado en la Figura 15.
\vskip1.000000\baselineskip
De aquí en adelante, en la presente memoria se
expone con detalle el presente invento mediante la descripción de
realizaciones preferidas del mismo con referencia a los dibujos
adjuntos.
La Figura 1A es un diagrama de bloques de un
aparato para reconocer un código de acuerdo con una primera
realización del presente invento, y la Figura 1B es un diagrama de
flujo que ilustra el funcionamiento del aparato mostrado en la
Figura 1A.
Las Figuras 2A hasta 2E ilustran varios ejemplos
de imágenes de código a leerse por el aparato, y las Figuras 3A
hasta 3C ilustran ejemplos de tablas de conversión de código
utilizadas para convertir datos predeterminados en una imagen, y la
Figura 4 ilustra un ejemplo en el que una imagen de código se
incorpora a una tarjeta de nombre. El aparato para reconocer un
código lee una imagen de código (una imagen cuadrangular mostrada
en una esquina inferior derecha de la Figura 4) representada sobre
un medio físico y extrae unos datos originales de código
correspondientes a la imagen de código. La imagen de código es una
imagen en la que se convierte un número, un carácter o un símbolo
usando una tabla de conversión de código y podría expresarse de
diversas maneras según se ha mostrado en las Figuras 2A hasta 2D.
En primer lugar, se describirá el funcionamiento del aparato para
reconocer un código con referencia a las Figuras 1A y 1B.
En la etapa 21, una parte 11 de adquisición de
imagen adquiere una imagen que incluye una "imagen de código",
que se expresa física o electrónicamente. Unos datos de código que
se extraerán eventualmente se expresan como una forma de imagen en
la imagen de código. La parte 11 de adquisición de imagen lee la
imagen expresada físicamente a través de un dispositivo de entrada
de imagen, tal como un escáner, una cámara digital, una cámara de
PC, un detector, o un fax, y convierte la imagen leída en unos datos
de imagen, que se pueden tratar electrónicamente. En este caso, a
la salida de la parte 11 de adquisición de imagen se hace referencia
como "imagen no elaborada", y la imagen no elaborada se
formatea como un archivo de imagen, que se puede tratar mediante un
ordenador. En general, en la imagen no elaborada está contenida una
imagen de ruido o de fondo con una imagen de código.
Una parte 13 de tratamiento de imagen extrae una
imagen de código de la imagen no elaborada y reconoce el color o la
sombra de las celdas individuales contenidos en la imagen de
código.
En la etapa 22, basándose en un parámetro tal
como una variable ambiental y/o un modo de color, se extrae de la
imagen no elaborada una región de imagen de código. En la etapa 23,
la parte 13 de tratamiento de imagen genera datos relacionados con
la imagen de código basándose en la imagen no elaborada y discrimina
la forma, posición, o tipo de imagen de código. En la etapa 24, la
parte 13 de tratamiento de imagen discrimina el número, forma y
posición de las celdas contenidas en la imagen de código. En la
etapa 25, la parte 13 de tratamiento de imagen detecta el color o
la sombra de cada celda. La parte 13 de tratamiento de imagen
configura una variable ambiental teniendo en cuenta el entorno
ambiental en un tiempo cuando se haya adquirido la imagen no
elaborada, corrige el color o la sombra de celdas individuales
usando la variable ambiental, y de ese modo detecta el color o la
sombra originales de cada
celda.
celda.
La parte 13 de tratamiento de imagen extrae la
región de imagen de código, excepto una parte de imagen de fondo,
de las imágenes no elaboradas, y discrimina la forma y tipo de la
imagen de código, discriminando por tanto las celdas contenidas en
la región de imagen de código sobre esta base. Preferiblemente, la
imagen no elaborada se convierte en una imagen en blanco y negro
basándose en una variable ambiental en blanco y negro, que se
configura de acuerdo con el grado de brillo en un estado en el que
se introduce como entrada la imagen no elaborada. Preferiblemente,
se configura un color de la parte de imagen de fondo de la imagen en
blanco y negro mediante un color peculiar de fondo, que no se use
para representar datos de código. Preferiblemente, luego, se
configura un color de las partes de imagen no elaborada
correspondientes a la parte de imagen de fondo en la imagen en
blanco y negro mediante el color de fondo, y mediante la
discriminación de partes de imagen de código y partes de fondo, se
extrae de la imagen no elaborada la región de imagen de código. Se
podrían reducir unas operaciones aritméticas requeridas para extraer
la región de imagen de código mediante el uso de la imagen en
blanco y negro.
Preferiblemente, la parte 13 de tratamiento de
imagen recibe una imagen en la que las partes de imagen de código y
las otras partes se dividen por el color de fondo, divide la imagen
recibida en una pluralidad de bloques, detecta una región que tiene
un color o sombra que no es el color de fondo de cada uno de los
bloques, selecciona un bloque que tenga la región más amplia entre
todos los bloques, detecta un punto central de la región de imagen
de código contenida en el bloque seleccionado, y explora la
totalidad de la imagen basándose en el punto central, detectando de
ese modo la región que tiene un color o sombra que no es el color de
fondo como la región de imagen de código.
Una parte 17 de configuración de código
establece una relación (véanse Figuras 3A hasta 3C) entre un
carácter, número o símbolo utilizados para representar datos y un
color o sombra correspondientes. En la etapa 26, una parte 15 de
conversión de código extrae un carácter, número o símbolo
correspondientes del color o sombra de cada celda de la imagen de
código de acuerdo con la relación provista por la parte 17 de
configuración de código, generando de ese modo unos datos de
código.
A continuación se describe un ejemplo de
configurar una variable ambiental utilizada para leer el color o
sombra de cada píxel en una imagen. La variable ambiental se podría
configurar a R, G ó B en un modo RGB, H, S, ó V en un modo HSV, o
en una combinación de las R, G, B y las H, S, V, con el fin de
normalizar el valor del color o el valor de la sombra, que es
reconocido en la imagen no elaborada teniendo en cuenta un ambiente
en el que se lee la imagen no elaborada. Dicho de otro modo, los
valores para una variable ambiental de color se suman o restan de
los valores de color o sombra de píxeles de las imágenes no
elaboradas. Por ejemplo, el valor de color o sombra podría ser un
valor para rojo, verde y azul en un modo de color RGB; matiz,
saturación y valor (brillo) en un modo de color HSV;
azul-verde, magenta, amarillo o negro en un modo de
color CMYK; o matiz, intensidad, y saturación, en un modo de color
HIS. El color o la sombra representados en la imagen no elaborada
se ajustan para corregir por el ambiente donde se leyó la imagen no
elaborada, y de ese modo se puede obtener el color/sombra
originales.
En general, se configura una variable ambiental
inicial sobre la hipótesis de que se usó para iluminación una luz
fluorescente o una lámpara de tres longitudes de onda. Por otra
parte, se usa una hoja blanca de papel como un fondo de referencia
antes de introducir como entrada una imagen no elaborada en una
cámara, y la variable ambiental se configura de acuerdo con la
iluminación del ambiente. Por ejemplo, la luz roja procedente de
una lámpara de halógeno es relativamente intensa, y por tanto la
variable ambiental se configura para quitar el efecto de la luz
roja emitida desde la lámpara de halógeno. A continuación, si el
color real detectado se normaliza usando la variable ambiental, se
puede reducir el efecto de iluminación, y pueden obtenerse colores
muy próximos al color original.
A continuación se describe un ejemplo de
corregir colores o sombras usando la variable ambiental. Se supone
que las imágenes de código comprenden ocho colores y se han
codificado usando una tabla de conversión de códigos mostrada en la
Figura 3B. En un caso en el que el valor de RGB representado en un
píxel de una imagen no elaborada se reconoce como (100, 100, 100),
y la variable ambiental se configura a (+ 100, - 50, + 50), el valor
corregido de RGB para el píxel, obtenido mediante la realización de
una operación aritmética sobre el valor de RGB y la variable
ambiental es (200, 50, 150). Para cada componente del valor
corregido de RGB, si el componente es mayor de 128, el componente
se convierte a 255. De lo contrario, el componente se convierte a 0.
Como resultado, el valor final de RGB es (255, 0, 255) y por tanto
el color o la sombra se discriminan como magenta.
Ejemplo
1
En el modo de color RGB, un valor máximo para
cada componente de RGB es 255, y por tanto el valor mínimo es 0.
Así, (255, 0, 0) representa rojo, (0, 255, 0) representa verde, (0,
0, 255) representa azul, (0, 0, 0) representa negro, y (255, 255,
255) representa blanco. En un caso en el que x es el valor de R, G
ó B, e y es el valor de una variable ambiental para cada R, G y B,
los componentes para el valor final para cada píxel se determinan
como se expresa a continuación.
Ejemplo
2
Se obtuvieron modos de color YIQ e YUV mediante
la asignación de un peso predeterminado al valor de RGB y son
similares al modo de RGB. Es decir, el modo de color YIQ se podría
obtener usando Y = 0,299 R + 0,587 G + 0, 114 B, I = 0,596 R -
0,274 G - 0,322 B, Q = 0,211 R - 0,523 G + 0,312 B. Y significa
brillo, e I y Q designan el grado de intensidad del rojo y del
azul, respectivamente.
Ejemplo
3
Un modo de color CMYK es un modo de color
utilizado usualmente para imprimir, y cada componente del color se
indica como el porcentaje o proporción en el modo de color CMYK. El
modo de color CMYK se expresa como (R/255, G/255, B/255) con
respecto a un valor de RGB. En un caso en el que x es un valor para
C, M, Y ó K, e y es un valor de la variable ambiental
correspondiente a cada componente de color, el valor final de CMYK
para cada píxel se determina como se indica a continuación.
Ejemplo
4
En el caso del modo de color HSV y HSI, el valor
para el matiz se expresa como un ángulo. En un caso en el que x es
el valor para el matiz y los valores ambientales de color se
configuran de tal manera que 0 \leq Trg < Tbr \leq 360, se
podría adoptar un método para discriminar colores de la forma
siguiente:
Ejemplo
5
Para el modo de color de la Comisión
Internacional de Iluminación (en adelante CIE), el valor de un
color se representa en un gráfico x-y. En este caso,
x e y se usan como una referencia para discriminar colores, y por
tanto, se podría adoptar un método para discriminar colores de la
forma siguiente:
Los datos referentes a una relación entre un
ambiente general y una variable ambiental a configurar de acuerdo
con el ambiente general se guardan en una base de datos, y se leen
los datos preconfigurados con respecto a un ambiente de trabajo
real, y de ese modo se podría usar la variable ambiental. La
variable ambiental se determina experimentalmente de tal manera que
los colores leídos por un dispositivo óptico de entrada se corrijan
a colores originales, o bien las imágenes de código se discriminan
del fondo, mediante el análisis de las características ópticas y la
iluminación ambiental del dispositivo óptico de entrada, y por tanto
los colores se podrían reconocer sin errores al mismo tiempo que no
resultan afectados por un dispositivo o un ambiente. Además, se
podrían formar dos o más grupos de variables ambientales que tengan
objetivos diferentes. Dicho de otro modo, uno de los grupos de
variable ambiental podría ser una variable ambiental para separar
del fondo las imágenes de código, y el otro podría ser una variable
ambiental para discriminar el color o la sombra de las imágenes de
código separadas del fondo. Por ejemplo, el valor de R es
relativamente elevado cuando los colores se discriminan para el
modo de RGB en el ambiente de iluminación que usa luz roja. De ese
modo, el valor para R leído en el dispositivo óptico se reduce a un
valor de peso predeterminado, y se excluye el efecto del ambiente.
Cuando la imagen de código en el ambiente de colores de iluminación
brillantes se discrimina como blanco y negro para el modo de HSV,
se aumenta el valor de peso del componente V, y por tanto se
discriminan los colores. En el ambiente de iluminación atenuada, el
valor de peso del componente V para discriminar el color blanco y
negro en el modo de HSV de los colores que excluyen negro o blanco
se reduce, y el valor de peso del componente S se reduce también, y
por tanto se discriminan los colores. Cuando se reconfigura la
variable ambiental, se determina la distribución de los valores para
R, G, B, H, S, y o V, que se obtuvieron a partir de cada celda en
la imagen de código mediante el dispositivo óptico, y se podrían
reconfigurar la variable ambiental y un valor de peso de la misma
con referencia a la distribución.
A continuación se describen ejemplos de imágenes
de código a tratar por el aparato para reconocer un código mostrado
en la Figura 1A y datos de código correspondientes a la imagen de
código. Las Figuras 2A hasta 2D ilustran diversos ejemplos de
imágenes de código, que pueden reconocerse mediante el aparato para
reconocer un código de acuerdo con el presente invento. En los
dibujos, se podrían realizar diversas formas para celdas, por
ejemplo, cuadrangular, circular, elíptica, cruciforme, o de panal, y
podría ser posible una combinación de formas cuando se forma una
imagen de código. La forma y dimensión de una imagen de código o
celda se podrían seleccionar adecuadamente de acuerdo con el
contenido o la cantidad de datos a representar en la imagen de
código. Se podrían realizar diversas formas de la imagen de código
constituidas por una pluralidad de celdas, tales como cuadrangular,
circular, elíptica, cruciforme. o de panal. y se incluye también una
imagen de código que tenga una forma similar a un código de barras
de la Figura 2D.
La Figura 2E ilustra las regiones de una imagen
de código basándose en grupos de datos representados en la imagen
de código. La imagen de código incluye una región 291 de datos, que
está formada de al menos una celda de datos en la que los colores,
la sombra, los patrones, o una combinación de los mismos se han
codificado de forma diferente de acuerdo con el contenido de los
datos. La región 291 de datos podría formarse de una o más celdas
de datos en la que los caracteres se codifiquen como imágenes, y
cada una de las celdas de datos podría representar un carácter, o
un conjunto de una pluralidad de celdas de datos podría representar
uno o más caracteres. Por ejemplo, el carácter A se podría
representar como una celda roja, o bien se podría representar como
dos celdas tal como una celda roja y una celda verde. Los datos de
código contenidos en la región 291 de datos comprenden caracteres,
números y símbolos, y podrían comprender nombres, direcciones,
números de teléfono, números de fax, direcciones de unidad central
de redes, nombres de dominio y direcciones de protocolos de
Internet (en adelante IP) utilizadas en Internet, localizadores
uniformes de recursos (en adelante URL), protocolos, o nombres de
documentos, dependiendo de las demandas del usuario.
Se podrían incluir además en la imagen de código
al menos una de una región de paridad 293, una región de referencia
295, y una región de control 297. La región de paridad 293 comprende
celdas de paridad para comprobar errores de reconocimiento de las
celdas representadas en la región de datos 291. La región de
referencia 295 comprende al menos una celda de referencia, que
provee colores de referencia, sombra de referencia, formas de
referencia, patrones de referencia, o una combinación de los mismos
para determinar colores, sombra, formas, patrones o una combinación
de los mismos de la celda de datos formada en la región de datos
291. La región de control 297 comprende al menos una celda de
control, en la que se codifican datos de control para órdenes de
ejecución o servicios a proveerse usando datos representados en la
región de datos 291. De ahora en adelante en la presente memoria, a
todas las regiones excluyendo la región de datos 291, es decir, la
región de paridad 293, la región de referencia 295, y la región de
control 297, se hará referencia como "regiones auxiliares", y
las celdas incluidas en las regiones auxiliares se marcan como
celdas auxiliares.
La región de paridad 293 se usa para determinar
si se han expresado colores o sombras (o, posiblemente, formas y/o
patrones) que sean adecuados para celdas de datos de acuerdo con el
contenido de datos de código. En la región de paridad 293, se
obtienen datos de paridad de acuerdo con valores de código diseñados
que correspondan al color o a la sombra representados en cada una
de las celdas de datos, y las celdas de paridad están formadas de
colores o sombra correspondientes a los datos de paridad.
La región de referencia 295 se usa para
configurar colores de referencia (o sombras de referencia, formas
de referencia, o patrones de referencia según lo demande la ocasión)
para reconocer colores (o sombras, formas o patrones) representados
en las celdas de la región de datos 291 y/o en las regiones
auxiliares. Los colores de las celdas de cada región se podrían
representar en un modo de color tal como un modo de color
rojo-verde-azul (RGB), un modo de
color matiz-saturación-valor (HSV),
un modo de color azul verde - magenta-
amarillo-negro (CMYK), un modo de color
matiz-saturación-intensidad (HSI),
un modo de color CIE, un modo de color YIQ o YUV. Aún en el caso de
en que un código esté formado por sombras en blanco y negro (escala
de grises), los datos de cada celda se pueden reconocer con
precisión basándose en las sombras en blanco y/o negro representadas
en la región de referencia 295.
Además, se podría implementar adicionalmente una
región límite para discriminar regiones entre las regiones
incluidas en las imágenes de código. Adicionalmente, se podría
incluir además una región límite para discriminar celdas entre
celdas de cada región. La región límite podría estar comprendida por
una línea o una celda formada de un color o patrón específicos, y
una línea límite o una celda límite podría formarse como negra o
blanca.
\newpage
El color se puede imprimir de forma diferente
dependiendo de la clase de impresora o del material usado como
papel de imprimir, y el mismo color se podría reconocer de un modo
algo diferente de acuerdo con las características de un escáner o
una cámara. Considerando lo anterior, la celda de referencia
incluida en la región de referencia 295 proporciona una referencia
para discriminar colores representados en la región de datos 291. Es
decir, aún si el color es de una salida diferente dependiendo del
dispositivo de salida utilizado, o si el color tiene una entrada
diferente de acuerdo con el dispositivo de entrada utilizado tal
como un escáner, una diferencia de color entre el color de la
región de referencia 295 y el color de la región de datos es
constante, y por tanto se pueden reconocer con precisión los
colores de las celdas contenidas en la región de datos 291. De este
modo, los colores de las celdas de la región de datos 291 tienen una
diferencia de color relativa en comparación con los colores de
referencia de la región de referencia 295, y por tanto los colores
de las celdas de la región de datos 291 se obtienen comparándolos
con los colores de referencia de la región de referencia 295
basándose en el modo RGB o en el modo HSV, y en consecuencia los
datos de las celdas de datos se pueden reconocer con precisión
aunque se cambie un dispositivo de entrada de imagen o un
dispositivo de salida de imagen. En un caso en el que se
introduzcan como entrada formas o patrones en un dispositivo de
entrada tal como una cámara, las formas o los patrones se podrían
inclinar o deformar. Las formas de referencia o los patrones de
referencia se proveen en la región de referencia 295, y por tanto se
puede detectar un estado de entrada errónea, y las formas o
patrones de las celdas de datos se pueden reconocer con
precisión.
Se pueden proveer diversos servicios a un
usuario utilizando datos de código de la región de datos 291
dependiendo del tipo de aplicación. Por ejemplo, en un caso en el
que se exprese una dirección de página web (es decir, un URL) en
Internet en una tarjeta de nombre como imágenes de código, las
imágenes de código son descodificadas por un ordenador, y se
ejecutan el navegador de web del ordenador o un servidor conectado
al ordenador y de ese modo se pueden programar para establecer
contacto con la página web. Además, en un caso en el que una
dirección de correo electrónico se exprese como una imagen de
código, la imagen de código se descodifica mediante un ordenador, y
se ejecuta el software de envío por correo del ordenador,
proporcionando de ese modo un ambiente en el que se pueden enviar
correos electrónicos a la dirección de correo electrónico. Como otro
ejemplo, en un caso en el que la imagen de código se introduce como
entrada a un terminal portátil, un usuario puede llamar a un número
de teléfono correspondiente a la imagen de código o recibir
servicios de datos relacionados con geografía. En ese caso, se
puede implementar automáticamente la función de servicio automático
mediante un programa separado o de acuerdo con la clase de datos de
objetivo en un programa de descodificación. Adicionalmente, la
región de control 297, en la que una orden de ejecución para
ejecutar la función de servicio automático se expresa como una
imagen, se incluye en la imagen de código y de ese modo implementa
automáticamente los servicios del programa de descodificación
mediante el uso de los datos de control descodificados de la región
de control 297.
Adicionalmente, se pueden incluir en la región
de control 297 órdenes de ejecución o metadatos para controlar
datos objetivos de la región de datos 291. Por ejemplo, los datos
codificados en la región de control 297 podrían incluir diversos
metadatos tal como el orden de descodificación de las celdas
formadas en la región de datos 291, la posición de la celda de
referencia de la región de referencia 295, y y la posición o
propiedad de la región de paridad 293.
La Figura 3A ilustra un ejemplo en el que dos
bits de datos se han expresado como cuatro colores. Si cada celda
tiene uno de cuatro colores, se pueden expresar dos bits de datos.
Entonces, en un caso en el que se define que un carácter se exprese
como cuatro celdas consecutivas, se pueden expresar 8 bits, es
decir, 256 clases de caracteres. Entretanto, en un caso en el que
hay cuatro clases de formas para una celda con el mismo color (es
decir, pequeño cuadrilátero, gran cuadrilátero, pequeño círculo y
gran círculo), se pueden expresar dos bits de datos, y se pueden
expresar 256 clases (8 bits) de datos en un caso en el que cada
celda podría rellenarse con cuatro colores diferentes.
La Figura 3B ilustra un ejemplo de una tabla de
conversión de códigos para convertir diversos caracteres (caracteres
alfabéticos o especiales), números, o formas en imágenes, y en el
ejemplo, un carácter se ha representado gráficamente como una o dos
celdas de color.
A la vista de un método de codificación que usa
la tabla de conversión de códigos de la Figura 3B, se convierten
diversos caracteres en valores de código, y luego se generan
imágenes de código como colores asignados a cada uno de los valores
de código. En la presente realización, las imágenes de código se
generan usando ocho colores, y se usan dos celdas consecutivas con
el fin de expresar un carácter o número. Los valores de código desde
"000" hasta "111" se asignan a los ocho colores, y cada
carácter se codifica como dos colores. Por ejemplo, el número
"3" es asignado al valor de código "000 111", se codifica
como un color (negro) asignado al valor de código "000" y un
color (azul-verde) asignado al valor de código
"011", y por tanto se forma una imagen como dos celdas
consecutivas de una celda negra y una celda
azul-verde. Varios caracteres o números incluidos
en los datos de código se convierten en valores de código de acuerdo
con la tabla de conversión de códigos mostrada en la Figura 3B, y
entonces los colores correspondientes a los valores de código se
pueden expresar como una forma de matriz cuadrangular comprendida
de una combinación de celdas cuadrangulares.
La Figura 3C ilustra una realización en la que
se generan imágenes de código usando un código de escala de grises.
El código de escala de grises se forma de acuerdo con el brillo de
un tono de escala de grises en lugar de la relación de mezcla de
rojo (R), verde (G), y azul (B). De ese modo, en la región de
referencia 295, una sombra de referencia se configura a negro,
blanco o gris, y las celdas situadas en la región de datos 291
tienen valores que se codifican mediante una diferencia de gris
comparada con la sombra de referencia de la región de referencia
295. En un caso en el que no exista región de referencia 295 en la
imagen de código, se calcula la sombra de cada celda de la imagen
de código, y se recogen las celdas (conjunto de celdas) que tengan
sombras similares. Se asigna el mismo valor de código a las celdas
que pertenecen al mismo conjunto de celdas, y luego se pueden
determinar los errores en descodificación usando la región de
paridad 293. En un caso en el que ocurran errores de determinación,
de nuevo se determina si los errores se producen después que se ha
recalculado la sombra de cada celda o se configura de forma
diferente una referencia para formar un conjunto de celdas. Se
podría aplicar la imagen de código de escala de grises a los medios
de comunicación que se imprimen principalmente en blanco y negro,
como los periódicos.
La Figura 4 ilustra un ejemplo en el que una
imagen de código se ha adoptado esencialmente a una tarjeta de
nombre, usando el sistema de código antes mencionado. En el caso de
usar el aparato para reconocer un código mostrado en la Figura 1,
un usuario puede generar un archivo de imagen en el que estén
incluidas las partes de la imagen de código cuadrangular
representada en la esquina inferior derecha de la tarjeta de nombre,
usando una cámara o un escáner, y el usuario puede tratar la imagen
y reconocer datos de código, que se van a representar mediante la
imagen de código. La Figura 5 es un diagrama de bloques del aparato
de acuerdo con una segunda realización del presente invento, y la
Figura 6 es un diagrama de flujo que ilustra el funcionamiento del
aparato mostrado en la
Figura 5.
Figura 5.
Una parte 51 de adquisición de imagen adquiere
una imagen no elaborada en la que está contenida una imagen de
código. Se recibe un archivo de imagen adquirido por un dispositivo
de entrada de imagen, tal como una cámara o un escáner, o un
archivo de imagen que exista en el formato de un archivo
electrónico, y el formato de datos del archivo de imagen se
convierte si es necesario. Por ejemplo, un archivo de imágenes de
vídeo comprimido se descomprime y se convierte en un archivo de
imágenes que tenga una forma de mapa de bits. De este modo, el
archivo de imágenes se guarda en una memoria 52 como una imagen no
elaborada. En la imagen no elaborada se incluye también una imagen
de ruido ambiental con una imagen de código, que el usuario desea
detectar.
Una parte 58 de control recibe el tipo de la
imagen de código, configura una variable ambiental teniendo en
cuenta un ambiente en el momento en que se adquirieron las imágenes
no elaboradas, o bien lee una variable ambiental ya guardada y
transmite la variable ambiental a un filtro 53 de colores. La
memoria 52 guarda provisionalmente los datos de imagen requeridos
para el tratamiento de imágenes.
El filtro 53 de colores corrige los colores o
las sombras reconocidos de la imagen no elaborada por la variable
ambiental, convierte los colores o las sombras corregidos en colores
estándar o sombras estándar, que se usan para generar la imagen de
código, y de ese modo genera una imagen estándar representada por
los colores estándar o la sombra estándar. En este caso, las
denominaciones de colores estándar o sombras estándar significan
colores o sombras que se configuran para corresponder a caracteres,
números o símbolos cuando se genere la imagen de código (véanse
Figuras 3A hasta 3C). La imagen de código presentada visualmente en
medios físicos podría no estar representada como colores
configurados originalmente o podría no reconocer los colores
originales debido a las características de un dispositivo de imagen
o al efecto de una variable ambiental cuando la imagen de código se
imprime mediante un dispositivo de salida de imagen o cuando la
imagen de código se trata mediante el dispositivo de entrada de
imagen. Por ejemplo, aunque el valor de RGB del color magenta es
(255, 0, 255), el valor de RGB reconocido desde la celda a
representarse como color magenta no es exactamente (255, 0, 255),
sino que será un valor próximo a (255, 0, 255). Por tanto, se pueden
extraer datos de código mediante la aplicación de la tabla de
conversión de código solamente si los colores o las sombras
realmente reconocidos se convierten en colores estándar o sombras
estándar. Un filtro 54 codificado en sistema binario divide los
colores o las sombras de la imagen no elaborada en dos colores de
acuerdo con un valor de referencia predeterminado (variable
ambiental en blanco y negro) y genera una imagen codificada en
sistema binario. La imagen codificada en sistema binario se podría
implementar como blanco y negro o en dos colores específicos. En
estas condiciones, se podría configurar un valor de referencia al
valor promediado de los valores para R, G y B, o a un valor mínimo
o a un valor máximo entre ellos, un valor para V del modo de color
HSV, un valor para I del modo de color HSI, o un valor para K del
modo de color CMYK.
Una parte de pre-tratamiento 55
recibe la imagen no elaborada y la imagen codificada en sistema
binario, configura un color de una parte que excluya la parte de
imagen de código en la imagen codificada en sistema binario como un
color de fondo específico, configura un color de una parte de la
imagen estándar, que corresponde a la parte configurada como el
color de fondo en la imagen codificada en sistema binario, como el
color de fondo, discriminando de ese modo una parte de imagen de
código de otras partes. Por ejemplo, un color de píxeles situado en
un borde de la imagen codificada en sistema binario se configura
como el color de fondo, y luego un color de píxeles conectado a los
píxeles configurados como el color de fondo se configura también
como el color de fondo, discriminando de ese modo la parte de
imagen de código de las otras partes. En este caso, el color de
fondo se configura a uno de los colores, que no se use para generar
la imagen de código. Una parte 56 de extracción de punto
característico extrae una pluralidad de celdas incluida en la parte
de imagen de código y luego reconoce los colores estándar o la
sombra estándar representados en cada celda.
Un descodificador 57 extrae un correspondiente
carácter, número, o símbolo del color o de la sombra reconocidos en
cada celda de las imágenes de código de acuerdo con una relación
entre caracteres, números o símbolos y el color o la sombra
correspondientes, y genera datos de código. Preferiblemente, un
color o una sombra, que en su mayor parte están distribuidos entre
los colores o sombras de los píxeles pertenecientes a cada celda,
es reconocido como un color de la celda correspondiente.
\newpage
A continuación se describe el funcionamiento del
aparato para reconocer un código mostrado en la Figura 5 con
referencia al diagrama de flujo de la Figura 6. En la etapa 61, se
adquiere la imagen no elaborada, en la que está incluida la imagen
de código. En la etapa 62, se configura la variable ambiental
teniendo en cuenta un ambiente existente en un tiempo en el que se
adquirió la imagen no elaborada, y los colores o la sombra
reconocidos a partir de la imagen no elaborada se corrigen por la
variable ambiental. En la etapa 63, los colores o sombras
corregidos se convierten a una pluralidad de colores estándar o
sombras estándar que se usan para generar la imagen de código, y
así se genera la imagen estándar representada por los colores
estándar o las sombras estándar.
En la etapa 64, se genera la imagen codificada
en sistema binario dividiendo los colores o las sombras de la
imagen no elaborada en dos colores de acuerdo con un valor de
referencia predeterminado. En la etapa 65, un color de la parte que
excluye la parte de imagen de código se configura como el color de
fondo específico sobre la base de la imagen codificada en sistema
binario. En la etapa 66, la parte de la imagen estándar que
corresponde a la parte configurada como el color de fondo en la
imagen codificada en sistema binario se trata como el color de
fondo, y de ese modo la parte de imagen de código se puede
discriminar de las otras partes.
En la etapa 67, se extrae la pluralidad de
celdas incluidas en la parte de imagen de código, y luego se
reconoce el color estándar o la sombra estándar representados en
cada celda. En la etapa 68, se extrae un correspondiente carácter,
número o símbolo del color o de la sombra reconocidos en cada celda
de la imagen de código de acuerdo con la relación entre el
carácter, número o símbolo y el color o sombra correspondientes,
generando de ese modo datos de código.
La función y operación del aparato para
reconocer un código mostrado en la Figura 5 se describirá más
adelante con mayor detalle.
El filtro 54 codificado en sistema binario
convierte la imagen no elaborada en una imagen en blanco y negro de
acuerdo con la variable ambiental en blanco y negro. La imagen en
blanco y negro se usa para facilitar la discriminación de un objeto
incluido en la imagen no elaborada y para mejorar la velocidad de
trabajo. El valor de brillo de cada píxel de la imagen no elaborada
se compara con el valor de variable ambiental y se descarga como
salida como un píxel que es negro o blanco, y de ese modo se genera
la imagen en blanco y negro. La variable ambiental en blanco y
negro significa un parámetro o un conjunto de parámetros para
convertir los colores representados en la imagen no elaborada en
blanco y negro, tal como el valor promedio en el que la suma de los
valores para rojo, verde y azul se dividen en 3, o bien el valor
(brillo) del modo de color HSV. En un caso en el que el brillo
total de la imagen no elaborada es relativamente oscuro (éste podría
ser el caso cuando el entorno ambiental está ligeramente oscuro
cuando se escanea la imagen no elaborada, o bien el brillo es bajo
debido a las características del dispositivo de imágenes), el valor
de la variable en blanco y negro se configura como bajo. En un caso
en el que el brillo total de la imagen no elaborada sea
relativamente alto, el valor de la variable en blanco y negro se
configura como alto.
Por ejemplo, en un caso en el que el valor de
RGB en un píxel de la imagen no elaborada es (100, 100, 100), el
brillo medio del píxel es 100. En tal caso, suponiendo que el valor
de la variable ambiental es 80, un píxel que tenga un valor con más
brillo que el valor de la variable ambiental se reconoce se reconoce
como blanco. De lo contrario, el píxel se reconoce como negro.
Cuando una imagen en color se codifica en
sistema binario en una imagen en blanco y negro, se podrían generar
píxeles negros o blancos mediante la aplicación de un valor de
referencia a todos los píxeles o bien se podría generar dividiendo
la totalidad de la imagen en varias partes, configurando un valor de
referencia con respecto a cada una de las partes, y aplicando el
valor de referencia a los píxeles pertenecientes a cada una de las
partes. Es decir, a la vista de un método local de valor umbral, las
imágenes se dividen en bloques que tengan unos tamaños
predeterminados, se promedia el valor de brillo de los píxeles a
cada uno de los bloques, y el valor promediado se configura como la
variable ambiental en blanco y negro. El valor de brillo de cada
píxel se compara con el valor de la variable en blanco y negro, y
de ese modo los píxeles pertenecientes a los bloques se pueden
codificar en sistema binario como negro o blanco. El método es de
una efectividad máxima en un caso en el que la totalidad de la
imagen es localmente oscura o brillante.
Se podría adoptar un método de valor umbral
múltiple cuando una imagen en color se convierte en una imagen en
blanco y negro. Se obtiene un histograma del valor de brillo de los
píxeles pertenecientes a la imagen. De ese modo se puede obtener la
frecuencia de brillo. El histograma se puede dividir en valores de
brillo que tengan una frecuencia alta y en valores de brillo que
tengan una frecuencia baja. De este modo, los valores de brillo que
tengan una frecuencia más baja, que están situados entre los valores
de brillo que tienen una frecuencia más alta, se configuran como
una pluralidad de variables ambientales en blanco y negro, y luego
se aplica por orden la pluralidad de variables ambientales en blanco
y negro a la imagen en color. Como resultado, en un caso en el que
una imagen tenga una variación mayor en brillo, se selecciona la
variable más apropiada entre la pluralidad de variables ambientales
en blanco y negro, con lo que se puede generar una imagen apropiada
en blanco y negro.
La Figura 7 ilustra el resultado en el que una
imagen en blanco y negro se obtiene de la imagen no elaborada. La
Figura 7A ilustra las imágenes no elaboradas. La imagen no elaborada
es realmente una imagen en color, pero representada como una imagen
en escala de grises debido a la limitación en la expresión de los
dibujos. La Figura 7B ilustra el ejemplo en el que los valores para
R, G y B se promedian, y el valor medio se compara con el valor de
referencia de 128, para obtener la imagen en blanco y negro. Para la
Figura 7C, el valor de referencia se configura en 90. La Figura 7D
ilustra un ejemplo que adopta el método local de valor umbral. La
Figura 7E ilustra el ejemplo en el que el valor mínimo entre los
valores para R, G, y B de píxeles se compara con el del valor de
referencia de 128 para obtener una imagen en blanco y negro, y para
la Figura 7F, el valor de referencia se configura a 90.
La parte de pre-tratamiento 56
recibe la imagen en color y la imagen en blanco y negro, compara la
imagen en color con la imagen en blanco y negro, y de ese modo
elimina una imagen de ruido innecesaria de la imagen en color y de
la imagen en blanco y negro. La etapa de eliminar la imagen de ruido
basándose en la imagen en blanco y negro se realiza mediante las
etapas de eliminar una imagen de fondo y una imagen de pequeño ruido
y se describen más adelante con detalle refiriéndose a las Figuras
8A hasta 8F.
En general, alrededor de las imágenes de código
existe un color blanco o un espacio en blanco redundante con
elevada luminosidad, y la región de las imágenes de código está
separada de las regiones adyacentes. En la etapa de reconocer la
imagen de fondo, se comprueba el estado de conexión de la imagen de
ruido, y luego se puede quitar la imagen de fondo. Las Figuras 8A
hasta 8F ilustran la etapa de quitar la imagen de fondo. En primer
lugar, la posición de la imagen de ruido en los bordes de la imagen
en blanco y negro (véase Figura 8A), es decir, píxeles que tienen
un color negro entre píxeles situados en los bordes de la imagen en
blanco y negro, se configura en su color como una sombra o un color
específicos, que es un color o una sombra que no esté representado
en celdas de la imagen de código y al que se hace referencia como un
"color de fondo" (véase Figura 8B). Se comprueba toda la
región, y a los píxeles conectados a la imagen de ruido se les
configura también su color como el color de fondo. Dicho de otro
modo, los píxeles negros conectados a los píxeles representados por
el color de fondo se detectan por orden, y un color de los píxeles
se configura como el color de fondo (véanse Figuras 8E hasta 8E).
Si ya no hay más píxeles negros conectados a los píxeles que tienen
el color de fondo, la parte configurada como los colores de fondo
se determina como la región de la imagen de ruido, y la parte
constituida por los píxeles negros entre la parte que excluye la
región de la imagen de ruido se determina como la región de la
imagen de código. En ese caso, con el fin de verificar el estado de
conexión de la imagen de ruido, es eficaz que los píxeles
pertenecientes a la imagen de ruido se exploren simultáneamente en
todas direcciones tal como de izquierda a derecha o de derecha a
izquierda, de arriba abajo, o de abajo arriba. En la etapa de
quitar la imagen de pequeño ruido, se comprueba el estado de
conexión de cada uno de los píxeles de la imagen de la que se ha
quitado la imagen de ruido de fondo, la longitud o el área a la que
están conectados los píxeles es menor que un valor de referencia, y
entonces esta imagen se determina como la imagen de pequeño ruido,
quitando de ese modo la imagen de pequeño ruido. Por ejemplo, en un
caso en el que el número de píxeles que son negros en una parte que
tiene un área predeterminada es menor que el valor de referencia,
esta imagen que corresponde a la parte se podría determinar como la
imagen de ruido. De esta manera, la parte de imagen de código se
forma cuando la parte determinada como la imagen de ruido y una
parte de píxel blanco están excluidas de la imagen en blanco y
negro.
El resultado de la imagen de ruido quitada de la
imagen en blanco y negro se aplica a la imagen en color, y de ese
modo la región de la imagen de código se extrae de la imagen de
color. Por ejemplo, un píxel que exista en una posición
(coordenada) que se determina como la imagen de ruido en la imagen
en blanco y negro, está determinado también como la imagen de ruido
incluso en la imagen en color.
La parte 56 de extracción de punto
característico recibe la imagen en color y/o la imagen en blanco y
negro de la que se ha quitado la imagen de ruido, explora el punto
característico que comprende la imagen (imagen de código) de un
objeto específico y su región, explora los datos relacionados con el
tipo y posición de la imagen de código del punto característico del
objeto, y determina errores. La parte 56 de extracción de punto
característico se implementa mediante la realización de las etapas
de dividir una imagen estándar en bloques, explorar la región de la
imagen de código, extraer el punto característico de la región
explorada de la imagen de código, y determinar el tipo de un
código. La Figura 9 es un diagrama de flujo que ilustra la etapa de
reconocer los colores estándar representados en cada celda de la
imagen de código.
En un caso en el que la imagen estándar en la
que se ha representado el color de fondo (o de la que se ha quitado
la imagen de ruido) se introduce como entrada en la etapa 91, la
imagen estándar se divide en bloques para que la región de la
imagen de código pueda explorarse en la etapa 92. La Figura 10A
ilustra cómo la totalidad de la imagen se divide en bloques que
tienen unos tamaños predeterminados. Una parte representada como un
cuadrilátero sombreado designa una región con la imagen de código.
En un caso en el que se comprueban los tamaños de imagen
significativa perteneciente a bloques correspondientes después que
la imagen se ha dividido en bloques, se podría estimar la posición
de la imagen de código. En este caso, el término "imagen
significativa" significa la parte de imagen de código excluyendo
la parte de imagen de ruido de la que se ha configurado el color
mediante el color de fondo. De ese modo, se busca el punto central
del bloque donde la región de la imagen de código perteneciente a
cada bloque es la más grande, y se busca la región de la imagen de
código basándose en el punto central. En otras palabras, en la
etapa 93, se detecta el número de píxeles pertenecientes a la
región de la imagen de código que no es la región de fondo para cada
bloque. En la etapa 94, se detecta el bloque con el mayor número de
píxeles pertenecientes a la región de la imagen de código, y se
detecta el punto central del bloque (o el punto central de la
región de la imagen de código perteneciente al bloque).
La región de la totalidad de la imagen se divide
en una pluralidad de bloques, y luego se explora la región de la
imagen de código, y de ese modo se pueden reducir las operaciones
aritméticas requeridas para tratamiento. En un caso en el que la
forma de la imagen de código es cuadrangular y la posición de la
imagen de código se conoce con poca aproximación, se pueden reducir
las operaciones aritméticas. En un caso en el que el número de
píxeles que pertenecen a la región de la imagen de código en cada
bloque se calcule en la Figura 10A, el número de píxeles
perteneciente a la imagen de código es máximo en el bloque 6, y
disminuye por orden desde los bloques 2, 3 y 5. Así, en un caso en
el que se realice una operación aritmética de imagen solamente en
la región de los bloques 2, 3, 5 y 6, no en los bloques 1, 4, 7, 8 ó
9, donde no hay píxeles o hay pocos píxeles pertenecientes a la
región de la imagen de código, se puede reducir mucho el número de
operaciones aritméticas a realizar. Como se muestra en la Figura
10B, en un caso en el que la imagen de código comprende una
pluralidad de imágenes separadas entre sí en el espacio, hay una
pluralidad de regiones de la imagen de código. Preferiblemente, en
tal caso, se explora en primer lugar la región de imagen que tenga
el máximo tamaño entre la pluralidad de imágenes de código, que se
supone que es la región de la imagen de código, y luego se
comprueban por orden de tamaño las otras regiones de imagen.
Subsiguientemente, se realiza la etapa de buscar la región de un
código, en la que se forma la imagen de código, basándose en el
punto central buscado en la etapa de dividir en bloques la imagen
estándar. En la etapa 95, se busca la totalidad de la imagen
estándar desde el punto central, y se detecta una región candidata
a ser la región de la imagen de código. En la etapa 96, se detecta
el punto característico de la región candidata, y de ese modo se
determinan la forma y el tipo de la imagen de código. En esta
etapa, se busca la región de una figura formada por puntos de
circunscripción de la región candidata, que podría resultar en una
región cuadrangular o en una región circular, y la imagen
comprendida de la región detectada se convierte en una imagen de
código. Y luego, las regiones de celda en la imagen de código se
discriminan unas de otras en la etapa 97, y se reconocen los
colores estándar representados en una celda correspondiente
basándose en los colores de píxeles pertenecientes a cada región de
celda en la etapa 96.
Las Figuras 11A hasta 11C ilustran la etapa de
detectar la región candidata, y las regiones 104 marcadas por una
línea inclinada designan una región de imagen de código, que se
obtendrá realmente, y se detectan las regiones candidatas 103
incluyendo las regiones 104. La etapa es para simplificar un proceso
mediante la selección de una región de imagen parcial necesaria de
entre todas las imágenes y para realizar un procedimiento aritmético
futuro con respecto a la imagen parcial. Se obtiene un punto de
extremo (es decir, un punto que tenga valores mínimo y máximo en
las coordenadas x e y) de una región de imagen estimado como la
imagen de código, y se determina una figura que comprende el punto
de extremo como las regiones candidatas 103. Por ejemplo, se
obtienen las coordenadas que tienen valores mínimo y máximo en un
eje x y valores mínimo y máximo en un eje y entre píxeles
pertenecientes a una imagen excluyendo una región de fondo de las
regiones 102 de los bloques 2, 3, 5, y 6 de la Figura 10A, y se
determina como una región candidata una figura (cuadrangular)
formada por las coordenadas.
Un método para buscar una región candidata
incluye un método de búsqueda por reducción y un método de búsqueda
por extensión. Considerando el método de búsqueda por extensión, se
busca una región que corresponde a la imagen de código mientras se
extiende hasta una parte exterior del punto central. Es decir se
busca la región de imagen de código extendiéndose hasta una parte
determinada como la región de imagen de código que no es la región
de fondo. Considerando el método de búsqueda por reducción, se busca
la región de imagen de código mediante su reducción hasta el punto
central. desde el exterior. En un caso en el que la imagen de código
está formada por un cuadrilátero, la región candidata se expresa
como una coordenada superior izquierda y una coordenada superior
derecha. En un caso en el que la imagen de código está formada por
un círculo, la región candidata se expresa como la coordenada del
punto central y la longitud del radio.
Un método para determinar un punto
característico incluye un método de búsqueda por diagonal o un
método de detección de límite. Considerando el método de búsqueda
por diagonal (véase Figura 12A) el punto característico se busca
usando un segmento que tiene una pendiente temporal en la región
candidata. Por ejemplo, en un caso en el que la imagen de código
esté formada por cuadriláteros, con el fin de buscar los vértices de
la imagen de código cuadrangular en la región candidata, se traza
una diagonal que forme un ángulo de 45º en los vértices de la
región candidata, y de ese modo se busca una región cuadrangular
formada de puntos que establecen contacto externamente con la
diagonal. Como se muestra en la Figura 12A, un punto en el que un
píxel perteneciente a la región de imagen de código que no es la
región de fondo mediante el uso de la diagonal que forma un ángulo
de 45º empezando en cada vértice de la región candidata, establece
contacto con la diagonal, se determina como el punto
característico. La diagonal con
respecto a cada vértice de la región candidata tiene una dirección predeterminada tal como a izquierdas o a derechas.
respecto a cada vértice de la región candidata tiene una dirección predeterminada tal como a izquierdas o a derechas.
Las Figuras 12B y 12C ilustran con mayor detalle
el método de búsqueda por diagonal. En la Figura 12B, en un caso en
el que el punto característico se detecta desde la diagonal en una
dirección l, si una pluralidad de píxeles contactan con la
diagonal como se muestra en la figura, un píxel (píxel a del
dibujo) detectado el último se determina como el punto
característico. A continuación, se realiza la etapa en las
direcciones 2, 3 y 4, y de ese modo se detectan
puntos característicos deseados de la región de imagen de código.
Entretanto, en un caso en el que los puntos característicos se
detecten por el método de detección por diagonal, podrían no
detectarse todos los puntos característicos deseados. Por ejemplo,
en el caso de una imagen de código cuadrangular, deberían extraerse
cuatro puntos característicos, pero sólo se pueden extraer tres
puntos característicos. En la Figura 12C, en un caso en el que el
número de los puntos característicos no es suficiente, se realiza
adicionalmente la etapa de buscar en direcciones horizontal y
vertical. En otras palabras, los píxeles de la región de imagen de
código más próximos a la superficie límite de la región candidata se
detectan en las direcciones 5, 6, 7 y
8. Los puntos característicos determinados a través del
método de búsqueda por diagonal podrían ser diferentes de los
puntos característicos determinados por la búsqueda en las
direcciones horizontal y vertical. En ese caso, o bien el valor
medio de dos coordenadas o una de las dos coordenadas se selecciona
para determinar el punto característico.
Considerando el método de detección de límite
(véase Figura 13), se sigue el límite externo de la región de
imagen de código incluida en la región candidata, y de ese modo se
buscan los puntos característicos, tales como los vértices de la
imagen de código. En primer lugar, las coordenadas que componen un
límite se eligen como coordenadas candidatas. A continuación, en un
caso en el que se compruebe la pendiente de coordenadas candidatas
adyacentes y no exista variación en la pendiente entre las
coordenadas, se usa un método para quitar las coordenadas de las
coordenadas candidatas (método basado en pendiente). Por ejemplo, en
un caso en el que las coordenadas candidatas adyacentes son
(x_{i-1}, y_{i-1}), (x_{i},
y_{i}), y (x_{i+1}, y_{i+1}). si a_{1} = (y_{i} -
y_{i+1})/(x_{i} - x_{i+1}) y a_{2} = (y_{i+1}
-y_{i})/(xi_{+1} - x_{i} y a_{1} es igual a a_{2}, o una
diferencia entre a_{1} y a_{2} es menor que un valor
predeterminado, la coordenada (x_{i}, y_{i}) no se determina
como el punto característico.
Adicionalmente, se podría adoptar un método
basado en distancia además del método basado en pendiente. En un
caso en el que una distancia entre las coordenadas candidatas
adyacentes de punto característico es menor que una distancia
predeterminada, las coordenadas se quitan de las coordenadas
candidatas de punto característico. Es decir, en un caso en el que
una distancia
entre las dos coordenadas
candidatas adyacentes (x_{i+1}, y_{i+1}) y (x_{i}, y_{i}) es
menor que el valor predeterminado, la coordenada (x_{i}, y_{i})
se quita de las coordenadas
candidatas.
Se comprueban el cierre del límite y el ángulo y
longitud del mismo usando los puntos característicos, y de ese modo
se pueden buscar la forma y el tipo de la imagen de código. A título
de ejemplo, en un caso en el que una imagen de código se podría
formar de 5 x 5 ú 8 x 8 celdas, se podrían discriminar los tipos de
la imagen de código de acuerdo con la relación entre la anchura y
la longitud. Es decir, en un caso en el que la relación entre la
anchura y la longitud es similar, la imagen de código se podría
determinar como un cuadrado, y podría reconocerse como una imagen
de código con matriz de 5 x 5. Por otra parte, en un caso en el que
una diferencia entre la anchura y la longitud es mayor que un valor
predeterminado, la imagen de código se podría determinar como una
imagen de código bidimensional de 8 x 5. Adicionalmente, el punto
central de las celdas que componen la imagen de código se podría
averiguar usando una relación de longitud y la pendiente. Además,
se determina si la imagen de código se ha extraído adecuadamente
considerando el tamaño o área, y la relación de longitud de la
imagen de código.
Las Figuras 14A hasta 14C ilustran la etapa de
dividir celdas pertenecientes a la región de imagen de código y de
hallar el punto central de las celdas. Refiriéndose a la Figura 14A,
la imagen de código en el presente invento se determina como una
imagen cuadrangular de 4 x 4. La anchura y la longitud de la imagen
de código se dividen por 4, respectivamente, y se obtienen las
coordenadas del punto central de las celdas divididas como se ha
mostrado en la Figura 14B.
La Figura 14C ilustra un algoritmo para buscar
los puntos centrales de las celdas. En un caso en el que la
longitud de un lado de la imagen de código es L, y la longitud sobre
un eje X es W, y la longitud sobre un eje Y es H cuando se traza
una línea perpendicular hacia los ejes X e Y basándose en la
longitud l del lado de la imagen de código, la posición de X_{Ci}
e Y_{Ci} usada para buscar el centro de una celda
i-th que está en contacto con el lado se expresa
mediante la Ecuación 6. En este caso, C es el número de celdas
situadas en filas o columnas de un código de colores.
La coordenada del punto que contacta el lado del
código se obtiene por la Ecuación 6, y en un caso en el que la
coordenada está unida al punto del mismo orden que el de un lado
opuesto, se genera el punto de contacto en el que dos segmentos se
intersecan, que se determina como el punto central de cada celda. La
Ecuación 6 es ideal solamente para un caso en el que un ángulo de
fotografía de primer plano de la imagen de código y una cámara es
de 90º. Así, en un caso en el que el ángulo de primer plano es
pequeño (es decir, en un caso en el que la cámara está boca abajo),
se produce distorsión en la imagen de código, y por tanto se podrían
generar errores. Por ejemplo, en un caso en el que el ángulo de
primer plano es excesivamente pequeño, la imagen de código del
cuadrilátero original se introduce como entrada en la forma de un
trapezoide. Por tanto, con el fin de corregir esto, se podría
requerir una operación aritmética adicional, si bien, en la mayoría
de los casos, es suficiente con aplicar la Ecuación 6. En
particular, aunque la distorsión es importante, si la imagen tiene
un tamaño grande, se podría buscar el punto central de las celdas
usando la Ecuación anterior o una Ecuación auxiliar. Además del
método anterior, la línea límite, o la región límite entre celdas,
que se inserta cuando se genera la imagen de código, se detecta
considerando la distribución de colores de píxeles en la región de
imagen de código, y por tanto las celdas se podrían discriminar
sobre esta base.
En la etapa 68, el descodificador descodifica la
imagen de código mediante el uso de los datos buscados a partir de
la parte de extracción 58 de punto característico y reproduce los
datos de código. Las etapas de determinar el color/sombra de cada
célula y de comprobar los datos de paridad se realizan usando la
variable ambiental de color y la entrada de información de análisis
(modo de color y tipo de imagen de código) mediante el controlador
58. El valor del color o de la sombra detectados para cada celda se
sustituye por un carácter, número o símbolo correspondientes.
Luego, se puede determinar una anormalidad por medio de una
operación de paridad, y el carácter, número o símbolo
correspondientes se entrega como salida en un caso en el que no
exista anormalidad. Las etapas anteriormente expuestas se realizan
en todas las celdas, y se generan datos de código deseados mediante
la conexión del carácter, número, o símbolo obtenidos con respecto a
cada celda.
La posición de cada celda se comprueba mediante
la coordenada central de cada entrada de celda de la parte de
extracción 56 de punto característico, y sobre esta base se extrae
un número predeterminado de píxeles, y de ese modo se pueden
determinar los colores. Los colores se pueden determinar usando el
modo de RGB una vez que se ha obtenido el valor medio de los
píxeles muestreados, o bien se pueden determinar los colores para
representar una celda correspondiente después que se haya obtenido
el ángulo de los colores usando el modo de HSV. En el caso de la
determinación de colores usando el modo de RGB, el valor para cada
uno de los componentes de RGB de los píxeles muestreados en la
imagen en color es de 0 a 255 después de experimentar la etapa de
convertir colores mediante la variable ambiental de color, y de ese
modo los colores se encuentran en un estado de color estándar. De
ese modo, el color que tenga la máxima frecuencia entre los píxeles
muestreados se determina como el color de una celda
correspondiente. En un caso en el que la imagen de color que no se
ha convertido a los colores estándar, se introduzca como entrada, se
aplica la variable ambiental de color a los píxeles muestreados, y
los píxeles muestreados se convierten a los colores estándar, y los
colores que tienen la máxima frecuencia se determinan como colores
de una celda correspondiente. En el caso de la determinación de
color por el modo de HSV, los valores de RGB de los píxeles
muestreados se determinan después de haberse convertido por medio
de la conversión de HSV.
En el caso de la imagen de código representada
como un nivel de tres grises, se obtienen los valores promediados
de cada una de las celdas, y en un caso en el que los valores
promediados están alineados por orden de tamaño, las partes que
tengan la frecuencia relativamente elevada de distribución de los
valores promediados alineados se hacen converger en tres lugares, y
también hay intervalos entre los tres lugares, que tienen una
frecuencia relativamente baja. Se obtienen el punto central del
intervalo más largo y el punto central del intervalo más largo del
segundo lugar, y luego, si los valores correspondientes a los dos
puntos centrales se comparan con los valores promediados de cada
una de las celdas, se puede determinar si cada celda pertenece a qué
nivel (uno entre negro, gris y blanco). Por ejemplo, se obtienen
los valores promediados de los valores para R, G y B de los píxeles
muestreados de una celda, y de ese modo se podrían usar como el
valor del brillo. Se comprueba la distribución del valor de brillo
usando los valores de brillo obtenidos para cada celda, y se
dividen en tres grupos tales como negro, blanco y gris. Luego, una
sombra de una celda se determina como la sombra más próxima al
valor de brillo de la celda.
En el caso de la imagen de código mostrada en la
Figura 2E, la región de datos se discrimina de las regiones
auxiliares (la región de paridad, la región de referencia y/o la
región de control) en la imagen de código. En un caso en el que
exista la región de referencia, los colores, la sombra, las formas y
los patrones, que están representados en cada celda, se determinan
usando la región de referencia, y en un caso en el que exista la
región de paridad, se determinan los errores de las celdas de
datos.
La etapa de buscar formas, colores, patrones, y
caracteres, que están incluidos en la imagen de código, se requiere
en la etapa de descodificar, y además de ésta, la etapa de corregir
una imagen distorsionada. En este caso, es posible la determinación
de color usando uno o más métodos entre el modo de rojo, verde y
azul (RGB),el modo de matiz, saturación y valor (HSV), el modo de
azul-verde, magenta y amarillo (CMY), y el modo de
matiz, intensidad luminosa y saturación (HLS).
Los valores de código de cada una de las celdas
situadas en la región de datos y/o en la región auxiliar se extraen
para descodificar. En un caso en el que exista la región de
referencia, los colores (o la sombra) de referencia, las formas de
referencia y/o los patrones de referencia como una referencia para
interpretar datos en todas las regiones se realizan mediante la
detección de colores o sombra de una celda de referencia. Se
detectan los colores, formas y patrones de las celdas situadas en la
región de datos, la región de paridad de la región de control, y
luego se obtiene una diferencia entre el color detectado y los
colores de referencia, las formas de referencia y/o los patrones de
referencia, y de ese modo la diferencia se convierte en los valores
de código para cada una de las celdas. En un caso en que no haya
región de referencia, se podrían obtener los valores de código
correspondientes a cada una de las celdas de acuerdo con los colores
o sombra, formas y patrones, que sean leídos por el dispositivo de
entrada de imagen.
En un caso en el que exista región de paridad,
se realiza la etapa de comprobar errores de la paridad con respecto
a cada fila y columna de la imagen de código mediante los valores de
código (es decir, datos de paridad) obtenidos de la región de
paridad. Las variables ambientales optimizadas a la iluminación
usualmente utilizada, y los valores de peso de las mismas, se
podrían preconfigurar para guardarlos en un programa o una base de
datos de descodificación de tal manera que el usuario pueda
seleccionar la variable ambiental más adecuada para el ambiente
propio. Se puede considerar la ocurrencia de errores de paridad en
el sentido de que hay errores en la lectura de colores por las
variables ambientales actualmente configuradas, y en este caso, se
adopta otra variable ambiental para volver a leer los colores. Si
fuese necesario, se podría buscar la dirección o la posición de la
imagen de código basándose en los datos de paridad.
Los valores de código de cada una de las celdas
obtenidos mediante la etapa anterior se convierten en datos de
código constituidos por caracteres reconocibles que incluyen números
y símbolos mediante la tabla de conversión de código (véase Figura
3B). En un caso en el que exista una región de control para
configurar temas relacionados con órdenes de ejecución o servicios,
que estén disponibles usando datos de código, en la imagen de
código, las órdenes de ejecución o los servicios se proveen de
acuerdo con los datos configurados en la región de control, y si no
es así, se podrían proveer servicios básicos designados en un
programa.
La Figura 15 es un diagrama de bloques de
acuerdo con una tercera realización del presente invento, y la
Figura 16 es un diagrama de flujo que ilustra el funcionamiento del
aparato mostrado en la Figura 15. Comparado con el aparato mostrado
en la Figura 5, existe una diferencia en el sentido de que el
aparato de la Figura 5 convierte previamente los colores de cada
píxel con respecto a la imagen no elaborada en colores estándar por
medio de un filtro de colores, y realiza un tratamiento de imagen,
y el aparato de la Figura 15 extrae de la imagen no elaborada la
región de imagen de código deseada y convierte los colores de cada
uno de los píxeles (de un píxel muestreado entre varios píxeles)
pertenecientes a la región de imagen de código en los colores
estándar usando las variables ambientales por medio del filtro de
colores. El resto de las funciones y de la operación son
básicamente similares, y por conveniencia no se muestra una memoria.
De aquí en adelante en la presente memoria se describirá una
diferencia con respecto al aparato mostrado en la Figura 5 y los
otros se aplican igualmente sólo si no hay ningún problema con el
orden de tratamiento o con el funcionamiento.
El aparato para reconocer un código mostrado en
la Figura 15 adquiere la imagen no elaborada en la que está
incluida la imagen de código, en una parte 151 de adquisición de
imagen, divide los colores o la sombra de la imagen no elaborada en
dos colores de acuerdo con un valor de referencia predeterminado en
una parte 153 de conversión codificada en sistema binario,
generando de ese modo una imagen codificada en sistema binario.
Una parte 154 de pre-tratamiento
configura un color de una parte que excluye una parte de imagen de
código en la imagen codificada en sistema binario y un color de
fondo específico, configura un color de una parte de la imagen no
elaborada correspondiente a la parte configurada por el color de
fondo en la imagen codificada en sistema binario, como el color de
fondo, discriminando de ese modo de otras partes la parte de imagen
de código. Una parte 155 de extracción de punto característico
extrae una pluralidad de celdas incluidas en la parte de imagen de
código y reconoce los colores o la sombra representados en cada
celda.
Un filtro de colores 156 configura variables
ambientales considerando un ambiente reinante en un tiempo en el
que se adquiere la imagen no elaborada, corrige los colores o la
sombra reconocidos en cada celda incluidos en la parte de imagen de
código mediante las variables ambientales, convierte los colores o
la sombra corregidos en una pluralidad de colores estándar o de
sombra estándar usados para generar la imagen de código, generando
de ese modo una imagen estándar representada por los colores
estándar o por la sombra estándar.
Un descodificador 157 extrae un correspondiente
carácter, número, o símbolo de los colores o de la sombra
reconocidos en cada celda de la imagen de código de acuerdo con una
relación entre un carácter, número, o símbolo y los
correspondientes colores o sombra, y genera datos de código.
A continuación se describe el funcionamiento del
aparato mostrado en la Figura 15 con referencia a la Figura 16. En
la etapa 161, se adquiere la imagen no elaborada en la que está
contenida la imagen de código. En la etapa 162, los colores o la
sombra de la imagen no elaborada se dividen en dos colores de
acuerdo con el valor de referencia predeterminado, y de ese modo se
genera la imagen codificada en sistema binario. En la etapa 163, la
parte que excluye la parte de imagen de código se representa
mediante el color de fondo específico basándose en la imagen
codificada en sistema binario. En la etapa 164, la parte de la
imagen no elaborada que corresponde a la parte representada por el
color de fondo en la imagen codificada en sistema binario se trata
como el color de fondo, discriminando de ese modo de las otras
partes la parte de imagen de código. En la etapa 165, se extrae la
pluralidad de celdas incluidas en la parte de imagen de código, y
luego los colores o la sombra representados en cada celda se
reconocen en la etapa 166, se configuran las variables ambientales
teniendo en cuenta el ambiente en un tiempo en el que se adquirió la
imagen no elaborada, y se corrigen por las variables ambientales
los colores o la sombra reconocidos en cada celda incluida en la
imagen de código. En la etapa 167, los colores o la sombra
corregidos se convierten en una pluralidad de colores estándar o
sombra estándar, que se usan para generar la imagen de código, y de
ese modo se genera la imagen estándar representada por los colores
estándar o la sombra estándar. En la presente realización, como ya
se conocen la posición del punto central de cada celda y el tipo de
un código, se muestrean píxeles predeterminados basándose en el
punto central de cada celda, y se aplican las variables ambientales
solamente a los píxeles muestreados, y de ese modo se podrían
discriminar los colores estándar o la sombra estándar de cada celda.
Preferiblemente, los datos relacionados con los colores estándar o
la sombra estándar discriminados de cada celda se guardan en una
memoria y se usan para generar datos de código. Como resultado, se
podrían omitir las etapas requeridas para generar la imagen
estándar.
En la etapa 168, se extrae un carácter, número,
o símbolo correspondientes de los colores o la sombra reconocidos
en cada celda de la imagen de código de acuerdo con la relación
entre un carácter, número, o símbolo y los colores o la sombra
correspondientes, y de ese modo se generan datos de código.
El método para reconocer un código de acuerdo
con el presente invento se puede realizar en un programa de
ordenador. El programa se puede ejecutar en medios usados en un
ordenador y en un ordenador digital común para operar el programa.
El programa se puede guardar en medios legibles por ordenador. Los
medios pueden incluir medios magnéticos tales como un disquete o un
disco duro y medios ópticos tales como un CD-ROM o
un disco de vídeo digital (en adelante DVD). Asimismo, el programa
se puede transmitir por ondas portadoras tales como Internet.
También, los medios legibles por ordenador se dispersan en un
sistema de ordenadores conectados por redes y se pueden guardar
como códigos legibles por ordenador e implementarse por un método de
dispersión.
Como se ha descrito anteriormente, el aparato
para reconocer un código y el método para dicho reconocimiento de
acuerdo con el presente invento pueden recibir una imagen de código
en la que están codificados por colores o sombra unos datos
predeterminados, discriminar con precisión los colores o sombra
originales independientemente de un ambiente en el que está
introducida la imagen de código, y de ese modo se pueden obtener
datos de código deseados.
Aunque este invento se ha mostrado
particularmente y descrito con referencia a realizaciones
predeterminadas del mismo, los expertos en la técnica entenderán
que podrían realizarse en el mismo diversos cambios en forma y
detalles sin apartarse del alcance del invento según se define
mediante las reivindicaciones que se adjuntan como apéndice.
Claims (7)
1. Un aparato para reconocer un código, cuyo
aparato comprende:
una parte (17) de configuración de código para
establecer una relación entre el carácter, número o símbolo y el
color o la sombra correspondientes;
una parte (11) de adquisición de imagen para
adquirir una imagen no elaborada en la que está contenida una
imagen de código, cuyo aparato se caracteriza por:
una parte (13) de tratamiento de imagen para
discriminar de otras áreas un área de la imagen de código, extraer
una pluralidad de celdas incluidas en el área de imagen de código, y
reconocer el color estándar o la sombra estándar representados en
cada una de las celdas, y para corregir los colores o sombras
reconocidos con respecto a cada una de las celdas incluidas en el
área de imagen de código, usar una variable ambiental que se
configura para discriminar los colores o sombras de la imagen no
elaborada teniendo en cuenta un ambiente en el que está introducida
la imagen no elaborada; y una parte (15) de conversión de código
para convertir los colores o sombras corregidos en una pluralidad
de colores estándar o sombras estándar usados para generar la imagen
de código, y para extraer un carácter, número o símbolo
correspondientes del color o de la sombra reconocidos en cada una
de las celdas de la imagen de código de acuerdo con la relación
establecida en la parte (17) de configuración de código, para
generar datos de código.
2. El aparato de la reivindicación 1, en el que
la parte (11) de tratamiento de imagen divide los colores o las
sombras de la imagen no elaborada en dos colores de acuerdo con un
valor de referencia predeterminado para generar una imagen
codificada en sistema binario, y extrae un área que excluye el área
de imagen de código de la imagen codificada en sistema binario para
configurar un color del área extraída como un color de fondo.
3. El aparato de la reivindicación 2, en el que
la parte (11) de tratamiento de imagen configura colores de píxeles
situados en un borde de la imagen codificada en sistema binario como
un color de fondo, y configura colores de píxeles conectados a los
píxeles configurados por el color de fondo como el color de fondo,
discriminando de ese modo de otras áreas el área de imagen de
código.
4. El aparato de la reivindicación 2, en el que
la parte (11) de tratamiento de imagen recibe una imagen en la que
el área de imagen de código y las otras áreas están divididas entre
sí por el color de fondo, divide la imagen en una pluralidad de
bloques, detecta una región que tiene un color o sombra que no es el
color de fondo, de cada uno de los bloques, selecciona un bloque
que tenga la región de mayor tamaño entre la pluralidad de bloques,
detecta un punto central del área de imagen de código contenida en
el bloque, y busca toda la imagen basándose en el punto central,
detectando de ese modo como el área de imagen de código la región
que tiene un color o sombra que no es el color de fondo
5. El aparato de la reivindicación 1, en el que
la parte (11) de tratamiento de imagen reconoce un color o una
sombra que tiene la mayor distribución entre los colores o sombras
de píxeles pertenecientes a cada celda, como el color o la sombra
de una celda correspondiente.
6. Un método para reconocer un código, cuyo
método comprende las etapas de:
adquirir una imagen no elaborada en la que está
contenida una imagen de código; cuyo método se caracteriza
por las etapas de:
discriminar de otras áreas el área de imagen de
código, extraer una pluralidad de celdas incluidas en el área de
imagen de código, y reconocer el color estándar o la sombra estándar
representados en cada una de las celdas;
corregir los colores o las sombras reconocidos
con respecto a cada una de las celdas incluidas en el área de
imagen de código, usando una variable ambiental que se configura
para discriminar colores o sombras de la imagen no elaborada
teniendo en cuenta un ambiente en el que esté introducida la imagen
no elaborada;
convertir los colores o las sombras corregidos
en una pluralidad de colores estándar o de sombras estándar usadas
para generar la imagen de código; y
extraer un carácter, número o símbolo
correspondientes del color o de la sombra reconocidos en cada una de
las celdas de la imagen de código de acuerdo con una relación entre
el carácter, número o símbolo y el color o la sombra
correspondientes, para generar datos de código.
7. Unos medios legibles de ordenador que guardan
un programa para implementar el método de la reivindicación 6.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010068378A KR100339691B1 (ko) | 2001-11-03 | 2001-11-03 | 코드인식을 위한 장치 및 그 방법 |
KR10-2001-0068378 | 2001-11-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2303566T3 true ES2303566T3 (es) | 2008-08-16 |
Family
ID=19715674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES02802741T Expired - Lifetime ES2303566T3 (es) | 2001-11-03 | 2002-05-13 | Aparato y metodo para reconocer un codigo. |
Country Status (9)
Country | Link |
---|---|
US (1) | US6981644B2 (es) |
EP (1) | EP1456816B1 (es) |
JP (1) | JP4016342B2 (es) |
KR (1) | KR100339691B1 (es) |
CN (1) | CN1310187C (es) |
AT (1) | ATE387676T1 (es) |
DE (1) | DE60225329T2 (es) |
ES (1) | ES2303566T3 (es) |
WO (1) | WO2003041014A1 (es) |
Families Citing this family (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4189506B2 (ja) | 2000-06-09 | 2008-12-03 | コニカミノルタビジネステクノロジーズ株式会社 | 画像処理のための装置、方法及び記録媒体 |
US8682077B1 (en) | 2000-11-28 | 2014-03-25 | Hand Held Products, Inc. | Method for omnidirectional processing of 2D images including recognizable characters |
JP2004165863A (ja) * | 2002-11-12 | 2004-06-10 | Murata Mach Ltd | カラー画像送信装置 |
JP3996520B2 (ja) * | 2003-01-30 | 2007-10-24 | 株式会社デンソーウェーブ | 二次元情報コードおよびその生成方法 |
JP3880553B2 (ja) | 2003-07-31 | 2007-02-14 | キヤノン株式会社 | 画像処理方法および装置 |
JP4205554B2 (ja) * | 2003-11-11 | 2009-01-07 | 富士フイルム株式会社 | 帳票処理装置 |
TWI249141B (en) * | 2004-07-12 | 2006-02-11 | Sunplus Technology Co Ltd | Document having index data and system for reading document having index data |
US20060081711A1 (en) * | 2004-09-30 | 2006-04-20 | Junxiang Zhao | Color-identifying system for colored barcode and a method thereof |
US7751629B2 (en) | 2004-11-05 | 2010-07-06 | Colorzip Media, Inc. | Method and apparatus for decoding mixed code |
KR101035762B1 (ko) * | 2005-01-07 | 2011-05-20 | 삼성전자주식회사 | 개선된 패턴 데이터의 인식 장치 및 방법 |
US20060180672A1 (en) * | 2005-02-11 | 2006-08-17 | Chu Lonny L | Method and system for multi-dimensional symbol coding system |
JP4393411B2 (ja) | 2005-03-29 | 2010-01-06 | 株式会社東芝 | 画像処理装置、画像処理プログラムおよび画像処理方法 |
KR100702292B1 (ko) * | 2005-05-03 | 2007-03-30 | (주)아이미디어아이앤씨 | 이미지 코드 및 그의 인식방법과 인식장치 |
KR100703527B1 (ko) * | 2005-07-12 | 2007-04-03 | 삼성전자주식회사 | 핫코드 인식률 향상을 위한 이미지 전처리 방법 및 그 장치 |
DE102005034374B3 (de) * | 2005-07-22 | 2007-03-01 | Siemens Ag | Verfahren zur automatischen Erstellung einer Hintergrundmaske bei Bildern mit verrauschten Hintergrundbereichen, Anwendungen dazu sowie ein Kernspintomographiegerät zur Durchführung der Verfahren und Computersoftwareprodukt |
EP1826705A1 (de) | 2006-02-25 | 2007-08-29 | F.Hoffmann-La Roche Ag | Analytisches Verbrauchsmittel und Anordnung zum Auslesen von Informationen |
US8789756B2 (en) * | 2006-02-25 | 2014-07-29 | Roche Diagnostics Operations, Inc. | Test element coding apparatuses, systems and methods |
SG138575A1 (en) * | 2006-06-23 | 2008-01-28 | Colorzip Media Inc | Method of classifying colors of color based image code |
KR100914515B1 (ko) | 2006-06-23 | 2009-09-02 | 주식회사 칼라짚미디어 | 색상 기반 이미지 코드의 색상 판별 방법 |
US8113432B2 (en) * | 2006-07-19 | 2012-02-14 | B-Core Inc. | Apparatus for recognizing an optical recognition code in which a code symbol of a 1-dimensional color bit code indicative of certain data is divided into a plurality of code symbols |
WO2009060942A1 (ja) * | 2007-11-09 | 2009-05-14 | B-Core Inc. | 光学式認識コード及びそのマーキング方法及びその読み取り方法、並びに、光学式認識コードをマーキングした物品、並びに、色彩認識方法及びプログラム、並びに、色彩配列による自動認識コード及びそれが付された物品 |
US8172145B2 (en) * | 2007-11-20 | 2012-05-08 | Datalogic ADC, Inc. | Enhanced virtual scan line processing |
KR101428054B1 (ko) | 2007-12-13 | 2014-08-07 | 주식회사 엘지씨엔에스 | 매체이미지 검출장치 및 방법, 그리고 그를 이용한매체취급시스템 |
JP4910011B2 (ja) * | 2009-03-24 | 2012-04-04 | ビーコア株式会社 | 光学式シンボル及びそれを付した物品 |
GB0812266D0 (en) * | 2008-07-04 | 2008-08-13 | Tyco Electronics Raychem Nv | Improvements in or relating to an optical fibre organiser tray |
KR100963240B1 (ko) | 2008-08-07 | 2010-06-10 | 광주과학기술원 | 컬러 마커 인식 방법 및 장치 |
US8554579B2 (en) | 2008-10-13 | 2013-10-08 | Fht, Inc. | Management, reporting and benchmarking of medication preparation |
RU2403617C2 (ru) * | 2008-11-10 | 2010-11-10 | Федеральное государственное унитарное предприятие "Российский Федеральный Ядерный Центр - Всероссийский Научно-Исследовательский Институт Технической Физики имени академика Е.И. Забабахина" (ФГУП "РФЯЦ-ВНИИТФ им. академ. Е.И. Забабахина") | Способ автоматизированного распознавания идентификационного номера |
US8459556B2 (en) * | 2009-01-09 | 2013-06-11 | Datalogic ADC, Inc. | Prioritized virtual scan line processing |
KR100920663B1 (ko) * | 2009-01-22 | 2009-10-14 | (주) 이토프 | 2차원 코드의 인식 방법 |
JP4499825B1 (ja) * | 2009-09-30 | 2010-07-07 | 広行 遠藤 | 二次元コード,二次元コードリーダおよびプログラム |
CN102576415B (zh) | 2009-09-30 | 2015-11-25 | 株式会社希福特 | 二维码、二维码阅读器和程序 |
US20130026240A1 (en) * | 2010-01-18 | 2013-01-31 | Manabu Hagiwara | Two-dimensional code, code generation system, program, and printed medium |
KR101169140B1 (ko) | 2010-02-17 | 2012-07-30 | 고려대학교 산학협력단 | 문자 영역 추출을 위한 영상 생성 장치 및 방법 |
US8505823B2 (en) * | 2010-06-30 | 2013-08-13 | International Business Machine Corporation | Noise removal from color barcode images |
JP4724801B1 (ja) | 2010-07-30 | 2011-07-13 | 株式会社シフト | 二次元コードリーダおよびプログラム |
CN102646187B (zh) * | 2011-02-20 | 2016-08-03 | 深圳市心艺来文化有限公司 | 彩色图形编码及识别方法 |
FR2973264B3 (fr) * | 2011-04-01 | 2013-05-31 | Envac Optibag Ab | Procede et systeme pour identifier des conteneurs de dechets sur la base d'un motif |
NO20110508A1 (no) * | 2011-04-01 | 2012-09-03 | Envac Optibag Ab | Fremgangsmåte og system for identifisering av avfallsbeholdere på grunnlag av mønster |
WO2013010893A1 (en) | 2011-07-15 | 2013-01-24 | Sanofi-Aventis Deutschland Gmbh | Drug delivery device with electro-mechanic drive mechanism |
EP2740504B1 (en) * | 2011-07-15 | 2020-08-19 | Sanofi-Aventis Deutschland GmbH | A drug delivery device with illumination |
KR101200378B1 (ko) | 2011-08-30 | 2012-11-12 | 인하대학교 산학협력단 | 국소 각 위상을 이용한 강건한 텍스처 특징 추출 방법 |
IN2014CN02941A (es) | 2011-10-10 | 2015-07-03 | Yewon Comm Co Ltd | |
US9111186B2 (en) | 2011-10-12 | 2015-08-18 | University Of Rochester | Color barcodes for mobile applications: a per channel framework |
US8931700B2 (en) | 2011-12-23 | 2015-01-13 | Konica Minolta Laboratory U.S.A., Inc. | Four dimensional (4D) color barcode for high capacity data encoding and decoding |
US8915440B2 (en) | 2011-12-23 | 2014-12-23 | Konica Minolta Laboratory U.S.A., Inc. | Four dimensional (4D) color barcode for high capacity data encoding and decoding |
JP5904889B2 (ja) * | 2012-06-29 | 2016-04-20 | シャープ株式会社 | 情報処理装置 |
JP5907823B2 (ja) * | 2012-06-29 | 2016-04-26 | シャープ株式会社 | 加熱調理器 |
KR20200018728A (ko) | 2012-10-26 | 2020-02-19 | 백스터 코포레이션 잉글우드 | 의료 투여분 조제 시스템을 위한 개선된 이미지 취득 |
NZ716476A (en) | 2012-10-26 | 2018-10-26 | Baxter Corp Englewood | Improved work station for medical dose preparation system |
JP5822411B2 (ja) * | 2013-08-12 | 2015-11-24 | 株式会社アポロジャパン | 画像情報のコード変換装置、画像情報のコード変換方法、画像コードを用いた画像関連情報提供システム、画像情報のコード変換プログラム、及びそのプログラムを記録した記録媒体 |
GB2518443A (en) * | 2013-09-24 | 2015-03-25 | Ibm | Method for detecting phishing of a matrix barcode |
US10235596B2 (en) * | 2013-11-06 | 2019-03-19 | Research & Business Foundation Sungkyunkwan University | System and method for transferring data using image code, outputting image code on display device, and decoding image code |
SG11201610717WA (en) | 2014-06-30 | 2017-01-27 | Baxter Corp Englewood | Managed medical information exchange |
US11575673B2 (en) | 2014-09-30 | 2023-02-07 | Baxter Corporation Englewood | Central user management in a distributed healthcare information management system |
US11107574B2 (en) | 2014-09-30 | 2021-08-31 | Baxter Corporation Englewood | Management of medication preparation with formulary management |
CN104361381A (zh) * | 2014-11-17 | 2015-02-18 | 深圳市华鑫精工机械技术有限公司 | 一种双界面卡和双界面卡的封装方法 |
US10818387B2 (en) | 2014-12-05 | 2020-10-27 | Baxter Corporation Englewood | Dose preparation data analytics |
TWI533227B (zh) * | 2015-02-26 | 2016-05-11 | 楊東華 | 色彩編解碼方法與系統 |
EP3265989A4 (en) | 2015-03-03 | 2018-10-24 | Baxter Corporation Englewood | Pharmacy workflow management with integrated alerts |
US9805662B2 (en) * | 2015-03-23 | 2017-10-31 | Intel Corporation | Content adaptive backlight power saving technology |
USD790727S1 (en) | 2015-04-24 | 2017-06-27 | Baxter Corporation Englewood | Platform for medical dose preparation |
US10628736B2 (en) * | 2015-09-24 | 2020-04-21 | Huron Technologies International Inc. | Systems and methods for barcode annotations for digital images |
WO2017082607A1 (en) | 2015-11-09 | 2017-05-18 | Samsung Electronics Co., Ltd. | Electronic device and operating method of the same |
KR20170054900A (ko) * | 2015-11-10 | 2017-05-18 | 삼성전자주식회사 | 디스플레이 장치 및 그 제어 방법 |
KR20170121915A (ko) * | 2016-04-26 | 2017-11-03 | 예스튜디오 주식회사 | 스마트 펜을 이용한 그림 그리기 방법 및 시스템 |
MA39233B1 (fr) * | 2016-07-27 | 2018-11-30 | Univ Abdelmalek Essaadi Tetouan | Procédé d'identification à distance du code qr au moyen d'une caméra. |
US9959586B1 (en) * | 2016-12-13 | 2018-05-01 | GoAnimate, Inc. | System, method, and computer program for encoding and decoding a unique signature in a video file as a set of watermarks |
JP2018136903A (ja) * | 2017-02-21 | 2018-08-30 | エンゼルプレイングカード株式会社 | 遊戯用代用貨幣の枚数計測システム |
EP3877948A4 (en) | 2018-11-05 | 2022-11-23 | Huron Technologies International Inc. | SYSTEMS AND METHODS FOR MANAGEMENT OF MEDICAL IMAGES |
US10896306B2 (en) * | 2019-04-29 | 2021-01-19 | Ncr Corporation | Barcode scanner optimization |
CN111046996B (zh) * | 2019-11-27 | 2023-08-04 | 湖南省科腾信安智能科技有限公司 | 一种彩色qr码生成和识别方法 |
CN119648092A (zh) * | 2019-12-26 | 2025-03-18 | 北京极智嘉科技股份有限公司 | 取货机器人、取货方法、计算机可读存储介质 |
KR102214421B1 (ko) * | 2020-04-20 | 2021-02-09 | 조영근 | 절대 시간을 이용한 영상 편집 시스템 및 그 방법 |
US11610395B2 (en) | 2020-11-24 | 2023-03-21 | Huron Technologies International Inc. | Systems and methods for generating encoded representations for multiple magnifications of image data |
US11934554B2 (en) | 2021-05-17 | 2024-03-19 | Bank Of America Corporation | Information security by preventing unauthorized data access |
US12118120B2 (en) | 2021-05-17 | 2024-10-15 | Bank Of America Corporation | Prevention of unauthorized access to information |
KR102490756B1 (ko) * | 2022-08-08 | 2023-01-27 | 미러 주식회사 | 암호화된 문서 컨텐츠를 제공하는 서버와 그 문서 컨텐츠의 뷰어 디바이스 |
CN116778195B (zh) * | 2023-08-16 | 2023-11-24 | 北京华源技术有限公司 | 一种基于颜色码的设备识别方法和系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3894217A (en) * | 1973-12-27 | 1975-07-08 | Nippon Electric Co | Device for discriminating color coded articles |
US5343028A (en) * | 1992-08-10 | 1994-08-30 | United Parcel Service Of America, Inc. | Method and apparatus for detecting and decoding bar code symbols using two-dimensional digital pixel images |
US5352878A (en) * | 1993-01-29 | 1994-10-04 | United Parcel Service Of America, Inc. | Method and apparatus for decoding bar code symbols using independent bar and space analysis |
CN1179752A (zh) * | 1995-03-31 | 1998-04-22 | 基维软件程序有限公司 | 机器可读的标签 |
JP3676887B2 (ja) * | 1996-08-08 | 2005-07-27 | 理想科学工業株式会社 | カラー2次元コード及びカラー2次元コードの作成装置 |
JP4015753B2 (ja) * | 1998-06-11 | 2007-11-28 | 株式会社東芝 | 画像情報処理方法 |
JPH11168616A (ja) * | 1997-12-03 | 1999-06-22 | Toshiba Corp | 画像情報処理方法および画像情報処理装置 |
GB9806767D0 (en) * | 1998-03-31 | 1998-05-27 | Philips Electronics Nv | Pixel colour valve encoding and decoding |
JP3459770B2 (ja) * | 1998-04-10 | 2003-10-27 | キヤノン株式会社 | 画像読取装置および方法、記録媒体 |
US6081739A (en) * | 1998-05-21 | 2000-06-27 | Lemchen; Marc S. | Scanning device or methodology to produce an image incorporating correlated superficial, three dimensional surface and x-ray images and measurements of an object |
US7023587B2 (en) * | 1999-11-12 | 2006-04-04 | Nikon Corporation | Image scanning apparatus, recording medium which stores image scanning programs, and data structure |
US20020015536A1 (en) * | 2000-04-24 | 2002-02-07 | Warren Penny G. | Apparatus and method for color image fusion |
-
2001
- 2001-11-03 KR KR1020010068378A patent/KR100339691B1/ko not_active Expired - Lifetime
-
2002
- 2002-05-13 ES ES02802741T patent/ES2303566T3/es not_active Expired - Lifetime
- 2002-05-13 AT AT02802741T patent/ATE387676T1/de not_active IP Right Cessation
- 2002-05-13 JP JP2003542972A patent/JP4016342B2/ja not_active Expired - Fee Related
- 2002-05-13 US US10/492,305 patent/US6981644B2/en not_active Expired - Lifetime
- 2002-05-13 EP EP02802741A patent/EP1456816B1/en not_active Expired - Lifetime
- 2002-05-13 WO PCT/KR2002/000886 patent/WO2003041014A1/en active IP Right Grant
- 2002-05-13 DE DE60225329T patent/DE60225329T2/de not_active Expired - Lifetime
- 2002-05-13 CN CNB028215982A patent/CN1310187C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6981644B2 (en) | 2006-01-03 |
EP1456816A4 (en) | 2005-02-02 |
HK1072826A1 (en) | 2005-09-09 |
ATE387676T1 (de) | 2008-03-15 |
DE60225329D1 (de) | 2008-04-10 |
JP2005509223A (ja) | 2005-04-07 |
DE60225329T2 (de) | 2009-02-19 |
CN1310187C (zh) | 2007-04-11 |
KR20010113578A (ko) | 2001-12-28 |
CN1578969A (zh) | 2005-02-09 |
JP4016342B2 (ja) | 2007-12-05 |
EP1456816A1 (en) | 2004-09-15 |
KR100339691B1 (ko) | 2002-06-07 |
WO2003041014A1 (en) | 2003-05-15 |
US20050001033A1 (en) | 2005-01-06 |
EP1456816B1 (en) | 2008-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2303566T3 (es) | Aparato y metodo para reconocer un codigo. | |
ES2341607T3 (es) | Metodo y dispositivo de codificacion y descodificacion. | |
US20220156476A1 (en) | Method, device, and system for generating, repairing, and identifying an incomplete qr code | |
Chen et al. | PiCode: A new picture-embedding 2D barcode | |
KR100653886B1 (ko) | 혼합코드 및 혼합코드 인코딩 방법과 장치 | |
US9239978B2 (en) | Readable matrix code | |
ES2773719T3 (es) | Mejora de texto de una imagen textual sometida a un reconocimiento óptico de caracteres | |
US10863202B2 (en) | Encoding data in a source image with watermark image codes | |
KR100653885B1 (ko) | 혼합코드 디코딩 방법 및 그 장치 | |
US8783571B2 (en) | Device and its use for outputting of 2D codes with embedded images | |
JP5145435B2 (ja) | カラーベースのイメージコードの色判別方法 | |
EP1807796A4 (en) | MIXED CODE, METHOD AND DEVICE FOR PRODUCING THE CODE, METHOD AND DEVICE FOR DECODING IT | |
US20160379031A1 (en) | High capacity 2d color barcode design and processing method for camera based applications | |
JP6890427B2 (ja) | 車番認識装置 | |
US10084940B2 (en) | Image forming apparatus, and method for image processing thereof | |
JP4404224B2 (ja) | 光学式認識コード認識装置及び方法及びプログラム | |
JP5967000B2 (ja) | 情報コード読取システム、情報コード読取装置、情報コード | |
JP4874706B2 (ja) | Qrコード読取装置 | |
US20210203994A1 (en) | Encoding data in a source image with watermark image codes | |
Tkachenko et al. | Improving the module recognition rate of high density QR codes (Version 40) by using centrality bias | |
HK1072826B (en) | Apparatus and method for recognizing code | |
JP2009003721A (ja) | 光学式認識コード切り出し方法及び切り出し装置及びプログラム並びに光学式認識コード認識方法 | |
JP2001134773A (ja) | 画像処理装置およびその方法 |