U.S. patent application number 13/670621 was filed with the patent office on 2013-11-21 for reader, reading method and computer program product.
This patent application is currently assigned to KABUSHIKI KAISHA TOSHIBA. The applicant listed for this patent is Kabushiki Kaisha Toshiba. Invention is credited to Sachi MINAMI, Masashi NISHIYAMA, Yojiro TONOUCHI.
Application Number | 20130306733 13/670621 |
Document ID | / |
Family ID | 48622052 |
Filed Date | 2013-11-21 |
United States Patent
Application |
20130306733 |
Kind Code |
A1 |
TONOUCHI; Yojiro ; et
al. |
November 21, 2013 |
READER, READING METHOD AND COMPUTER PROGRAM PRODUCT
Abstract
According to an embodiment, a reader includes an acquiring unit
configured to acquire an image containing a code; a detecting unit
configured to detect a plurality of local regions containing parts
of the code from the image; an integrating unit configured to
integrate the local regions to obtain an integrated region; and a
reading unit configured to read the code on the integrated
region.
Inventors: |
TONOUCHI; Yojiro; (Tokyo,
JP) ; MINAMI; Sachi; (Kanagawa, JP) ;
NISHIYAMA; Masashi; (Kanagawa, JP) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Kabushiki Kaisha Toshiba; |
|
|
US |
|
|
Assignee: |
KABUSHIKI KAISHA TOSHIBA
Tokyo
JP
|
Family ID: |
48622052 |
Appl. No.: |
13/670621 |
Filed: |
November 7, 2012 |
Current U.S.
Class: |
235/462.12 |
Current CPC
Class: |
G06K 7/1491
20130101 |
Class at
Publication: |
235/462.12 |
International
Class: |
G06K 7/14 20060101
G06K007/14 |
Foreign Application Data
Date |
Code |
Application Number |
Nov 8, 2011 |
JP |
2011-244642 |
Claims
1. A reader comprising: an acquiring unit configured to acquire an
image containing a code; a detecting unit configured to detect a
plurality of local regions containing parts of the code from the
image; an integrating unit configured to integrate the local
regions to obtain an integrated region; and a reading unit
configured to read the code on the integrated region.
2. The reader according to claim 1, wherein the integrating unit
calculates a main axis of the integrated region on a basis of
positions of the local regions, and the reading unit reads the code
on the integrated region along the main axis.
3. The reader according to claim 1, wherein the integrating unit
integrates the local regions according to positions of the local
regions to obtain one or more integrated regions.
4. The reader according to claim 3, wherein the integrating unit
calculates a distance between local regions for each of the local
regions by using a position of the local region and a position of
another local region, and integrates local regions with the
distance therebetween being smaller than a threshold to obtain the
one or more integrated regions.
5. The reader according to claim 1, wherein the detecting unit
further detects a direction of each of the local regions, and the
integrating unit integrates the local regions according to the
positions and the directions of the local regions to obtain one or
more integrated regions.
6. The reader according to claim 5, wherein the integrating unit
calculates a first distance between local regions for each of the
local regions by using a position of the local region and a
position of another local region, also calculates a second distance
between local regions by using the direction of the local region
and the direction of the another local region, and integrates local
regions with a value based on the first distance between local
regions and the second distance between local regions being smaller
than a threshold to obtain the one or more integrated region.
7. The reader according to claim 5, wherein the integrating unit
calculates a first distance between local regions for each of the
local regions by using a position of the local region and a
position of another local region, also calculates a second distance
between local regions by using the direction of the local region
and the direction of the another local region, and integrates local
regions with the first distance between local regions being smaller
than a first threshold and the second distance between local
regions being smaller than a second threshold to obtain the one or
more integrated region.
8. The reader according to claim 1, wherein the code is a pattern
in which patterns in the main axis direction are different and
patterns in a direction perpendicular to the main axis direction
are uniform, and the reading unit recognizes the pattern of the
integrated region and decodes the code.
9. A reading method comprising: acquiring an image containing a
code by an acquiring unit; detecting a plurality of local regions
containing parts of the code from the image by a detecting unit;
integrating the local regions to obtain an integrated region by an
integrating unit; and reading the code on the integrated region by
a reading unit.
10. A computer program product comprising a computer readable
medium including programmed instructions, wherein the instructions,
when executed by a computer, cause the computer to execute:
acquiring an image containing a code; detecting a plurality of
local regions containing parts of the code from the image;
integrating the local regions to obtain an integrated region; and
reading the code on the integrated region.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is based upon and claims the benefit of
priority from Japanese Patent Application No. 2011-244642, filed on
Nov. 8, 2011; the entire contents of which are incorporated herein
by reference.
FIELD
[0002] Embodiments described herein relate generally to a reader, a
reading method and a computer program product.
BACKGROUND
[0003] Various codes such as bar codes are used for writing
information on management of articles in a wide range of fields
such as merchandise sales, distribution, and production processes.
For reading such codes, a hand scanner or a pen scanner that
directly points a code to read the code, a stationary scanner that
emits beams in a plurality of directions to read a code with any of
the beams, or the like is used.
[0004] With the related art as described above, however, when a
code is printed on or attached to a deformable object, the code
will be distorted as the object is deformed and therefore may not
be readable.
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] FIG. 1 is a configuration diagram illustrating an example of
a reader according to a first embodiment;
[0006] FIG. 2 is a diagram illustrating an example of a code
according to the first embodiment;
[0007] FIG. 3 is a configuration diagram illustrating a detailed
example of a detecting unit according to the first embodiment;
[0008] FIG. 4 is a diagram illustrating an example of a plurality
of local regions detected by the detecting unit according to the
first embodiment;
[0009] FIG. 5 is a diagram illustrating an example of an integrated
region obtained by an integrating unit according to the first
embodiment;
[0010] FIG. 6 is a diagram illustrating an example of integrated
regions obtained by the integrating unit according to the first
embodiment;
[0011] FIG. 7 is an explanatory diagram illustrating an example of
a reading method of a reading unit according to the first
embodiment;
[0012] FIG. 8 is an explanatory diagram illustrating the example of
the reading method of the reading unit according to the first
embodiment;
[0013] FIG. 9 is an explanatory diagram illustrating the example of
the reading method of the reading unit according to the first
embodiment;
[0014] FIG. 10 is an explanatory diagram illustrating the example
of the reading method of the reading unit according to the first
embodiment;
[0015] FIG. 11 is a flowchart illustrating an example of a reading
process according to the first embodiment;
[0016] FIG. 12 is a configuration diagram illustrating an example
of a reader according to a second embodiment;
[0017] FIG. 13 is a diagram illustrating examples of objects to be
detected by a detecting unit according to the second
embodiment;
[0018] FIG. 14 is a diagram illustrating examples of integrated
regions obtained by an integrating unit according to the second
embodiment;
[0019] FIG. 15 is a flowchart illustrating an example of a reading
process according to the second embodiment; and
[0020] FIG. 16 is a block diagram illustrating an exemplary
hardware configuration of the reader according to the first and
second embodiments.
DETAILED DESCRIPTION
[0021] According to an embodiment, a reader includes an acquiring
unit configured to acquire an image containing a code; a detecting
unit configured to detect a plurality of local regions containing
parts of the code from the image; an integrating unit configured to
integrate the local regions to obtain an integrated region; and a
reading unit configured to read the code on the integrated
region.
[0022] Embodiments will be described below in detail with reference
to the accompanying drawings.
First Embodiment
[0023] FIG. 1 is a configuration diagram illustrating an example of
a reader 10 according to a first embodiment. As illustrated in FIG.
1, the reader 10 includes an acquiring unit 11, a detecting unit
13, an integrating unit 15 and a reading unit 17. The respective
units of the reader 10 may be implemented by making a processor
such as a central processing unit (CPU) execute a program, that is,
by software, may be implemented by hardware such as an integrated
circuit (IC), or may be implemented by combination of software and
hardware.
[0024] The acquiring unit 11 acquires an image captured by an image
input unit (not illustrated). The image input unit can be
implemented by an imaging device such as a digital camera and
inputs a captured image. In the first embodiment, an image captured
by the image input unit, that is, an image acquired by the
acquiring unit 11 is assumed to be an image obtained by capturing a
code printed on or attached to a deformable object such as a
bendable object. In the first embodiment, the acquiring unit 11
thus acquires an image containing a code. If the image input unit
captures a code that is distorted as the object is deformed, the
code in the image acquired by the acquiring unit 11 will also be
distorted as a matter of course.
[0025] A code according to the first embodiment is a code that can
be optically recognized, and a pattern in which similar patterns
are locally repetitively arranged is used therefor. Specifically, a
pattern in which patterns in a first direction are different and
patterns in a second direction perpendicular to the first direction
are uniform is used for a code in the first embodiment. In the
first embodiment, the first direction is assumed to be a main axis
direction of an object on or to which the code is printed or
attached, and the first direction will be hereinafter referred to
as the main axis direction of the code. The main axis of an object
corresponds to the central axis in the longitudinal direction of
the object, for example, and the main axis of a code corresponds to
the central axis in the main axis direction (first direction) of
the code, for example.
[0026] FIG. 2 is a diagram illustrating an example of a code 21
according to the first embodiment. In the example illustrated in
FIG. 2, the code 21 is a one-dimensional bar code in which a
pattern of black and white stripes is used in the main axis
direction of the code 21. The code 21 is assumed to be printed on a
cable (not illustrated) and thus illustrated in a cylindrical shape
in the example of FIG. 2. However, the shape of the code 21 is not
limited thereto. Furthermore, in the example illustrated in FIG. 2,
the code 21 is assumed to be printed on a cable so that the main
axis direction of the code 21 and the main axis direction of the
cable coincide with each other.
[0027] The detecting unit 13 detects a plurality of local regions
each containing a part of the code from the image acquired by the
acquiring unit 11. Specifically, the detecting unit 13 uses a
detector for which a local region containing a pattern that is a
part of a code (pattern) is an object to detect so as to detect a
plurality of local regions from the image acquired by the acquiring
unit 11. This detector can be generated by performing machine
learning in advance using a large number of sample images
containing patterns to be detected.
[0028] FIG. 3 is a configuration diagram illustrating an example of
details of the detecting unit 13 according to the first embodiment.
As illustrated in FIG. 3, the detecting unit 13 includes a detector
storage unit 13A, a feature quantity calculating unit 13B, a
quantizing unit 13C and an identifying unit 13D.
[0029] The detector storage unit 13A stores a detector that has a
plurality of combinations selected in advance, each of which being
a combination of a feature region containing a plurality of pixel
regions and a quantized learned feature quantity obtained by
quantizing a learned feature quantity that is a feature quantity of
the feature region in a sample image, and also has information
indicating whether or not a sample image is an object to be
detected. The detector can be obtained by learning about the sample
images in advance.
[0030] The feature quantity calculating unit 13B calculates an
input feature quantity that is a feature quantity of a region
corresponding to each of the feature regions belonging to the
combinations in the image acquired by the acquiring unit 11 by
obtaining a weighted sum of pixel regions of the feature region,
the pixel regions being weighted with different weights from one
another, or an absolute value of the weighted sum.
[0031] The quantizing unit 13C quantizes the input feature quantity
calculated by the feature quantity calculating unit 13B to obtain a
quantized input feature quantity.
[0032] The identifying unit 13D applies the quantized input feature
quantity obtained by the quantizing unit 13C to the detector stored
in the detector storage unit 13A to identify whether or not an
object (local region) to be detected is contained in the image
acquired by the acquiring unit 11.
[0033] FIG. 4 is a diagram illustrating an example of a plurality
of local regions 23 detected by the detecting unit 13 according to
the first embodiment. It is assumed, for example, that the code in
the image acquired by the acquiring unit 11 is a one-dimensional
code in which a pattern of black and white stripes is used in the
main axis direction of the code 21 as the code 21 illustrated in
FIG. 2. In this case, the detecting unit 13 uses a detector for
which a local region containing several black and white patterns is
an object to detect so as to detect a plurality of local regions 23
containing several black and white patterns from the image acquired
by the acquiring unit 11 as illustrated in FIG. 4. This detector
can be generated by performing machine learning in advance using a
large number of sample images containing several black and white
patterns. The sample images for machine learning may be real images
obtained by actually capturing images or may be artificial images
created by computer graphics. Note that, in the example illustrated
in FIG. 4, the code 21 in the image acquired by the acquiring unit
11 is distorted (the main axis of the code 21 is bent), which is
because the cable (not illustrated) on which the code 21 is printed
is bent.
[0034] The integrating unit 15 integrates the local regions
detected by the detecting unit 13 to obtain an integrated region.
Specifically, the integrating unit 15 integrates the local regions
according to positions of the local regions detected by the
detecting unit 13 to obtain one or more integrated regions. For
example, the integrating unit 15 calculates a distance between
local regions for each of the local regions detected by the
detecting unit 13 by using the position of the local region and the
position of another local region, and integrates local regions with
the distance therebetween being smaller than a threshold to obtain
one or more integrated regions.
[0035] While the integrating unit 15 in the first embodiment
calculates, for each of a plurality of local regions, distances
between the local region and the other local regions and integrates
local regions with the calculated distance therebetween being
smaller than the threshold, the integrating unit 15 is not limited
thereto. For example, the integrating unit 15 may calculate, for
each of a plurality of local regions, distances between a local
region and local regions adjacent thereto and integrate local
regions with the calculated distance therebetween being smaller
than a threshold.
[0036] While the integrating unit 15 in the first embodiment
integrates local regions by means of hierarchical clustering based
on center-to-center distances between local regions, the method for
integrating local regions is not limited thereto. For example, it
is assumed that two-dimensional coordinates of the center position
of one local region are (x(1), y(1)) and two-dimensional
coordinates of the center position of another local region are
(x(2), y(2)). In this case, the integrating unit 15 expresses the
distance between the one local region and the other local region by
a square distance D by using an equation (1).
D(x(1), y(1), x(2), y(2))=(x(1)-x(2)).sup.2+(y(1)-y(2)).sup.2
(1)
[0037] The integrating unit 15 then integrates the local regions if
the calculated square distance D (the distance between the local
regions) is smaller than a threshold but does not integrate the
local regions if the square distance D is equal to or larger than
the threshold.
[0038] FIGS. 5 and 6 are diagrams illustrating examples of
integrated regions obtained by the integrating unit 15 according to
the first embodiment. In the example illustrated in FIG. 5, since
one code 21 is contained in the image acquired by the acquiring
unit 11, the integrating unit 15 integrates a plurality of local
regions 23 to obtain one integrated region. In the example
illustrated in FIG. 6, on the other hand, since three codes 21, 31
and 41 are contained in the image acquired by the acquiring unit
11, the integrating unit 15 obtains three integrated regions, which
are an integrated region obtained by integrating a plurality of
local regions 23, an integrated region obtained by integrating a
plurality of local regions 33 and an integrated region obtained by
integrating a plurality of local regions 43. As described above, in
the first embodiment, integration of local regions of different
codes can be avoided and different codes can be obtained as
separate codes. This is because the integrating unit 15 integrates
local regions with the distance therebetween being smaller than a
threshold but does not integrate local regions with the distance
therebetween being equal to or larger than the threshold.
[0039] The integrating unit 15 also calculates the main axis of an
integrated region (code) on the basis of the positions of the local
regions detected by the detecting unit 13. While the integrating
unit 15 in the first embodiment calculates, as the main axis, a
quadratic curve fit to center positions of the local regions
integrated into an integrated region, the method for calculating
the main axis is not limited thereto.
[0040] For example, each of the center positions of the local
regions integrated into an integrated regions is represented by
(x(i), y(i)) and a quadratic curve representing the main axis is
expressed as y=ax.sup.2+bx+c, where i=1, 2, . . . , N, N being the
number of local regions integrated into an integrated region. In
this case, the integrating unit 15 calculates the quadratic curve
y=ax.sup.2+bx+c representing the main axis of the integrated region
by obtaining the variables a, b and c that minimize a function f(a,
b, c) expressed by an equation (2).
f ( a , b , c ) = i = 1 N { y ( i ) - ( ax ( i ) 2 + bx ( i ) + c )
} 2 ( 2 ) ##EQU00001##
[0041] In this manner, the integrating unit 15 calculates a main
axis 25 of the integrated region (code 21) into which the local
regions 23 are integrated as in the example illustrated in FIG.
5.
[0042] The reading unit 17 reads the integrated region obtained by
the integrating unit 15. Specifically, the reading unit 17 reads
the code on the integrated region obtained by the integrating unit
15 in the main axis direction calculated by the integrating unit
15. For example, the reading unit 17 recognizes the pattern (cod
pattern) of an integrated region obtained by the integrating unit
15 and decodes the code.
[0043] FIGS. 7 to 10 are explanatory diagrams illustrating an
example of the reading method of the reading unit 17 according to
the first embodiment. First, as illustrated in FIG. 7, the reading
unit 17 calculates a normal 27 at a point (pixel) 28 on the main
axis 25 calculated by the integrating unit 15 and adds up luminance
values at five points (the point 28 and points 29), in which the
point 28 is at the center, among points (pixels) on the normal 27.
While the number of points on the normal 27 for adding up the
luminance values is five in the first embodiment, the number of
points on the normal 27 for adding up the luminance values is not
limited thereto.
[0044] The reading unit 17 performs this process for each point on
the main axis 25 to create a histogram (see FIG. 8) in which the
main axis is represented by the horizontal axis and the pixel
values are represented by the vertical axis, and binarizes the
histogram (see FIG. 9).
[0045] The reading unit 17 then uses the binarized histogram to
calculate a width of each of white and black stripes in the main
axis direction, and sets 1 if the calculated width is larger than a
threshold or sets 0 if the calculated width is smaller than the
threshold (see FIG. 10). In this manner, the reading unit 17 can
recognize the pattern of the integrated region obtained by the
integrating unit 15 and decodes the code.
[0046] FIG. 11 is a flowchart illustrating an example of a flow of
procedures of a reading process performed by the reader 10
according to the first embodiment.
[0047] First, the acquiring unit 11 acquires an image containing a
code from the image input unit (step S101).
[0048] Subsequently, the detecting unit 13 detects a plurality of
local regions containing parts of the code from the image acquired
by the acquiring unit 11 (step S103).
[0049] Subsequently, the integrating unit 15 integrates the local
regions detected by the detecting unit 13 on the basis of the
respective positions thereof to obtain an integrated region (step
S105).
[0050] Subsequently, the reading unit 17 reads the code on the
integrated region obtained by the integrating unit 15 (step
S107).
[0051] As described above, in the first embodiment, a plurality of
local regions containing parts of a code are detected from an image
containing the code and integrated into an integrated region and
the integrated region is read by utilizing the fact that the local
shapes of the code change little even when the code is distorted as
the main axis of an object on or to which the code is printed or
attached is bent or the like. According to the first embodiment, a
code can be read even if the code is distorted.
[0052] In addition, according to the first embodiment, since local
regions with the distance therebetween being smaller than a
threshold are integrated but local regions with the distance
therebetween being equal to or larger than the threshold are not
integrated, it is possible to avoid integrating local regions of
different codes and obtain different codes as separate codes.
[0053] Moreover, in the first embodiment, a code using a pattern in
which patterns in the main axis direction are different and
patterns in the direction perpendicular to the main axis direction
are uniform is used. According to the first embodiment, since the
patterns of the code in the direction perpendicular to the main
axis direction are uniform as described above, the code can be read
even in a case where the code is printed on or attached to a
surface that is not flat and part of the code is hidden in the
perpendicular direction.
[0054] Furthermore, in the first embodiment, various costs (labor,
etc.) for creating sample images can be reduced by performing
machine learning using artificial images created by computer
graphics as sample images to generate the detector.
Second Embodiment
[0055] In the second embodiment, an example of integration of local
regions taking the directions of the local regions into account
will be described. In the following, the difference from the first
embodiment will be mainly described and components having similar
functions as in the first embodiment will be designated by the same
names and reference numerals as in the first embodiment, and the
description thereof will not be repeated.
[0056] FIG. 12 is a configuration diagram illustrating an example
of a reader 50 according to the second embodiment. As illustrated
in FIG. 12, the reader 50 of the second embodiment is different
from the reader 10 of the first embodiment in a detecting unit 53
and an integrating unit 55.
[0057] The detecting unit 53 further detects the directions of the
respective detected local regions. Specifically, the detecting unit
53 uses a detector for which a local region containing a pattern
that is a part of a code (pattern) and the direction of which is
defined is an object to detect so as to detect the local regions
and the directions thereof from the image acquired by the acquiring
unit 11.
[0058] FIG. 13 is a diagram illustrating examples of objects (local
regions) to be detected by the detecting unit 53 according to the
second embodiment. In the example illustrated in FIG. 13, a local
region 61 in which black and white stripes are oriented in a
direction of 0 degrees, a local region 62 in which black and white
stripes are oriented in a direction of 45 degrees, a local region
63 in which black and white stripes are oriented in a direction of
90 degrees, and a local region 64 in which black and white stripes
are oriented in a direction of 135 degrees are illustrated as the
objects to be detected. In this case, the detecting unit 53 uses
four detectors, which are a detector for which the local region 61
is an object to be detected, a detector for which the local region
62 is an object to be detected, a detector for which the local
region 63 is an object to be detected, and a detector for which the
local region 64 is an object to be detected, to detect not only the
local regions but also the directions thereof (0 degrees, 45
degrees, 90 degrees and 135 degrees) from the image acquired by the
acquiring unit 11.
[0059] The integrating unit 55 integrates the local regions
according to the positions and the directions of the local regions
detected by the detecting unit 53 to obtain one or more integrated
regions. For example, for each of the local regions detected by the
detecting unit 53, the integrating unit 55 calculates a first
distance between local regions by using the position of a local
region and the position of another local region and also calculates
a second distance between local regions by using the direction of a
local region and the direction of another local region. The
integrating unit 55 then integrates local regions with a value
based on the first distance and the second distance being smaller
than a threshold to obtain one or more integrated regions.
[0060] While the integrating unit 55 in the second embodiment
integrates local regions by means of hierarchical clustering based
on center-to-center distances and differences in direction (angular
differences) between local regions, the method for integrating
local regions is not limited thereto. For example, the integrating
unit 55 generates a three-dimensional vector (x, y, d) from
two-dimensional coordinates (x, y) of center positions of the local
regions and the directions (angles) d of the local regions, and
performs clustering on the basis of a certain distance scale using
the three-dimensional vector. The distance may be a Euclidean
distance or a square distance treating three elements, that is, the
two-dimensional coordinates and the distance (angle) equally, or
may be a sum of the distance of the two-dimensional coordinates and
the distance of the directions (angles) that are calculated by
using different distance scales.
[0061] For example, it is assumed that the center position and the
direction of one local region are (x(1), y(1), d(1)) and the center
position and the direction of another local region are (x(2), y(2),
d(2)). In this case, the integrating unit 55 expresses the distance
between the one local region and the other local region by a square
distance D by using an equation (3).
D(x(1), y(1), d(1), x(2), y(2), d(2))=D1(x(1), y(1), x(2),
y(2))+D2(d(1), d(2)) (3)
[0062] In the equation, D1(x(1), y(1), x(2), y(2)) and D2(d(1),
d(2)) are obtained by using equations (4) and (5),
respectively.
D1(x(1), y(1), x(2), y(2))=(x(1)-x(2)).sup.2+(y(1)-y(2)).sup.2
(4)
D2(d(1), d(2))=(d(1)-d(2)).sup.2 (5)
[0063] The integrating unit 55 then integrates the local regions if
the calculated square distance D (the distance between the local
regions) is smaller than a threshold but does not integrate the
local regions if the square distance D is equal to or larger than
the threshold.
[0064] FIG. 14 is a diagram illustrating examples of the integrated
regions obtained by the integrating unit 55 according to the second
embodiment. In the example illustrated in FIG. 14, since two codes
21 and 31 are contained in the image acquired by the acquiring unit
11, the integrating unit 55 obtains two integrated regions, which
are an integrated region obtained by integrating a plurality of
local regions 73 and an integrated region obtained by integrating a
plurality of local regions 83. As described above, in the second
embodiment, integration of local regions of different codes can be
avoided and different codes can be obtained as separate codes even
when the codes are close to each other. This is because the
integrating unit 55 integrates local regions with the distance
therebetween, taking the distances and the directions of the local
regions into account, being smaller than a threshold but does not
integrate local regions with the distance therebetween being equal
to or larger than the threshold.
[0065] Alternatively, the integrating unit 55 may integrate local
regions with the first distance therebetween being smaller than a
first threshold and the second distance therebetween being smaller
than a second threshold to obtain one or more integrated regions.
In other words, the integrating unit 55 may integrate the local
regions if the calculated square distance D1 (first distance
between local regions) is smaller than the first threshold and the
calculated square distance D2 (second distance between local
regions) is smaller than the second threshold but otherwise not
integrate the local regions.
[0066] FIG. 15 is a flowchart illustrating an example of a flow of
procedures of a reading process performed by the reader 50
according to the second embodiment.
[0067] First, the acquiring unit 11 acquires an image containing a
code from the image input unit (step S201).
[0068] Subsequently, the detecting unit 53 detects a plurality of
local regions containing parts of the code and the directions of
the local regions from the image acquired by the acquiring unit 11
(step S203).
[0069] Subsequently, the integrating unit 55 integrates the local
regions detected by the detecting unit 53 on the basis of the
respective positions and directions thereof to obtain an integrated
region (step S205).
[0070] Subsequently, the reading unit 17 reads the integrated
region obtained by the integrating unit 55 (step S207).
[0071] As described above, in the second embodiment, since local
regions with a distance therebetween, taking the distances and the
directions of the local regions into account, being smaller than a
threshold are integrated while local regions with the distance
therebetween being equal to or larger than the threshold are not
integrated, integration of local regions of different codes can be
avoided and different codes can be obtained as separate codes even
when the codes are close to each other.
[0072] Hardware Configuration
[0073] FIG. 16 is a block diagram illustrating an example of a
hardware configuration of the reader according to the first and
second embodiments described above. As illustrated in FIG. 16, the
reader according to the embodiments described above includes a
control device 91 such as a CPU, a storage device 92 such as a read
only memory (ROM) and a random access memory (RAM), an external
storage device 93 such as a hard disk drive (HDD) and a solid state
drive (SSD), a display device 94 such as a display, various input
devices 95 such as a digital camera and buttons, and a
communication interface (I/F) 96, which can be implemented by a
hardware configuration utilizing a common computer system.
[0074] Programs to be executed by the reader according to the
embodiments described above are embedded on a ROM or the like in
advance and provided therefrom.
[0075] Alternatively, the programs to be executed by the reader
according to the embodiments described above are recorded on a
computer readable recording medium such as a CD-ROM, a CD-R, a
memory card, a DVD and a flexible disk (FD) in a form of a file
that can be installed or executed, and provided therefrom.
[0076] Still alternatively, the programs to be executed by the
reader according to the embodiments described above may be stored
on a computer system connected to a network such as the Internet,
and provided by being downloaded via the network. Still
alternatively, the programs to be executed by the reader according
to the embodiments described above may be provided or distributed
through a network such as the Internet.
[0077] The programs to be executed by the reader according to the
embodiments described above have modular structures for
implementing the units described above on a computer system. In an
actual hardware configuration, the control device 91 reads programs
from the external storage device 93 and executes the programs on
the storage device 92, for example, whereby the respective units
described above are implemented on a computer system.
[0078] As described above, according to the embodiments described
above, even distorted codes can be read.
[0079] While certain embodiments have been described, these
embodiments have been presented by way of example only, and are not
intended to limit the scope of the inventions. Indeed, the novel
embodiments described herein may be embodied in a variety of other
forms; furthermore, various omissions, substitutions and changes in
the form of the embodiments described herein may be made without
departing from the spirit of the inventions. The accompanying
claims and their equivalents are intended to cover such forms or
modifications as would fall within the scope and spirit of the
inventions.
[0080] For example, the order in which the steps in the flowcharts
in the embodiments described above are performed may be changed, a
plurality of steps may be performed at the same time or the order
in which the steps are performed may be changed each time the steps
are performed.
* * * * *