WO2006100720A1 - コード画像処理方法 - Google Patents

コード画像処理方法 Download PDF

Info

Publication number
WO2006100720A1
WO2006100720A1 PCT/JP2005/004955 JP2005004955W WO2006100720A1 WO 2006100720 A1 WO2006100720 A1 WO 2006100720A1 JP 2005004955 W JP2005004955 W JP 2005004955W WO 2006100720 A1 WO2006100720 A1 WO 2006100720A1
Authority
WO
WIPO (PCT)
Prior art keywords
code
block
dimensional code
processing method
recognition
Prior art date
Application number
PCT/JP2005/004955
Other languages
English (en)
French (fr)
Inventor
Nobuyasu Yamaguchi
Hirotaka Chiba
Tsugio Noda
Original Assignee
Fujitsu Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Limited filed Critical Fujitsu Limited
Priority to EP05726725A priority Critical patent/EP1868137B1/en
Priority to JP2007509074A priority patent/JP4531809B2/ja
Priority to PCT/JP2005/004955 priority patent/WO2006100720A1/ja
Publication of WO2006100720A1 publication Critical patent/WO2006100720A1/ja
Priority to US11/856,333 priority patent/US8254683B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2207/00Other aspects
    • G06K2207/1017Programmable

Definitions

  • the present invention relates to electronic image data in which a plurality of codes are arranged together with characters and diagrams, and a plurality of codes printed from image data read by an image reading apparatus such as a digital camera or a scanner.
  • the present invention relates to a code image processing method for recognizing codes and processing them collectively.
  • FIG. 1 shows image data having a two-dimensional code called a quick response (QR) code (see Non-Patent Document 1) in which code positioning symbols are arranged at the upper right, upper left, and lower left of the code area.
  • FIG. 7 is a schematic diagram for explaining a conventional code image processing method for recognizing a two-dimensional code by code image processing.
  • image data is scanned sequentially from the upper left corner in the horizontal direction for each small block area 30, and the small block area 30 enters the first two-dimensional code 40 by scanning, and the first two-dimensional code 40
  • the image feature in the region matches the two-dimensional code at the position 31 in the code 40, it is identified that the code exists in the block region, and recognition processing is performed on the neighborhood.
  • FIG. 1 (a) As shown in the figure, when scanning is continued after recognition, when a plurality of small block areas 30 are included in the first two-dimensional code 40, the position 32 in the first two-dimensional code 40 is also within the area. Because the feature of the image matches the two-dimensional code, the recognition process is performed again, and the same code is recognized multiple times. (See Patent Document 1)
  • FIG. 2 shows conventional code image processing for recognizing a two-dimensional code using layout template information in which the position information of the code included in the image data is recorded separately from the image data having the QR code. It is the schematic for demonstrating a method.
  • layout templates 80 and 90 (FIG. 2 (2)) that record position information of codes 60 and 70 included in the image data. b)) is prepared separately, and the template information is referenced during the recognition process (Fig. 2 (c)).
  • the read image data and the template must be accurately aligned, and the image must be read by a method that does not cause rotation or distortion of the image data.
  • Patent Document 1 Japanese Patent Application 2003-408104
  • Patent Document 2 Japanese Unexamined Patent Publication No. 2000-339407 (2nd column, 50th line, 1st column, 20th line, Fig. 5)
  • Non-patent document 1 JIS X0510 2D code symbol 1 QR code 1 Basic specification
  • the code image processing method of the present invention includes a block selection process for selecting image data in units of rectangular blocks, a block determination process for determining the force with which the selected block satisfies a predetermined condition, and a predetermined condition.
  • the code determination process for determining the type and characteristics of the code included in the block to be satisfied, and the code recognition process for recognizing the code whose type and characteristics are determined
  • a block scanning control process for controlling the block scanning procedure based on the code recognition result.
  • the code determination process and the code recognition process in the recognized code area are skipped without stopping by one code recognition. Search and recognition can be performed quickly and reliably.
  • the code position can be detected and recognized without the need for a separate template, so no matter how the code is arranged or when the scanned image data is tilted or misaligned. It is definitely possible to recognize.
  • FIG. 1 is a schematic diagram for explaining a conventional code image processing method.
  • FIG. 2 is a schematic diagram for explaining a conventional code image processing method for recognizing a two-dimensional code using information of a layout template in which code position information is recorded.
  • FIG. 3 is an explanatory diagram of the principle of the code image processing method according to the first embodiment of the present invention.
  • FIG. 4 is a diagram showing a typical example of a one-dimensional code and a two-dimensional code.
  • FIG. 5 is an explanatory diagram of a code determination method based on the number of edges.
  • FIG. 6 is an explanatory diagram of a code determination method based on inter-line correlation.
  • FIG. 7 is an explanatory diagram of a method for determining the presence / absence of rotation of a dimension code.
  • FIG. 8 is an overall flowchart of code type and characteristic discrimination processing.
  • FIG. 9 is a detailed flowchart of one-dimensional code determination processing.
  • FIG. 10 is a detailed flowchart of a dimension code rotation determination process.
  • FIG. 11 is a detailed flowchart of a two-dimensional code determination process.
  • FIG. 12 is a schematic diagram for explaining a code image processing method according to the first embodiment of the present invention.
  • FIG. 13 is a diagram illustrating the principle of a boundary detection method for a two-dimensional code.
  • FIG. 14 is an explanatory diagram of a cell width detection method.
  • FIG. 15 is an explanatory diagram of a first white continuous length detection method.
  • FIG. 16 is an explanatory diagram of a second white continuous length detection method.
  • FIG. 17 is an explanatory diagram of a second white continuous length detection operation within a code.
  • FIG. 18 is an explanatory diagram of a second white continuous length detection operation at a code boundary.
  • FIG. 19 is an explanatory diagram of the position of the start point of the code boundary detection process.
  • FIG. 20 is an explanatory diagram of code boundary detection in four directions, top, bottom, left and right.
  • FIG. 21 is an explanatory diagram of a threshold setting method.
  • FIG. 22 is an explanatory diagram of a threshold value determining method for each region.
  • FIG. 23 is an overall flowchart of code boundary detection processing.
  • FIG. 24 is a detailed flowchart of a first white continuous length detection process.
  • FIG. 25 is a detailed flowchart of second white continuous length detection processing.
  • FIG. 26 is a flowchart for explaining processing in the block running control process shown in FIG. 3.
  • FIG. 27 is a schematic diagram for explaining a code image processing method according to a second embodiment of the present invention.
  • FIG. 28 is a diagram for explaining setting of reference coordinates according to the second embodiment of the present invention.
  • FIG. 29 is a flowchart for explaining a code image processing method according to the second embodiment of the present invention.
  • FIG. 30 is a schematic diagram for explaining a code image processing method according to the third embodiment of the present invention.
  • FIG. 31 is a flowchart for explaining a code image processing method according to the third embodiment of the present invention.
  • FIG. 32 is a diagram for explaining loading of a program into a computer according to the present invention.
  • FIG. 3 is a diagram for explaining the principle of the code image processing method according to the first embodiment of the present invention.
  • the basic processing block of the present invention includes a block selection process 1 for selecting image data in units of rectangular blocks, a block determination process 2 for determining the force that the selected block satisfies a predetermined condition, and a predetermined condition.
  • the type of code contained in the block Code determination process 3 for determining characteristics, code recognition process 4 for recognizing codes whose types and characteristics are determined, and block scanning control process 5 for controlling the block scanning procedure based on the result of code recognition 5 It has.
  • the result output process 6 outputs the result after the recognition process of all the codes is completed through the block scanning controlled by the block scanning control process 5.
  • block selection process 1 image data is divided into small block areas (rectangular block units) and scanned, and a block is selected to search for a code.
  • block discrimination process 2 as a predetermined condition among the blocks selected in the block selection process 1, it is determined whether the variance of the gradation values of the pixels in the block is within a predetermined range, Alternatively, it is determined whether the ratio of black pixels to white pixels in the block is within a predetermined range.
  • the code type of the one-dimensional code or the two-dimensional code is determined.
  • the code type is determined to be a one-dimensional code, is the characteristic of the one-dimensional code, for example, whether it is in a rotated state? Determine whether or not.
  • the code recognition process 4 the code is recognized if it is determined in the code determination process 3 that the code is included in the block area.
  • the block scanning control process 5 controls the block scanning procedure based on the code recognition result in the code recognition process 4. This will be described in detail with reference to the flowchart shown in FIG.
  • FIG. 4 is a diagram illustrating a typical example of a one-dimensional code and a two-dimensional code.
  • a one-dimensional code is a code consisting of a combination of parallel straight lines with different thicknesses and intervals.
  • a two-dimensional code is a code in which data is converted into cells and arranged two-dimensionally. Generally, it corresponds to multiple pixels.
  • the two-dimensional code in Fig. 4 is a two-dimensional code called a quick response (QR) code, and is provided with code positioning symbols at the upper right, upper left, and lower left of the code area.
  • QR quick response
  • the one-dimensional code and the two-dimensional code are both printed using two colors such as white and black that have a large contrast difference.
  • the area ratio of the two colors is close to 1: 1. Therefore, there is a feature that the gradation value variation (dispersion) or standard deviation of the pixel becomes large.
  • the surface occupied by the character color with respect to the background The product ratio is reduced, and the variation in the gradation value of the pixel is also reduced.
  • the gradation value of the pixel takes an arbitrary value, and the variation in gradation value is small.
  • the code is created so that the ratio of the area of white and black color is within a predetermined range, for example, 50% ⁇ 10%. Therefore, by detecting a block in which the ratio of black and white pixels in the block falls within a predetermined range, it is possible to detect only a region including the two-dimensional code.
  • FIG. 5 is an explanatory diagram of a code determination method based on the number of edges.
  • data is represented by a combination of parallel straight lines. Therefore, if pixels are extracted on a line that is perpendicular to the straight line, that is, the bar, the line is located anywhere in the code.
  • a two-dimensional code data is expressed by a combination of two-dimensionally arranged light and dark dots (cells), and the light and darkness is made as uniform as possible inside the code. Whether the pixels on the line are extracted or the pixels on the vertical line are extracted, the number of edges as the point at which the gradation value of the pixel changes suddenly does not change much. . In addition, when pixels on a line are taken out in an area where characters are printed, there are places where edges do not exist, such as between characters / lines, and their characteristics are clearly different from the code area.
  • FIG. 6 is an explanatory diagram of a code determination method based on inter-line correlation.
  • a one-dimensional code the cross-correlation between a straight line perpendicular to the bar in the code area and a parallel line nearby
  • the value of the cross-correlation between the force S which increases the value
  • the straight line parallel to the bar and the parallel line in the vicinity of it is small.
  • the force that considers two lines inside the black bar or inside the white bar as two vertical lines, passing through the inside of the black bar and passing through the inside of the white bar The same applies to cross-correlation with the line.
  • the two-dimensional code is characterized in that the value of the cross-correlation is small both between two horizontal lines or between two vertical lines. Even in the area where characters and photos are printed, there is almost no correlation as much as in the case of one-dimensional codes.
  • FIG. 7 is an explanatory diagram of a method for determining the presence / absence of rotation in a one-dimensional code.
  • a one-dimensional code the force to perform barcode recognition using data for one line in the direction orthogonal to the bar that originally forms the code. In the rotated state, the line direction is parallel to the bar direction and correct code recognition is not possible. Therefore, it is necessary to detect the presence or absence of rotation of the cord.
  • the one-dimensional code in the image data is in the horizontal direction or is rotated by 90 °.
  • code discrimination it is possible to accurately detect only a region including a one-dimensional code or a two-dimensional code by appropriately combining a plurality of judgment conditions described above.
  • the number of monochrome pixels, the number of edges, the correlation, and the like may vary to some extent between the one-dimensional code and the two-dimensional code, but in the present embodiment each predetermined value is different.
  • the range is processed without distinguishing between the one-dimensional code and the two-dimensional code. As a result, it is not necessary to divide the processing for each discrimination, and as a result, it is possible to perform code discrimination at high speed with a simple processing sequence.
  • FIG. 8 is an overall flowchart of the code type and characteristic determination process.
  • the block of interest is first selected from the input image data (Sll).
  • Blocks are selected in order from an arbitrary position in the image. In many cases, scanning is generally performed by sequentially scanning from the upper left corner, or scanning is performed from the center of the image toward the periphery. Due to the characteristics of the processing target, selecting a block from a position where the possibility that the code exists is more likely to detect the code more quickly and shorten the processing time.
  • SD standard deviation
  • S12 A standard deviation for the gradation value of the pixels in the block is calculated (S12), and it is determined whether the value exceeds a predetermined value SDcode (S13). If this is the case, the horizontal edge number HEdge is calculated (S14), the vertical edge number VEdge is calculated (S15), and these values exceed the predetermined value EDG Emin. Is determined (S16).
  • the black pixel ratio BPRatio is calculated (S17), and the horizontal line correlation HSoukan is calculated ( S18), the vertical line correlation VSoukan is calculated (S19), and it is determined whether or not the black pixel ratio exceeds the predetermined minimum value BPRATIOmin and is less than the predetermined maximum value BPRATIOmax (S20).
  • the block is determined to be a code area (S22), and then it is determined whether the code area is a one-dimensional code (S23). The determination of the one-dimensional code is described in more detail in FIG.
  • step S22 If the determination condition regarding the black pixel ratio is not satisfied, the correlation between horizontal lines or the vertical It is determined whether or not the correlation between the direct lines exceeds a predetermined minimum value SOUKANmin (S21), and if any of the correlations between the lines exceeds a predetermined minimum value, the processing after step S22 is performed. Is done.
  • the decoding process is performed assuming that the one-dimensional code is rotating (S25), the process is terminated, and it is determined that there is no rotation (horizontal). In the case where it is detected, the decoding process is performed assuming that the one-dimensional code is in the normal state, that is, in the horizontal direction (S26), and the process ends.
  • the code area is not a one-dimensional code, it is determined whether or not the area is a two-dimensional code (S27). If the code area is a two-dimensional code, a decoding process is performed on the two-dimensional code. (S28), the process is terminated.
  • step S13 If the standard deviation is less than or equal to a predetermined value in step S13, if both the number of horizontal edges and the number of vertical edges are less than or equal to a predetermined minimum value in step S16, the correlation between horizontal lines is determined in step S21. Or if any of the correlations between the vertical lines is less than or equal to the minimum value, or if it is determined in step S27 that the code is not a two-dimensional code, the process returns to step S11, the next block is selected, and the steps after step S12 are selected. The process is repeated. In step S27, it is basically impossible to determine that the code is not a two-dimensional code. However, in such a case, it is assumed that there is some error, and the processing after step S11 is repeated. Also, if it is determined in step S24 that there is no code, it is regarded as an error and the processing from step S11 is repeated.
  • FIG. 9 is a detailed flowchart of the one-dimensional code determination process in step S23 of FIG.
  • a predetermined value S31
  • This predetermined value is the same as that in step S13 of FIG. 8, for example. If it exceeds the predetermined value, it is determined whether at least one of the number of horizontal edges and the number of vertical edges exceeds a predetermined minimum value (S32). This predetermined minimum value is the same as in step S16.
  • step S21 If the number of edges exceeds a certain minimum value, whether the correlation between horizontal lines or the correlation between vertical lines exceeds a certain minimum value (same as step S21) Is determined (S33). If it exceeds, it is determined as a one-dimensional code region (S34), the process is terminated, and the process proceeds to step S24 in FIG.
  • step S31 The standard deviation in step S31, both the number of horizontal edges and the number of vertical edges in step S32, and both the horizontal line correlation and the vertical line correlation in step S33 are less than the corresponding predetermined values, respectively. If it is determined, it is determined that the code is not a one-dimensional code (S35), the process ends, and the process proceeds to step S27 in FIG.
  • FIG. 10 is a detailed flowchart of the rotation presence / absence determination process in step S24 of FIG.
  • the process is started in the figure, it is first determined whether or not the number of horizontal edges exceeds a predetermined minimum value and the correlation between horizontal lines exceeds a predetermined minimum value (S37).
  • This determination is a condition that the one-dimensional code becomes horizontal as described on the left side of FIG. 7.
  • the number of vertical edges exceeds a predetermined minimum value
  • This condition corresponds to the rotation state of the one-dimensional code on the right side of FIG. If this condition is not satisfied, the one-dimensional code is determined to be in the horizontal direction (S41), and the process proceeds to step S26 in FIG.
  • step S38 corresponds to a case where the one-dimensional code is in an oblique direction, for example, in a direction rotated by 90 ° in the horizontal direction.
  • step S40 it is determined whether or not the same determination condition as in step S38 is satisfied (S40). If satisfied, and in step S39, the correlation between the horizontal lines is a vertical line. If it is determined that the correlation is less than or equal to the inter-correlation, it is determined that the one-dimensional code is rotating (S42), and the process proceeds to step S25 in FIG. If the determination condition is not satisfied in step S40, it is determined that there is no code (S43), and the processing after step S11 in FIG. 8 is repeated assuming that some error has occurred.
  • FIG. 11 is a detailed flowchart of the two-dimensional code determination process in step S27 of FIG.
  • step S45 if the standard deviation is less than the predetermined value in step S45, at least one of the number of horizontal edges or the number of vertical edges in step S46, or the black pixel ratio is predetermined in step S47. If it is not between the minimum value and the predetermined maximum value, it is determined that the code is not a two-dimensional code (S49), and the processes after step S11 in FIG. 8 are repeated.
  • determination is performed using a common value for the one-dimensional code and the two-dimensional code as a predetermined minimum value such as the number of horizontal edges and the number of vertical edges. Forces to be taken Of course, it is also possible to execute processing by distinguishing the value for the one-dimensional code and the value for the two-dimensional code as these predetermined values.
  • the semi-U constant condition in the one-dimensional code determination process in FIG. 9 is included in steps S 13, S 16, and S 21 in FIG. 8. For example, when the determination condition in step S 21 is satisfied, the processing target block Can be determined to be a one-dimensional code region, and the processing for determining whether or not the one-dimensional code is rotated in step S24 can be performed.
  • FIG. 12 is a schematic diagram for explaining the code image processing method according to the first embodiment of the present invention.
  • a two-dimensional code is searched while sequentially scanning every small block region 300 in the horizontal direction from the upper left corner of the image data. If the small block region 300 enters the first two-dimensional code 100 by scanning, and the feature of the image in the region matches the two-dimensional code at position 310 in the first two-dimensional code 100, When the code is present in the block area, the recognition process is continued for the neighborhood, and when the two-dimensional code is successfully recognized, the area of the first two-dimensional code 100 is further extracted (FIG. 12). (See (a)). This will be described later.
  • FIG. 12 See (a)
  • the second two-dimensional code 200 is searched continuously by continuing the striking for each small block region 300. At that time, if the area of the first two-dimensional code 100, which is a recognized code, is used, the search is continued by skipping that area. This will also be described later. By repeating this operation, the second two-dimensional code 200 can be found at high speed.
  • the block discrimination process and code recognition process in the skipped small block area can be reduced, and the search process for all two-dimensional codes on the image data can be speeded up.
  • the recognition of the two-dimensional code is executed in the order of the code area extraction process, the resolution conversion process, and the decoding process.
  • code area extraction process code internal coordinates are detected, then the cell width is detected, and finally the code boundary detection process is performed.
  • the resolution conversion process is a process that converts 1-cell data of the code image into 1-pixel data.
  • FIG. 13 is a principle explanatory diagram of a boundary detection method for a two-dimensional code. If optical distortion or out-of-focus occurs when obtaining image data, the QR code positioning symbol may not be detected correctly.
  • the white area around the code that is, By detecting the quiet zone 102, the boundary of the two-dimensional code can be detected.
  • a QR code there is a white area (quiet zone) with a width of 5 cells around the code (related description is shown in Fig. 28), and the quiet zone is hardly affected by optical distortion or defocusing. Thus, it is possible to correctly detect the boundary of the two-dimensional code.
  • the small block region 300 enters the first two-dimensional code 100 by scanning, and the feature of the image in the region is examined at a position 310 in the first two-dimensional code 100.
  • the continuous length of the white area and black area is detected in the vertical and horizontal directions from the position 310 in the two-dimensional code 100, and the distribution is calculated according to the frequency of the length, and the frequency exceeds a certain value.
  • the minimum continuous length within the range is obtained as the cell width. This will be explained with reference to FIG.
  • FIG. 14 is an explanatory diagram of a cell width detection method.
  • the continuous length of the white area and black area is detected from the appropriate point in the two-dimensional code in the vertical and horizontal directions, and the distribution is calculated according to the frequency of the length. Smallest continuous in the range The long length is obtained as the cell width.
  • the continuous length that is not related to the cell width may be detected inside the image due to the effect of blurring or noise. Therefore, the continuous length with a small value is ignored and the frequency exceeds a certain value.
  • the minimum continuous length in the range is obtained as the cell width. It is assumed that the white and black cell widths are the same in the two-dimensional code.
  • FIG. 15 is an explanatory diagram of a first white continuous length detection method for detecting a code boundary.
  • the image is scanned in one direction from the appropriate point inside the two-dimensional code in any direction, up and down, left and right, and the continuous white length of white cells is detected.
  • the left side is scanned, and the 5 cell width length is detected as the first white continuous length.
  • FIG. 16 is an explanatory diagram of a second white continuous length detection method for detecting a code boundary.
  • the second white continuous length is detected in the direction intersecting with the first white continuous length detected in FIG.
  • FIGS. 17 and 18 are explanatory diagrams of a code boundary detection method as the second white continuous length.
  • FIG. 17 is an explanatory diagram of a second white continuous length detection operation targeting a point on a certain circumference around a point on the first white continuous length inside the code.
  • FIG. 18 is an explanatory diagram of a second white continuous length detection operation at the code boundary. Since a quiet zone exists at the code boundary as described above, a white continuous length longer than the diameter of the circle for detecting the second white continuous length can be detected. Actually, as will be described later, when a white continuous length as long as the diameter of such a circle is detected, the line segment is further extended to both sides, and all points on the extended line segment are white. Or not, all white The line segment is detected as the second white continuous length in the quiet zone of the two-dimensional code.
  • FIG. 19 is an explanatory diagram of the position of the start point of the boundary detection process.
  • the first white continuous length detection process for detecting code boundaries starts at an appropriate point in the code. If a point outside the code is used as the starting point, boundary detection processing will be performed in the area of the chart or character other than the two-dimensional code. This starting point is located corresponding to the block determined to be a two-dimensional code.
  • FIG. 20 is an explanatory diagram of two-dimensional code boundary detection in four directions, up, down, left, and right. As described above, the image is scanned in the vertical and horizontal directions from the start point of the boundary detection process, and the first white continuous length and the second white continuous length are detected. Boundary in four directions (up, down, left, and right) corresponding to the screen is detected.
  • the inclination angle in the image of the two-dimensional code can be obtained.
  • the boundary can be regarded as a straight line, and the inclination angle of the code can be obtained from the inclination.
  • the position of the positioning symbol is identified using the detection result of the boundary, The inclination angle of the two-dimensional code can also be calculated from the position.
  • FIG. 21 is an explanatory diagram of a threshold value determination method for distinguishing between white cells and black cells.
  • the black and white of the cell are accurately determined when the threshold is fixed, for example, 128 in the middle of 256 gradations. Sometimes it cannot be determined. For example, when the amount of light irradiation is small, the range of gradation values is lowered to a low level as a whole, and blurring or crushing occurs. In order to eliminate the effects of such fading and collapse, the threshold value determination method shown in Fig. 21 is used.
  • a two-dimensional code is often expressed in binary values of white and black.
  • 2 in a bright region and a dark region as shown in FIG. Two peaks occur.
  • the frequency is equal to or greater than a certain value, and the middle (average value) of the gradation values corresponding to the leftmost gradation value peak and the right gradation value peak is determined as the threshold value.
  • the gradation value of the cell of interest and its surrounding cells are compared, and the difference is greater than or equal to a certain value.
  • FIG. 22 is an explanatory diagram of a threshold value determination method for each region.
  • a certain threshold is used for the entire image area of the 2D code to distinguish between black cells and white cells due to the size of the image area of the 2D code and the influence of shadows caused by the light irradiation direction, etc. May not be determined accurately.
  • the threshold value is changed between the darker part and the lighter part to distinguish between black cells and white cells. There is a need to do.
  • the first white continuous length and the second white continuous length are detected by correcting the threshold value every certain distance.
  • the scanning distance for performing this threshold value correction for example, the experiment can be repeated by changing the position of the light source and its intensity, and the appropriate distance can be determined.
  • FIG. 23 is an overall flowchart of the code boundary detection process.
  • the 2D code to be detected can be, for example, a force that is the above-mentioned QR code, and can also execute processing for other 2D codes.
  • step S71 a threshold area counter corresponding to the distance for updating the threshold is initialized to 0, and the coordinates nXPos and nYPos of the current processing target point are set.
  • the processing flowchart is described on the assumption that the image is moved leftward from the start point.
  • step S72 If it is determined in step S72 that the current point has not reached the left edge of the image, it is determined in step S73 whether the value of the threshold area counter has exceeded the value nThArea that requires the threshold update. And if so, to update the threshold nThresh in step S74 A threshold detection process is performed. The threshold detection process is performed by the method described in FIG.
  • step S76 Following the processing in step S74, after the threshold value counter value is initialized to 0 in step S75, and in step S73, if the counter value does not exceed the threshold update value, Then, the process proceeds to the first white continuous length detection process in step S76.
  • This process is described in detail in FIG. 24.
  • n WRange indicating the first white continuous length
  • threshold area counter value indicating the first white continuous length
  • current point coordinate value current point coordinate value
  • threshold nThresh The value of the variable is passed.
  • values other than the Y coordinate nYPos of the current point and the threshold value nThresh are updated in the first white continuous length detection process.
  • the counter value in the threshold area may exceed the value of nThArea during the first white continuous length detection process.
  • the first white continuous length is relatively short. It shall not be updated.
  • step S77 it is determined whether or not an error has occurred in step S77 in which the white continuous length is not detected in the first white continuous length detection process.
  • the process ends. If the detection of the first white continuous length is successful, the count value nWCount used for the end determination process of the second white continuous length detection is initialized to 0 in step S78, and the count is counted in step S79. It is determined whether or not the value is less than nWRange representing the first white continuous length, and if it is less, the second white continuous length is detected in step S80. For this process, the force explained in detail in Fig. 25. The X and Y coordinates of the current point and the threshold value are passed to this process.
  • step S81 it is determined whether or not the second white continuous length has been successfully detected. If successful, the process is terminated. If not successful, nWCount and the threshold area are determined in step S82. After the counter value is incremented and the X coordinate of the current point is decremented, the processing from step S79 is repeated.
  • the process of detecting the second white continuous length while moving the current point in the left direction on the line segment corresponding to the first white continuous length Will repeat.
  • the repetition of this process ends when the value of nWCount reaches the length of the first white continuous length, i.e., nWRange in step S79, and the processes in and after step S72 are performed again. Will be repeated.
  • FIG. 24 is a detailed flowchart of the first white continuous length detection process.
  • step S86 the X and Y coordinates of the current point are substituted into variables x and y, and in step S87 it is determined whether X has not reached the left end of the image data. If not, it is determined in step S88 whether the gradation value data at the coordinates x and y is less than the threshold value.
  • the gradation value for a bright cell that is, a white cell
  • the fact that the gradation value is less than the threshold indicates that the currently processed cell is Since it is black
  • the processes of the next steps S89 to S91 are repeated until a white cell is found.
  • step S89 the counter of the threshold area is incremented, and the coordinate X of the processing target cell is decremented.
  • step S90 it is determined whether or not the left end of the image has been reached as in step S87. In this case, it is determined in step S91 whether the gradation value is less than the threshold value as in S88. If it is less than the threshold value, the processes after step S89 are repeated.
  • step S91 If the gradation value is greater than or equal to the threshold value in step S91, and if the gradation value is equal to or greater than the threshold value in step S88, the coordinate X of the cell being processed in step S92 is the first white chain. Substituted for nXst indicating the X coordinate of the start point of the continuous length, and proceeds to the processing of step S93.
  • step S93 After the counter value of the threshold area is incremented in steps S93 to S95 and the X coordinate X of the cell being processed is decremented, the cell being processed has not reached the left edge of the image, or the cell is white. If these determinations are both established, these processes are repeated, and if the cell gradation value is equal to or lower than the threshold value and the cell is determined to be black in step S95.
  • step S96 the X coordinate X of the cell is substituted into nXed indicating the X coordinate of the end point of the first white continuous length.
  • step S97 n WRange indicating the length of the first white continuous length is obtained.
  • nErrFlagl indicating successful detection of the first white continuous length with the value of nXP os indicating the X coordinate of the cell being processed in the overall processing of Fig. 23 being the coordinate nXst of the start point of the first white continuous length
  • nErrFlagl is set to 1 and the process ends and a return is made.
  • step S9 After the flag indicating the success of detection of the first white continuous length is set to 11, that is, a value indicating failure, the process ends and a return is performed.
  • FIG. 25 is a detailed flowchart of the second white continuous length detection process in step S80 of FIG.
  • step S101 the coordinates x and y of the current cell to be processed are set as in step S86 of FIG.
  • step S102 a circle centered on the point determined by these coordinates is drawn, and a point on the circumference is obtained.
  • this circle is for detecting the second white continuous length as described above, and has a certain large diameter so that the second white continuous length is not detected inside the code. Is used.
  • step S103 j as the index of the point on the circumference is initialized to 0, and in step S104, the value of j is the number of points on the circumference obtained in step S102.
  • Circu Point Nu If it is less than m, it is determined in step S105 whether or not the gradation value Cdata [j] at the point on the circumference indicated by the index j is greater than or equal to a threshold value. If it is determined and is greater than or equal to the threshold value, that is, white, in step S106, the tone value CdataRev [j] of the point on the circumference indicated by the index j and the point that is symmetric with respect to the center of the circle Is determined to be greater than or equal to a threshold value.
  • step S107 If it is greater than or equal to the threshold, in step S107, all the colors of the points on the line segment connecting these two points are checked, and it is determined in step S108 whether or not they are all white.
  • step S109 an extension line is further drawn outside the line segment, and it is checked whether all the points on the extension line are white.
  • step S110 whether or not all the points are white. If all are white, in step S112, the value of the flag nErrFlag2 indicating successful detection of the second white continuous length is set to 1, and the process ends and a return is made.
  • the length of the extension line drawn in step S109 is, for example, a length that is twice the diameter of the length force circle of the entire line segment including the length of the extension line.
  • step S108 or In S110 when a point on the line segment or a part of the point on the extended line is not white, the value after j is incremented in Step S111, and the processes after Step S104 are repeated. That is, the second white continuous length detection process is continued while moving the point on the circumference obtained in step S102. If it is determined in step S104 that the processing for all points on the circumference has been completed, the detection of the second white continuous length has failed, so the flag value is set to 1 in step S113. Processing is terminated and a return is made.
  • FIG. 26 is a flowchart for explaining in detail the processing of the block running control process 5 shown in FIG.
  • the block running control process it is first determined whether or not code recognition has been performed in the target block (S121). If code recognition is not performed, the process moves to the next block (S124). When code recognition is performed, if the recognition is successful (S122), a recognized code area is set (S123). When recognition fails (S122), it moves to the next block (S124). If the next block force image data has moved out of the image data (S125), the process is terminated assuming that the entire area of the target image data has been searched. If the next block force is within the recognized code area that has been set (S126), the process moves to the next block and the process continues (S124). In this way, it is possible to shorten the processing time for code search by skipping recognized code areas and performing processing.
  • FIG. 27 is a schematic diagram for explaining a code image processing method according to the second embodiment of the present invention.
  • a plurality of, for example, two two-dimensional codes are arranged in image data.
  • a plurality of two-dimensional codes for example, the first two-dimensional code 400 and the second two-dimensional code 500, each include processing information (for example, how to use each other's two-dimensional code) as related information in addition to the code data.
  • the “connecting” force and relative position information are stored in.
  • the second code is searched here. It is determined that there is a dimension code, and the first two-dimensional code 400 is recognized. For example, “X Central Hospital” is obtained as code data from the first two-dimensional code 400 based on the recognition result of the first two-dimensional code 400. (2) Next, detection of related code position information For example, position information “ ⁇ 400, ⁇ 600” is obtained as code data from the first two-dimensional code 400. (3) Based on this position information, code recognition of the second two-dimensional code 500 is performed.
  • code data for example, “received on May, 2004, 2004” is obtained from the second two-dimensional code 500.
  • “concatenation” and the method of connection are instructed as the designation process, so the code data of the second two-dimensional code 500 in the order of reading. Are connected and processed.
  • “X Central Hospital 2004 X Day X Received” is obtained as the output code data.
  • the code data is “concatenated” according to the designation processing based on the related information stored separately in a plurality of two-dimensional codes, and the code data is combined into one. Large data that cannot be stored with two two-dimensional codes can be stored, and the use of two-dimensional codes can be expanded.
  • FIG. 28 is a diagram for explaining setting of reference coordinates in the code image processing method according to the second embodiment of the present invention.
  • the position information stored in the two-dimensional code is first extracted.
  • one feature point of the 2D code (here, the lower left vertex) is the reference coordinate, that is, the origin of the coordinate
  • the direction of the 2D code (here, the left side and the lower side) is the axis (the left side upward is Y
  • the position (relative position) information is based on the feature value related to the size of the two-dimensional code (here, the size of one cell 105 of the two-dimensional code) with respect to the coordinates with the X axis as the axis and the lower side scanning direction.
  • the relative position information of the second two-dimensional code 500 as seen from the first two-dimensional code 400 is “(-400, -600)” with the cell size as the unit and the coordinate direction taken into account. Is described. In this way, position (relative position) information can be described without being affected by factors such as the size and inclination of the image data.
  • position (relative position) information can be described without being affected by factors such as the size and inclination of the image data.
  • the position of the related second two-dimensional code 500 is obtained based on the force S as the position (relative position) information. That is, the second two-dimensional code 500 shown in FIG. 27 can be found from the position information stored in the first two-dimensional code 400 that the position is on the lower left of the image data.
  • Two-dimensional code 500 code recognition can be performed. This gives you two In the block area existing between the two-dimensional codes, search by small blocks, block discrimination processing and code recognition processing can be reduced, and the processing speed can be increased.
  • the position (relative position) information can be used to accurately know the position of the related two-dimensional code, thus improving the recognition accuracy.
  • the position (relative position) information of the first two-dimensional code 400 viewed from the second two-dimensional code 500 is also stored in the second two-dimensional code 500 as position information, Even when scribing in units of small blocks starts from the lower left, the same procedure can be used to recognize two two-dimensional codes at high speed.
  • FIG. 29 is a flowchart for explaining the code image processing method according to the second embodiment of the present invention.
  • the block scanning is started and the block scanning is continued until the code recognition at the block position is executed (S132).
  • the code recognition at the block position is successful (S133)
  • the code data stored in the block position is analyzed to determine whether or not the position information of other related codes is included (S134). If the position information of another code is included, it moves to that position (S135) and performs code recognition (S136). If other code position information is included, repeat the block run as before (S138).
  • S137 When the entire area of the target image data has been searched (S137), it is determined whether or not processing information is included in the recognized code (S139). If processing information is included, processing according to the information is performed (S140).
  • FIG. 30 is a schematic diagram for explaining a code image processing method according to the third embodiment of the present invention.
  • the difference between the code image processing method according to the third embodiment shown in FIG. 30 and the code image processing method according to the second embodiment shown in FIG. 27 is that one of the two in the image data is operated by a pointing device such as a mouse. This is a point configured to specify the dimension code area. Since the other configuration is the same as that described in FIG. 27, description thereof is omitted here.
  • FIG. 31 is a flowchart for explaining the code image processing method according to the third embodiment of the present invention.
  • the position of one two-dimensional code for example, the first two-dimensional code 400 in the image data is designated by any method, for example, by operating a pointing device such as a mouse (S151). ).
  • the code data stored in the first two-dimensional code 400 is analyzed, and the position information of the other two-dimensional code, for example, the second two-dimensional code 500, is analyzed. Whether or not is included is determined (S153). If the position information of the two-dimensional code is included, the position is moved to that position (S154), and the two-dimensional code is recognized (S155).
  • the position information of the two-dimensional code is not included, the position of another two-dimensional code is designated (S157).
  • S156 it is determined whether or not the processing information is included in the recognized two-dimensional code (S158). If processing information is included in the two-dimensional code, processing according to the information is performed (S159).
  • FIG. 32 is a diagram for explaining loading of a program into a computer according to the present invention.
  • the computer system includes a central processing unit (CPU) 10, a read only memory (ROM) 11, a random access memory (RAM) 12, a communication interface 13, a storage device 14, an input / output device 15, a reading device 16 for a recording medium, And all of these are configured by a connected bus 17.
  • FIG. 6 Various types of storage devices such as a hard disk and a magnetic disk can be used as the storage device 14, and such a storage device 14 or ROM 11 can be used as shown in FIG. 6, the program stored in the medium shown in the flowcharts of FIGS. 29 and 31 is executed by the CPU 10 to detect a block in which a code including a one-dimensional / two-dimensional code in this embodiment exists. Enables discrimination of code type, code recognition, etc.
  • Such a program can be stored in, for example, the storage device 14 via the information provider 18 side network 19 and the communication interface 13, or on a commercially available recording medium 20 that is distributed. It is acceptable that it is stored, set in the reader 16 and executed by the CPU 10.
  • the code image processing method of the present invention even when a plurality of codes are included in the image data, the code discrimination process and the code recognition process in the recognized code area that does not stop with one code recognition. Since it is possible to search and recognize the entire code quickly and reliably, multiple 2D codes of any number, position and size can be used in a single document. Therefore, it is possible to expand the code usage form.

Description

明 細 書
コード画像処理方法
技術分野
[0001] 本発明は、文字や図表とともに複数のコードが配置された電子画像データや複数 のコードが印刷された文書をデジタルカメラやスキャナなどの画像読取装置で読み 取った画像データから、複数のコードを認識し、それらをまとめて処理するコード画像 処理方法に関する。
背景技術
[0002] 近年、一次元バーコード(特に断らない限り、以下、 "一次元コード"と称する)よりも 多くの情報を埋め込むことができる二次元バーコード(特に断らない限り、以下、 "二 次元コード"と称する)の普及が進んでいる。二次元コードでは、コード全体の二次元 配列データが分らなければ認識できなレ、ため、読取装置にはデジタルカメラやィメー ジスキャナのような画像読取装置が用いられてレ、る。
[0003] 二次元コードの普及に伴い、これまでの専用のラベルに印刷されたコードを読み取 るだけでなぐ文字や図表とともに任意に位置に任意の大きさのコードが印刷される 用途も増大している。また、 1枚の文書上に複数の二次元コードを配置して使用する 用途も増えつつある。
[0004] 図 1は、コード領域の右上、左上、および左下にコードの位置決め用シンボルが配 置されるクイックレスポンス(QR)コード(非特許文献 1参照)と呼ばれる二次元コード が有る画像データから、コード画像処理して二次元コードを認識する従来のコード画 像処理方法を説明するための概略図である。図 1において従来は、画像データを小 ブロック領域 30毎に左上隅から横方向に順次走査し、走査で小ブロック領域 30が第 1の二次元コード 40の内部に入って、第 1の二次元コード 40内の位置 31で領域内の 画像の特徴が二次元コードと合致する場合には、そのブロック領域にコードが存在す ると特定してその近傍に対して認識処理を行っていた。この場合、図 1 (a)に示すよう に、一度認識を終了すると、そこで処理を終了するため、コードが複数含まれている 場合でも最初に特定した 1つしか認識できないという問題が有った。また、図 1 (b)に 示すように、認識後に走査を継続した場合、第 1の二次元コード 40中に複数の小プロ ック領域 30が含まれるような時には、第 1の二次元コード 40内の位置 32でも領域内の 画像の特徴が二次元コードと合致するということで再び認識処理を行ってしまうため、 同一のコードを複数回認識してしまうという問題が有った。 (特許文献 1参照)
[0005] 図 2は、 QRコードが有る画像データとは別に画像データに含まれるコードの位置情 報を記録したレイアウトのテンプレートの情報を使用して二次元コードを認識する従 来のコード画像処理方法を説明するための概略図である。この従来例は図 2に示す ように、画像データ(図 2(a))とは別に、画像データに含まれるコード 60、 70の位置情 報を記録したレイアウトのテンプレート 80、 90 (図 2(b))を別途作製しておき、認識処 理時にテンプレートの情報を参照するようにしている(図 2(c))。この場合、レイアウト のテンプレートを別途作製しておき、読み取る文書に応じてレイアウトのテンプレート をいちいち選択する手間力 Sかかるという問題があった。さらに、読み取った画像デー タとテンプレートの位置合わせを正確に行うようにし、画像データに回転や歪みが発 生しない方法で画像を読み取らなければならないという課題もあった。 (特許文献 2 参照)
[0006] 特許文献 1:特願 2003-408104
特許文献 2:特開 2000-339407号公報 (第 2欄 50行一第 3欄 20行、図 5)
非特許文献 1 : JIS X0510 2次元コードシンボル一 QRコード一基本仕様 解説
発明の開示
[0007] 文字や図表とともに任意の位置に任意の数の二次元コードが配置された文書 の場合、デジタルカメラやイメージスキャナを用いて読み取りを行うと二次元コードに 加えて文字や図表の一部も画像データとして取り込まれてしまう。このため、画像デ ータに複数含まれる二次元コードを認識するには、まずコードが存在するそれぞれの 位置を特定し、特定した位置の近傍に対して順次コード認識処理を行う必要がある。
[0008] 本発明のコード画像処理方法は、画像データを矩形ブロック単位で選択するブロッ ク選択過程と、選択されたブロックが所定の条件を満たす力を判別するブロック判別 過程と、所定の条件を満たすブロック内に含まれるコードの種類及び特性を判定する コード判定過程と、種類及び特性が判定されたコードに対し認識を行うコード認識過 程と、コード認識結果に基づレ、てブロック走査の手順を制御するブロック走査制御過 程を含んでなることを特徴とする。
[0009] 本発明によれば、画像データにコードが複数含まれている場合でも、一つのコード 認識で止まることなく、認識したコード領域におけるコード判別処理及びコード認識 処理をスキップするので、コード全体の探索と認識を高速かつ確実に行うことが可能 である。また、テンプレートを別途用意しなくとも、コードの位置を検出して認識を行え るため、コードがどのように配置されていても、また読み取った画像データが傾いてい たり位置がずれていた場合でも間違いなく認識を行うことが可能である。
図面の簡単な説明
[0010] [図 1]従来のコード画像処理方法を説明するための概略図である。
[図 2]コードの位置情報を記録したレイアウトのテンプレートの情報を使用して二次元 コードを認識する従来のコード画像処理方法を説明するための概略図である。
[図 3]本発明の第 1の実施形態に係るコード画像処理方法の原理説明図である。
[図 4]一次元コードと二次元コードの典型例を示す図である。
[図 5]エッジ数によるコード判定方法の説明図である。
[図 6]ライン間相関によるコードの判定方法の説明図である。
[図 7]—次元コードの回転の有無の判定方法の説明図である。
[図 8]コード種類及び特性の判別処理の全体フローチャートである。
[図 9]一次元コード判定処理の詳細フローチャートである。
[図 10]—次元コード回転判定処理の詳細フローチャートである。
[図 11]二次元コード判定処理の詳細フローチャートである。
[図 12]本発明の第 1の実施形態に係るコード画像処理方法を説明するための概略図 である。
[図 13]二次元コードの境界検出方法の原理的な説明図である。
[図 14]セル幅の検出方法の説明図である。
[図 15]第 1の白連続長検出方法の説明図である。
[図 16]第 2の白連続長検出方法の説明図である。
[図 17]コード内部における第 2の白連続長検出動作の説明図である。 [図 18]コード境界における第 2の白連続長検出動作の説明図である。
[図 19]コード境界検出処理の開始点の位置の説明図である。
[図 20]上下左右 4方向のコード境界検出の説明図である。
[図 21]閾値の設定方法の説明図である。
[図 22]領域ごとの閾値決定方法の説明図である。
[図 23]コード境界検出処理の全体フローチャートである。
[図 24]第 1の白連続長検出処理の詳細フローチャートである。
[図 25]第 2の白連続長検出処理の詳細フローチャートである。
[図 26]図 3に示すブロック走查制御過程の処理を説明するためのフローチャートであ る。
[図 27]本発明の第 2の実施形態に係るコード画像処理方法を説明するための概略図 である。
[図 28]本発明の第 2の実施形態に係る基準座標の設定を説明するための図である。
[図 29]本発明の第 2の実施形態に係るコード画像処理方法を説明するためのフロー チャートである。
[図 30]本発明の第 3の実施形態に係るコード画像処理方法を説明するための概略図 である。
[図 31]本発明の第 3の実施形態に係るコード画像処理方法を説明するフローチヤ一 トである。
[図 32]本発明におけるプログラムのコンピュータへのローデイングを説明する図であ る。
発明を実施するための最良の形態
以下、本発明の実施形態を、図面を参照しながら詳細に説明する。
[実施例 1]
図 3は、本発明の第 1の実施形態に係るコード画像処理方法の原理説明図である。 同図において本発明の基本処理ブロックは、画像データを矩形ブロック単位で選択 するブロック選択過程 1と、選択されたブロックが所定の条件を満たす力を判別する ブロック判別過程 2と、所定の条件を満たすブロック内に含まれるコードの種類及び 特性を判定するコード判定過程 3と、種類及び特性が判定されたコードに対し認識を 行うコード認識過程 4と、コード認識結果に基づレ、てブロック走査の手順を制御する ブロック走査制御過程 5を備えている。そして、ブロック走査制御過程 5により手順制 御されたブロック走查を経て全てのコードの認識処理が終了した後に結果出力過程 6から結果が出力される。
[0012] 本実施形態に係るブロック選択過程 1においては、画像データを小ブロック領域 (矩 形ブロック単位)に区切って走査し、ブロックを選択してコードを探索する。次に、プロ ック判別過程 2においては、ブロック選択過程 1で選択したブロックのうち所定の条件 として、ブロック内の画素の階調値の分散が所定の範囲内にあることを判別するか、 または、ブロック内の黒画素と白画素の比率が所定の範囲内にあるかを判別する。
[0013] またコード判定過程 3においては、一次元コードか二次元コードかのコード種類を 判定し、また一次元コードと判定された時には、その一次元コードの特性、たとえば 回転した状態にあるか否かを判定する。そしてコード認識過程 4においては、コード 判定過程 3でブロックの領域内にコードが含まれていると判定された場合にコードの 認識を行う。また本実施形態に係るブロック走査制御過程 5は、コード認識過程 4で のコード認識結果に基づいて、ブロック走査の手順を制御する。これについては、図 26に示すフローチャートを用いて詳しく説明する。
[0014] 図 4は、一次元コードと二次元コードの典型例を示す図である。一次元コードは、異 なる太さや間隔をもつ平行な直線の組合せによるコードであり、二次元コードは、デ ータがセル化されて二次元状に配置されたコードであり、 1つのセルは一般に複数の 画素に対応する。図 4の二次元コードは、クイックレスポンス(QR : Quick Response)コ ードと呼ばれる二次元コードであり、コード領域の右上、左上、および左下にコードの 位置決め用シンボルを設けてレ、る。
[0015] 図 4に示すように一次元コード、および二次元コードは、共に白、黒のようにコントラ ストの差が大きい 2つの色を用いて印刷されている。またコード内の領域では 2つの 色の占める面積の比率が 1対 1に近くなるように配列がなされている。そのため画素 の階調値のばらつき (分散)、または標準偏差が大きくなるという特徴がある。
[0016] これに対して文字が印刷されている領域では、文字の色が下地に対して占める面 積の比率が小さくなり、画素の階調値のばらつきも小さくなる。また写真などが印刷さ れている領域では、画素の階調値が任意の値をとり、階調値のばらつきは小さくなる 。この特徴を利用して、ブロック内の画素の階調値のばらつきが所定の範囲内となる ブロックを検出することによって一次元コード、および二次元コードが含まれる領域を 検出することが可能となる。
[0017] 特に二次元コードの領域内では、白と黒の色の面積の比率が所定の範囲、例えば 50% ± 10%以内となるようにコードが作成されている。そこでブロック内の白黒画素 の比率が所定の範囲内になるブロックを検出することによって、二次元コードが含ま れる領域のみを検出することが可能となる。
[0018] 図 5は、エッジ数によるコード判定方法の説明図である。一次元コードでは、平行な 直線の組合せによってデータが表現されるために、この直線、すなわちバーに垂直 なライン上で画素を取り出した場合には、そのラインがコード内部のどこにあっても、 ライン上の画素の階調値が急変する点(エッジ)がラインに直交するバーの数に対応 して存在することになる力 バーに平行なライン上の画素を取り出す場合にはエッジ が存在しないという特徴がある。
[0019] 一方、二次元コードでは、二次元に配置された明暗ドット(セル)の組合せによって データが表現され、コード内部ではできるだけ明暗が一様になるようになっているた め、水平方向のライン上の画素を取り出した場合にも、また垂直方向のライン上の画 素を取り出した場合にも、画素の階調値が急変する点としてのエッジの数があまり変 わらないという特徴がある。また文字が印刷されている領域においてライン上の画素 を取り出した場合には、文字間/行間など、エッジが存在しない場所があり、コード領 域とはその特徴が明らかに異なってくる。
[0020] そこで本実施形態では、ブロック内の水平 Z垂直ライン上のエッジ数が所定の範囲 内となるブロックを検出することによって、精度よく一次元 z二次元コードが含まれる 領域のみを検出することが可能となり、また一次元コードと二次元コードとを容易に区 另リすること力 sできる。
[0021] 図 6は、ライン間相関によるコードの判定方法の説明図である。一次元コードでは、 コード領域内でバーに垂直な直線とその近傍の平行な直線との間での相互相関の 値が大きくなる力 S、バーに平行な直線とその近傍の平行直線との間での相互相関の 値が小さくなるという特徴がある。図 6では、垂直な 2つのラインとして、黒のバーの内 部、あるいは白のバーの内部に 2つのラインを考えている力 黒のバーの内部を通る ラインと、白のバーの内部を通るラインとの間で、相互相関をとつた場合も同様である
[0022] これに対して二次元コードでは、水平な 2本のラインの間でも、あるいは垂直な 2本 のラインの間でも、相互相関の値はともに小さくなるという特徴がある。また文字や写 真が印刷されている領域においても、一次元コードの場合ほど強い相関を示すこと はほとんどない。
[0023] そこでブロック内の水平ライン間、あるいは垂直ライン間の相関の値が所定の範囲 内となるブロックを検出することによって、一次元/二次元コードが含まれる領域を精 度よく検出することが可能となると共に、一次元コードと二次元コードとを容易に区別 すること力 S可言 となる。
[0024] 図 7は、一次元コードにおける回転の有無の判定方法の説明図である。前述のよう に一次元コードに対しては、本来コードを形成するバーに対して直交する方向の 1ラ イン分のデータを使用してバーコード認識を行うことになる力 一次元コードが 90° 回転した状態となっていると、ラインの方向がバーの方向と平行になり、正しいコード 認識ができなレ、。そこでコードの回転の有無を検出する必要がある。
[0025] 図 7において、一次元コードが本来の方向、すなわち水平方向に存在する場合に は、水平方向エッジ数は白バーと黒バーの数に対応する数だけ存在するのに対して 、垂直方向エッジ数は 0となる。また水平ライン間の相関は大きくなる力 垂直ライン 間の相関は小さくなるという特徴がある。
[0026] これに対して一次元コードが 90° 回転している場合には、水平方向エッジ数は 0で あるのに対して、垂直方向エッジ数は白バーと黒バーの数に対応した数だけ存在し 、水平ライン間相関は小さいのに対して、垂直ライン間相関は大きくなるという特徴が ある。
[0027] この性質を利用して、画像データ内で一次元コードが水平方向を向いている力 \あ るいは 90° 回転した状態となっているかを精度よく判別することが可能となる。 実際のコードの判別においては、上記に説明した判定条件を複数個適宜組み合わ せることによって、精度よく一次元コードや二次元コードが含まれる領域のみを検出 すること力 S可能となる。また特に白黒画素数、エッジ数、相関などは、それらのとり得 る値の範囲が一次元コードと二次元コードとの間である程度異なってくる場合もある が、本実施形態ではそれぞれの所定の範囲を一次元コードと二次元コードとの間で 区別することなく処理を行うものとして説明する。これによつてそれぞれの判別のため の処理を分けたりする必要が無くなり、結果として簡単な処理シーケンスで高速にコ ード判別を行うことが可能となる。
[0028] 図 8は、コード種類及び特性の判別処理の全体フローチャートである。同図におい て処理が開始されると、まず入力画像データの中から注目するブロックが選択される (Sll)。ブロックは画像の任意の位置から順番に選択してレ、くものとする。通常は左 上の隅から順次走査して選択したり、画像中央から周辺部に向かって走査したりする 場合が多い。処理対象の特性上、コードが存在する可能性がより高い位置からブロッ クを選択する方がコードをすぐに検出でき、処理時間を短くすることができる。
[0029] ブロック内の画素の階調値に対する標準偏差(SD : Standard Deviation)が算出さ れ(S12)、その値があらかじめ定められた値 SDcodeを超えているかが判定され(S 13)、超えている場合には水平方向エッジ数 HEdgeが算出され(S14)、垂直方向ェ ッジ数 VEdgeが算出され(S15)、これらの値があらかじめ定められた所定の値 EDG Eminを超えてレ、るかが判定される(S16)。
[0030] 水平方向エッジ数、垂直方向エッジ数のいずれか 1つ以上が所定の値を超えてい る場合には、黒画素率 BPRatioが算出され(S17)、水平ライン間相関 HSoukanが 算出され (S18)、垂直ライン間相関 VSoukanが算出され (S19)、黒画素率が所定の 最小値 BPRATIOminを超えており、かつ所定の最大値 BPRATIOmax未満である か否かが判定される(S20)。
[0031] この判定条件が成立している場合には、そのブロックがコード領域と判定され (S22 )、その後そのコード領域が一次元コードであるか否かが判定される(S23)。この一次 元コードの判定については図 9でさらに詳細に説明する。
[0032] 黒画素率に関する判定条件が成立しない場合には、水平ライン間相関、または垂 直ライン間相関がそれぞれ所定の最小値 SOUKANminを超えているか否かが判 定され (S21)、いずれかのライン間相関が所定の最小値を超えている場合にはステ ップ S22以降の処理が行われる。
[0033] コード領域が一次元コードであると判定された場合にはその一次元コードが回転し た状態であるか否かが判定される(S24)。その判定の詳細については後述する。回 転ありと判定された場合には、一次元コードが回転しているものとしてのデコード処理 が行われて(S25)、処理を終了し、また、回転がなレ、(水平)と判定された場合には一 次元コードが通常状態、すなわち水平方向にあるものとしてのデコード処理が行われ て(S26)、処理を終了する。
[0034] コード領域が一次元コードでないと判定されると、その領域が二次元コードであるか 否かが判定され (S27)、二次元コードである場合には二次元コードに対するデコード 処理が行われ(S28)、処理を終了する。
[0035] ステップ S13で標準偏差が所定の値以下である場合、ステップ S16で水平方向エツ ジ数、垂直方向エッジ数のいずれもが所定の最小値以下である場合、ステップ S21 で水平ライン間相関、または垂直ライン間相関のいずれもがその最小値以下である 場合、およびステップ S27で二次元コードでないと判定された場合には、ステップ S11 に戻り、次のブロックを選択してステップ S12以降の処理が繰り返される。なおステツ プ S27で二次元コードでないと判定されることは基本的にはありえなレ、が、このような 場合にはなんらかのエラーがあったものとして、ステップ S11以降の処理が繰り返され る。またステップ S24において、コードが無いと判定された場合にも、エラーと見なして ステップ S11以降の処理が繰り返される。
[0036] 図 9は、図 8のステップ S23における一次元コード判定処理の詳細フローチャートで ある。同図において処理が開始されると、まず画素の階調値の標準偏差 SD ( Standard Deviation)が所定の値を超えているか否かが判定される(S31)。この所定 の値は例えば図 8のステップ S13におけると同じとする。所定の値を超えている場合 には水平方向エッジ数、または垂直方向エッジ数の少なくともいずれか 1つが所定の 最小値を超えているか否かが判定される(S32)。この所定の最小値もステップ S 16に おけると同じとする。 [0037] いずれ力 1つのエッジ数が所定の最小値を超えている場合には、水平ライン間相 関、または垂直ライン間相関が所定の最小値 (ステップ S21と同じ)を超えているか否 力が判定され (S33)、超えている場合には一次元コード領域と判定されて(S34)、処 理を終了し、図 8のステップ S24の処理に移行する。
[0038] ステップ S31で標準偏差、ステップ S32で水平方向エッジ数と垂直方向エッジ数の 両者、ステップ S33で水平ライン間相関と垂直ライン間相関の両者がそれぞれ対応す る所定の値以下であると判定された場合には、一次元コードでないと判定され (S35) 、処理を終了し、図 8のステップ S27の処理に移行する。
[0039] 図 10は、図 8のステップ S24における回転有無の判定処理の詳細フローチャートで ある。同図において処理が開始されると、まず水平方向エッジ数が所定の最小値を 超えており、かつ水平ライン間相関が所定の最小値を超えているか否かが判定され る(S37)。この判定は、図 7の左側で説明したように一次元コードが水平方向となって レ、る条件であり、この条件が成立すると、垂直方向エッジ数が所定の最小値を超えて おり、かつ垂直ライン間相関が所定の最小値を超えているか否かが判定される(S38 )。この条件は図 7の右側にある一次元コードの回転状態に対応する。この条件が成 立しない場合には一次元コードは水平方向と判定され(S41)、図 8のステップ S26の 処理に移行する。
[0040] ステップ S38の判定条件が成立する場合は、一次元コードは水平方向でもなぐ 90 ° 回転した方向でもなぐ例えば斜めの方向になっている場合に相当する。この場合 には水平ライン間相関 HSoukanが垂直ライン間相関 VSoukan超えているか否かが 判定され(S39)、超えている場合には一次元コードが水平方向と判定され(S41)、図 8のステップ S26の処理に移行する。
[0041] ステップ S37で判定条件が成立しない場合には、ステップ S38におけると同じ判定 条件が成立するか否かが判定され(S40)、成立する場合、およびステップ S39で水平 ライン間相関が垂直ライン間相関以下であると判定された場合には、一次元コードが 回転していると判定され(S42)、図 8のステップ S25の処理に移行する。またステップ S40で判定条件が成立しない場合には、コードなしと判定され (S43)、何らかのエラ 一が発生したものとして図 8のステップ S11以降の処理が繰り返される。 [0042] 図 11は、図 8のステップ S27における二次元コード判定処理の詳細フローチャート である。同図において処理が開始されると、画素の階調値の標準偏差が所定の値を 超えているか否かが判定され(S45)、超えている場合には水平方向エッジ数と垂直 方向エッジ数のいずれもが所定の最小値を超えているか否かが判定される(S46)。 超えている場合には黒画素率が所定の最小値を超えており、かつ所定の最大値未 満であるか否かが判定される(S47)。この条件が成立する場合には二次元コードと判 定され(S48)、図 8のステップ S28の処理に移行する。これに対してステップ S45で標 準偏差が、ステップ S46で水平方向エッジ数、または垂直方向エッジ数の少なくとも いずれか 1つがそれぞれ所定の値以下の場合、またはステップ S47で黒画素率が所 定の最小値と所定の最大値の間に入っていない場合には、二次元コードでないと判 定され(S49)、図 8のステップ S11以降の処理が繰り返される。
[0043] 以上のフローチャートにおいては、前述のように例えば水平方向エッジ数や、垂直 方向エッジ数などの所定の最小値として一次元コードと二次元コードに対して共通の 値を用いて判定を行うものとした力 これらの所定の値として一次元コードに対する値 と二次元コードに対する値を区別して処理を実行することも当然可能である。また、 例えば図 9の一次元コード判定処理における半 U定条件は図 8のステップ S 13、 S 16、 および S21に含まれており、例えばステップ S21の判定条件が成立した時点で処理対 象ブロックは一次元コード領域であると判定して、ステップ S24の一次元コードの回転 有無の判定処理を行うことも可能である。
[0044] 図 12は、本発明の第 1の実施形態に係るコード画像処理方法を説明するための概 略図である。同図において、画像データの左上隅から横方向に小ブロック領域 300毎 に順次走査しながら二次元コードを探索する。走査で小ブロック領域 300が第 1の二 次元コード 100の内部に入って、第 1の二次元コード 100内の位置 310で領域内の画 像の特徴が二次元コードと合致する場合には、そのブロック領域中にコードが存在す ると特定してその近傍に対して認識処理を続行し、二次元コードの認識に成功したら 、さらに第 1の二次元コード 100の領域を抽出する(図 12 (a)参照)。これについては 後述する。第 1の二次元コード 100の領域抽出に成功したら、図 12 (b)に示すように、 引き続き、小ブロック領域 300毎の走查を続け、第 2の二次元コード 200を探索する。 その際、認識済みコードである第 1の二次元コード 100の領域にさし力かった時には、 その領域をスキップして探索を続ける。これについても後述する。この操作を繰り返し て、第 2の二次元コード 200を高速に見つけることができる。
[0045] これにより、スキップした小ブロック領域でのブロック判別処理及びコード認識処理 を削減することができ、画像データ上の全二次元コードの探索処理を高速化すること が可能となる。
[0046] ここで二次元コードの認識処理について概説すると、二次元コードの認識は、コー ド領域抽出処理、解像度変換処理、デコード処理の順に実行される。まずコード領域 抽出処理では、コード内部座標検出が行われ、次にセル幅の検出が行われ、最後に コード境界の検出処理が行われる。解像度変換処理は、コード画像の 1セルのデー タを 1画素のデータに変換する処理である。
[0047] 図 13は、二次元コードの境界検出方法の原理的な説明図である。画像データを得 る際に光学歪みやピントのボケが発生すると QRコードの位置決め用シンボルが正し く検出できなくなることがあつたが、本実施形態においてはコードの回りに存在する白 領域、すなわちクワイエツトゾーン 102を検出することによって、二次元コードの境界を 検出することが可能となる。例えば、 QRコードではコードの周囲に 5セルの幅を持つ 白領域 (クワイエツトゾーン)(図 28に関連記載あり)が存在し、そのクワイエツトゾーン は光学歪みやピントのボケにほとんど影響されないため、二次元コードの境界を正し く検出することが可能となる。
[0048] 図 12において走査で小ブロック領域 300が第 1の二次元コード 100の内部に入って 、第 1の二次元コード 100内の位置 310で領域内の画像についてその特徴を調べる。 まず、二次元コード 100内の位置 310を基点に上下左右の方向に白領域、および黒 領域の連続長の長さを検出し、その長さの頻度によって分布を求め、頻度がある一 定値以上になる範囲内で最小の連続長の長さをセル幅として求める。これを図 14を 用いて説明する。
[0049] 図 14は、セル幅の検出方法の説明図である。同図において二次元コード内部の適 当な点から上下左右の方向に白領域、および黒領域の連続長の長さを検出し、その 長さの頻度によって分布を求め、頻度がある一定値以上になる範囲内で最小の連続 長の長さをセル幅として求めている。画像内部ではピンボケやノイズなどの影響によ つて、セル幅とは関係のない連続長が検出されることがあるために、値の小さな連続 長は無視し、ある特定の値以上の頻度を持つ範囲で最小の連続長をセル幅として求 めることになる。なお二次元コードにぉレ、て白と黒のセル幅は同じであるとする。
[0050] 図 15は、コード境界を検出するための第 1の白連続長の検出方法の説明図である 。同図において二次元コードの内部の適当な点から上下左右のいずれ力、 1つの方向 に画像を走査し、白セルが連続する白連続長の検出を行う。図 15では左側への走 查を行い、第 1の白連続長として 5セル幅長を検出することとなる。
[0051] 図 16は、コード境界を検出するための第 2の白連続長検出方法の説明図である。
ここでは図 15で検出された第 1の白連続長と交差する方向に第 2の白連続長の検出 を行う。第 1の白連続長上の 1つの点を中心としてあらかじめ定められた直径の円を 描き、その円周上の 1つの点と、その点と中心に関して対称な点とを結ぶ線分上の点 が全て白であれば、その線分を第 2の白連続長の一部として検出する。
[0052] 第 1の白連続長上の 1つの点を中心として、あらかじめ定められた直径の円周上の 各点に対応してそのような第 2の白連続長が検出されない場合には、図 15の第 1の 白連続長の線分の上で円の中心となる点を移動させて、その点を中心とするあらかじ め定められた直径の円周上の点に対応して第 2の白連続長を検出する処理を繰り返 す。その処理を二次元コードを含む画像の例えば左端の位置まで繰り返す。
[0053] 図 17および図 18は第 2の白連続長としてのコード境界の検出方法の説明図である 。図 17は、コード内部の第 1の白連続長上の点を中心とした或る定められた円周上 の点を対象とする第 2の白連続長検出動作の説明図である。第 2の白連続長を検出 するための円の直径をある程度以上大きくすることによって、コードの内部ではそのよ うな長い白連続長を第 2の白連続長として検出することはできない。
[0054] 図 18は、コード境界における第 2の白連続長の検出動作の説明図である。前述の ようにコード境界においてクワイエツトゾーンが存在するため、第 2の白連続長を検出 するための円の直径以上の長さの白連続長が検出可能である。実際には後述するよ うにこのような円の直径と同じ長さの白連続長が検出された時点で、さらにその線分 を両側に伸ばし、延長された線分上の点が全て白であるか否かが検出され、全て白 である場合に、その線分を二次元コードのクワイエツトゾーンにおける第 2の白連続長 として検出する。
[0055] 図 19は、境界検出処理の開始点の位置の説明図である。コード境界を検出するた めの第 1の白連続長検出処理は、コード内部の適当な点を開始点として開始される。 コード外部の点を開始点とすれば、二次元コード以外の図表や文字の領域において 境界検出処理が行われてしまうことになる。この開始点は、二次元コードと判定された ブロックに対応してその位置が特定される。
[0056] 図 20は、上下左右 4方向の二次元コード境界検出の説明図である。前述のように 境界検出処理の開始点から上下左右の各方向に対して画像を走査し、第 1の白連 続長、および第 2の白連続長を検出することによって、二次元コードのクワイエツトゾ ーンに相当する上下左右 4方向における境界が検出される。
[0057] このように上下左右の境界が検出されると二次元コードの画像内における傾き角度 を求めることもできる。例えばその簡略的な方法として、境界を直線と見なして、その 傾きからコードの傾き角度を求めることもでき、より精密な方法として境界の検出結果 を用いて位置決め用シンボルの位置を特定し、その位置から二次元コードの傾き角 度を計算することもできる。
[0058] 図 21は、白セルと黒セルとを区別するための閾値の決定方法の説明図である。二 次元コードに対する光の照射量が少ない場合や、センサの感度が低い場合などにお いては、閾値を、例えば 256諧調の中間の 128のように固定した場合にセルの黒、 白を正確に判定することができないことがある。例えば、光の照射量が少ない場合に は階調値のレンジが全体的に低いレベルに下がり、かすれやつぶれが発生する。そ のようなかすれやつぶれの影響を排除するために、図 21に示す閾値の決定方法を 用いる。
[0059] 一般的に二次元コードは白と黒の 2値で表現されたものが多ぐ入力画像の各セル に対する階調値のヒストグラムでは図 21に示されるように明るい領域と暗い領域で 2 つのピークが生ずる。頻度がそれぞれある一定値以上であり、最も左側にある階調値 のピークと、右側にある階調値のピークとに対応する階調値の中間(平均値)を閾値 の値として決定することによって、かすれやつぶれの影響を排除して、白セルと黒セ ルとの判定を正確に行うことが可能となる。
[0060] 黒セルと白セルの判定方法として、このような閾値を用いる代わりに、注目セルとそ の周囲のセルの階調値とを比較し、その差がある一定値以上である場合には階調値 の大きなセルを白セル、小さなセルを黒セルと判定する方法を用いることもできる。
[0061] 図 22は、領域ごとの閾値決定方法の説明図である。二次元コードの画像領域の大 きさや、光の照射方向などによって生じる影の影響などによって、黒セルと白セルを 判別するために二次元コードの画像領域全体に一定の閾値を用いた場合には、正 確な判別ができない場合がある。すなわち光源の位置などの影響によって、影の濃 い部分と薄い部分とができるような場合には、影の濃い部分と薄い部分とで閾値を変 更して黒セルと白セルとの判別を行う必要がある。
[0062] 例えば図 22において右方向に画像を走査していく場合に、例えばある一定距離毎 に閾値を修正して第 1の白連続長、および第 2の白連続長の検出処理を行う。この閾 値修正を行う走査距離については、例えば光源の位置やその強度などを変更して実 験を繰り返し、適切な距離を決定することができる。
[0063] 以上で概略を説明した、二次元コード境界検出方法について図 23—図 25のフロ 一チャートを用いてさらに詳細に説明する。図 23は、コード境界検出処理の全体フロ 一チャートである。ここで検出対象となる二次元コードは、例えば前述の QRコードで あるものとする力 他の二次元コードに対する処理も実行することができる。
[0064] 図 23において処理が開始されると、まずステップ S71で閾値を更新する距離に対 応する閾値エリアのカウンタが 0に初期化され、現在の処理対象の点の座標 nXPos 、および nYPosにコード内部の走査開始点、すなわち上述の説明において検出され た二次元コード領域の内部の点の座標 r nx ct、および r ny ctが代入され、ステツ プ S72で現在の点の X座標 nXPosが、画像の左端の点の X座標 nXEd ( = 0)以上で あるか否かが判定される。なおここでは図 20で説明したように開始点から左方向に画 像を走查するものとして、処理のフローチャートを説明する。
[0065] ステップ S72で現在の点が画像の左端に達していないと判定されると、ステップ S7 3で閾値エリアのカウンタの値が閾値の更新が必要となる値 nThAreaを超えたか否 かが判定され、超えている場合にはステップ S74で閾値 nThreshを更新するために 閾値の検出処理が行われる。閾値の検出処理は図 21で説明した方法によって行わ れる。
[0066] ステップ S74の処理に続いて、ステップ S75で閾値エリアのカウンタの値が 0に初期 化された後に、またステップ S73でカウンタの値が閾値更新を行うべき値を超えてい ない場合には、ステップ S76の第 1の白連続長検出処理に移行する。この処理につ いては図 24で詳細に説明する力 この検出処理に対応して第 1の白連続長を示す n WRange,閾値エリアのカウンタの値、現在の点の座標値、および閾値 nThreshの 変数の値が引き渡される。なおこれらの値のうち、現在の点の Y座標 nYPos、および 閾値 nThresh以外の値は第 1の白連続長検出処理において更新される。なお第 1の 白連続長検出処理の処理中に閾値エリアのカウンタ値が nThAreaの値を超える可 能性もある力 ここでは第 1の白連続長は比較的短ぐこの処理中には閾値は更新さ れないものとする。
[0067] 第 1の白連続長検出処理が終了すると、ステップ S77で第 1の白連続長検出処理 において白連続長が検出されず、エラーとなったか否かが判定され、エラーとなった 場合には処理を終了する。第 1の白連続長の検出に成功した場合には、ステップ S7 8で第 2の白連続長検出の終了判定処理に用いられるカウント値 nWCountの値が 0 に初期化され、ステップ S79でそのカウント値が第 1の白連続長を表す nWRange未 満であるか否かが判定され、未満であるときにはステップ S80で第 2の白連続長の検 出が行われる。この処理については図 25で詳細に説明する力 この処理に対して現 在の点の X座標と Y座標、および閾値の値が引き渡される。
[0068] 続いてステップ S81で第 2の白連続長の検出に成功したか否かが判定され、成功し た場合には処理を終了し、成功しない場合にはステップ S82で nWCountと閾値エリ ァのカウンタの値がインクリメントされ、現在の点の X座標がデクリメントされた後にステ ップ S79以降の処理が繰り返される。
[0069] すなわち図 15および図 16で説明したように、第 1の白連続長に対応する線分上で 左方向に現在の点を移動させながら、第 2の白連続長を検出する処理を繰り返すこと になる。この処理の繰り返しはステップ S79で nWCountの値がこの第 1の白連続長 の長さ、すなわち nWRangeに達した時点で終了し、再びステップ S72以降の処理が 繰り返されることになる。
[0070] 図 24は、第 1の白連続長検出処理の詳細フローチャートである。同図において処 理が開始されると、ステップ S86で現在の点の X座標、 Y座標が変数 x、 yに代入され 、ステップ S87で Xが画像データの左端に達していないかが判定され、達していない 場合にはステップ S88で座標 x、 yの点の階調値のデータが閾値未満であるか否か が判定される。本実施形態では、明るいセル、すなわち白いセルに対する階調値が 、黒いセルに対する階調値より大きくなつているため、階調値が閾値未満であること は、現在処理対象となっているセルが黒であることになり、白セルを見つけるまで次 のステップ S89から S91の処理が繰り返される。
[0071] ステップ S89では、閾値エリアのカウンタがインクリメントされ、処理対象セルの座標 Xがデクリメントされ、ステップ S90でステップ S87と同様に画像の左端に達していな いか否かが判定され、達していない場合にはステップ S91で S88と同様に階調値が 閾値未満であるか否かが判定される。閾値未満である場合にはステップ S89以降の 処理が繰り返される。
[0072] ステップ S91で階調値が閾値以上である場合、およびステップ S88で同様に階調 値が閾値以上である場合には、ステップ S92で処理中のセルの座標 Xが第 1の白連 続長の開始点の X座標を示す nXstに代入され、ステップ S93の処理に移行する。
[0073] ステップ S93から S95において閾値エリアのカウンタの値がインクリメントされ、処理 中のセルの X座標 Xがデクリメントされた後に、処理中のセルが画像の左端に達して いないか、またセルが白であるかの判定が行われ、これらの判定が共に成立する場 合には、これらの処理が繰り返され、ステップ S95でセルの階調値が閾値以下であり 、セルが黒と判定されると、ステップ S96でセルの X座標 Xが第 1の白連続長の終りの 点の X座標を示す nXedに代入され、ステップ S97で第 1の白連続長の長さを示す n WRangeが求められ、図 23の全体処理において処理中のセルの X座標を示す nXP osの値が第 1の白連続長の開始点の座標 nXstの値とされ、第 1の白連続長の検出 の成功を示すフラグ nErrFlaglの値が 1とされて処理を終了し、リターンが行われる。
[0074] ステップ S87、ステップ S90、およびステップ S94のいずれかにおいて処理中のセ ルの X座標を示す Xが画像データの左端 nXEdに達したと判定されると、ステップ S9 8で第 1の白連続長の検出の成功を示すフラグが一 1、すなわち失敗を示す値に設定 された後に処理を終了してリターンが行われる。
[0075] 図 25は、図 23のステップ S80における第 2の白連続長検出処理の詳細フローチヤ ートである。同図において処理が開始されると、まずステップ S101で図 24のステップ S86と同様に現在の処理対象のセルの座標 x、 yの設定が行われる。ステップ S102 でこれらの座標によって決まる点を中心とした円が描かれ、その円周上の点が求めら れる。ここでこの円は前述のように第 2の白連続長を検出するためのものであり、コー ド内部で第 2の白連続長が検出されることがないように、ある程度大きな直径を持つ 円が使用される。
[0076] 続いてステップ S103で円周上の点のインデックスとしての jが 0に初期化され、ステ ップ S104で jの値がステップ S102で求められた円周上の点の数 Circu Point Nu m未満であるか否かが判定され、未満である場合にはステップ S105で、インデックス jで示される円周上の点における階調値 Cdata[j]の値が閾値以上であるか否かが判 定され、閾値以上、すなわち白である場合にはステップ S106で、インデックス jによつ て示される円周上の点と円の中心に関して対称な位置にある点の階調値 CdataRev [j]が閾値以上であるか否かが判定される。閾値以上である場合にはステップ S107 でこれらの 2つの点を結ぶ線分上の点の色が全て調べられ、全て白であるか否かが ステップ S108で判定され、全て白である場合には前述のようにステップ S109で、そ の線分の外側にさらに延長線が引かれ、延長線上の点が全て白であるかが調べられ 、ステップ S110でそれらの点が全て白であるか否かが判定され、全て白である場合 にはステップ S112で第 2の白連続長の検出成功を示すフラグ nErrFlag2の値が 1 に設定された後に処理を終了し、リターンが行われる。なおステップ S109で引かれる 延長線の長さは、例えば延長線の長さを含む全体の線分の長さ力 円の直径の 2倍 となるような長さとされる。
[0077] ステップ S105で、円周上のインデックス jで示される点、またはステップ S106でそ の点と円の中心に関して対称な点の階調値が閾値未満である時、ステップ S 108、ま たは S110で線分上の点、または延長線上の点の一部が白でない時には、ステップ S111で jの値がインクリメントされた後にステップ S104以降の処理が繰り返される。 すなわちステップ S102で求められた円周上の点を移動させながら、第 2の白連続長 の検出処理が続けられる。そしてステップ S 104で円周上の点に対する処理が全て 終了したと判定されると、第 2の白連続長の検出に失敗したことになるため、ステップ S 113でフラグの値カ 1とされて処理を終了し、リターンが行われる。
[0078] 図 26は、図 3に示すブロック走查制御過程 5の処理を詳しく説明するためのフロー チャートである。図 26においてブロック走查制御過程では、まず対象ブロックにおい てコード認識が行われたか否かを判別する(S121)。コード認識が行われていない場 合には、次のブロックに移動する(S124)。コード認識が行われている場合、認識に 成功(S122)していれば、認識済みのコード領域を設定する(S123)。認識に失敗(S 122)した場合は、次のブロックに移動する(S124)。移動した次のブロック力 画像デ ータの内部からはみ出した(S125)場合には、対象画像データの全領域を探索し終 えたものとして処理を終了する。次のブロック力 設定されている認識済みのコード領 域内である(S126)場合には、更に次のブロックへ移動して処理を続ける(S124)。こ のように、認識済みのコード領域をスキップして、処理を行うことで、コード探索に係る 処理時間を短縮することが可能となる。
[実施例 2]
図 27は、本発明の第 2の実施形態に係るコード画像処理方法を説明するための概 略図である。本実施形態では、画像データに複数、例えば 2つの二次元コードが配 置される例について説明する。複数の二次元コード、例えば第 1の二次元コード 400 と第 2の二次元コード 500には、それぞれコードデータの外に、関連情報として互いの 処理方法(例えば、互いの二次元コードをどのように「連結」する力 および相対位置 情報が格納される。
[0079] 図 27の読取り画像において、(1)読み取った画像データに対して小ブロック領域
300を画像データの左上隅力 横方向に走査しながら二次元コードを探索し、走査で 小ブロック領域 300が画像データ右上の第 1のコード 400の内部に入った場合には、こ こに二次元コードが有ると判定され、第 1の二次元コード 400の認識が行われる。第 1 の二次元コード 400の認識結果に基づいて第 1の二次元コード 400からコードデータ として、例えば「〇 X中央病院」を得る。(2)次いで関連するコードの位置情報の検出 を行い、第 1の二次元コード 400からコードデータとして、例えば位置情報「-400、 -600」を得る。(3)この位置情報に基づいて、第 2の二次元コード 500のコード認識を 行う。第 2の二次元コード 500からコードデータとして、例えば「2004年〇月 X日受信 分」を得る。(4)ここで、第 1の二次元コード 400の関連情報には、指定処理として「連 結」と連結の仕方が指示されているから、読取った順に第 2の二次元コード 500のコー ドデータを「連結」して処理する。(5)その結果、出力するコードデータは、例えば「〇 X中央病院 2004年〇月 X日受信分」を得ることになる。こうすることで、複数の二次 元コードに分けて格納した関連情報に基づレ、て、その指定処理にしたがってコード データを「連結」処理することにより、コードデータを一つにまとめ、一つの二次元コー ドでは格納しきれない大きなデータでも格納可能となり二次元コードの利用を拡大さ せること力 S可肯 となる。
[0080] 図 28は、本発明の第 2の実施形態に係るコード画像処理方法における基準座標の 設定を説明するための図である。二次元コードの認識が成功した場合、まず二次元 コードに格納されている位置情報を取り出す。位置情報には、二次元コードの 1つの 特徴点(ここでは左下の頂点)を基準座標、すなわち座標原点に、二次元コードの向 き(ここでは、左辺と下辺)を軸(左辺上向きを Y軸、下辺走査方向を X軸)にした座標 に対して、二次元コードの大きさに関する特徴量(ここでは二次元コードの 1つのセル 105の大きさ)を基準に位置 (相対位置)情報が記述される。図 27において第 1の二 次元コード 400から見た第 2の二次元コード 500の相対位置情報は、セルの大きさを 単位にかつ座標の向きを考慮して、「(-400、 -600)」と記述される。このようにすること で、画像データの大きさや傾きなどの要因に影響されること無く位置 (相対位置)情報 を記述することが可能である。もちろん、画像データの上の二次元コード以外の特徴 点を基準座標として記述することも可能であるが、この場合は、基準座標を認識する 処理が別途必要となる。
[0081] 次に、位置(相対位置)情報にした力 Sい、関連した第 2の二次元コード 500の位置を 求める。すなわち、図 27に示した第 2の二次元コード 500は第 1の二次元コード 400に 格納された位置情報によって座標上でその位置が画像データ左下に有ることが分る ので、直ちに第 2の二次元コード 500のコード認識を行うことができる。これにより、 2つ の二次元コードの間に存在するブロック領域では小ブロックによる探索、ブロック判別 処理及びコード認識処理を削減することができ、処理を高速化することが可能となる 。また、位置 (相対位置)情報によって関連する二次元コードの位置を正確に知ること ができるため、認識精度も向上する。
[0082] なお、第 2の二次元コード 500にも位置情報として、第 2の二次元コード 500から見た 第 1の二次元コード 400の位置(相対位置)情報を格納しておくことによって、小ブロッ ク領域単位の走查を左下から開始した場合でも同様の手順にて 2つの二次元コード の認識を高速に行うことが可能である。
[0083] 第 1の二次元コード 400および第 2の二次元コード 500の認識に成功したら、両方の 二次元コードに格納されている処理方法に基づいて情報を処理する。ここでは、コー ドデータ 1をコードデータ 2に「連結」して出力するとレ、う処理方法が指示されてレ、るの で、二次元コード 400から取り出したコードデータに二次元コード 500から取り出したコ ードデータを結合して 1つのコードデータとして出力する。これにより、処理方法につ レ、て別途指示しなくても、コードデータを適切に処理することが可能となる。また、一 つの二次元コードでは表現しきれないコードデータでも、複数の二次元コードに分割 して格納して処理することで二次元コードの活用をさらに拡大させることが可能となる
[0084] 図 29は本発明の第 2の実施形態に係るコード画像処理方法を説明するためのフロ 一チャートである。同図において、ブロック走査を開始しブロック位置でのコード認識 が実行(S132)されるまでブロック走査を続ける(S131)。ブロック位置でのコード認識 に成功(S133)したら、その中に格納されているコードデータを解析し、関連する他の コードの位置情報が含まれているかどうかを判別する(S134)。他のコードの位置情 報が含まれている場合は、その位置に移動(S 135)して、コード認識を行う(S 136)。 他のコードの位置情報が含まれてレ、なレ、場合は、これまで通りブロック走查を繰り返 す(S138)。対象画像データの全領域を探索し終えたら(S137)、認識したコードに処 理情報が含まれているかどうかを判別する(S139)。処理情報が含まれている場合に は、その情報に従った処理を行う(S140)。
[実施例 3] 図 30は、本発明の第 3の実施形態に係るコード画像処理方法を説明するための概 略図である。図 30に示す第 3の実施形態に係るコード画像処理方法が図 27に示す 第 2の実施形態に係るコード画像処理方法との違いは、マウスなどのポインティング デバイス操作で画像データ内の 1つの二次元コード領域を指定できるよう構成した点 である。その以外の構成は、図 27で説明したのと同様なのでここでの説明を省略す る。
[0085] 図 31は本発明の第 3の実施形態に係るコード画像処理方法を説明するフローチヤ ートである。同図において、まず画像データに対して、任意の方法で、例えば、マウス などのポインティングデバイス操作で画像データ内の 1つの二次元コード、例えば第 1の二次元コード 400の位置を指定する(S151)。次いで第 1の二次元コード 400の認 識に成功(S152)したら、その中に格納されているコードデータを解析し、他の関連 する二次元コード、例えば第 2の二次元コード 500の位置情報が含まれているかどう かを判別する(S 153)。二次元コードの位置情報が含まれている場合は、その位置に 移動(S154)して、二次元コードの認識を行う(S155)。二次元コードの位置情報が含 まれていない場合は、他の二次元コードの位置の指定を行う(S157)。対象画像デー タ中に含まれている全ての二次元コードの認識を終えたら(S 156)、認識した二次元 コードに処理情報が含まれているかどうかを判別する(S158)。二次元コードに処理 情報が含まれている場合には、その情報に従った処理を行う(S159)。
[0086] 以上において本発明のコード画像処理方法についてその詳細を説明した力 この 方法を実行するコード読取装置は当然一般的なコンピュータシステムをその主要構 成部として構成することが可能である。
[0087] 図 32は、本発明におけるプログラムのコンピュータへのローデイングを説明する図 である。同図においてコンピュータシステムは中央処理装置(CPU) 10、リードオンリ メモリ(ROM) 11、ランダムアクセスメモリ(RAM) 12、通信インタフェース 13、記憶装 置 14、入出力装置 15、記録媒体の読取り装置 16、およびこれらの全てが接続され たバス 17によって構成される。
[0088] 記憶装置 14としてはハードディスク、磁気ディスクなど様々な形式の記憶装置を使 用することができ、このような記憶装置 14、または ROM11に図 8 図 11、図 23— 2 6、図 29、図 31のフローチャートに示された媒体に格納されたプログラムが CPU10 によって実行されることにより、本実施形態における一次元/二次元コードを含むコ ードが存在するブロックの検出、コードの種類の判別、コードの認識などが可能となる
[0089] このようなプログラムは、情報提供者 18側力もネットワーク 19、および通信インタフ エース 13を介して、例えば記憶装置 14に格納されることも、また市販され、流通して いる記録媒体 20に格納され、読み取り装置 16にセットされて、 CPU10によって実行 されることぁ可肯である。
産業上の利用可能性
[0090] 本発明のコード画像処理方法によれば、画像データにコードが複数含まれている 場合でも、一つのコード認識で止まることなぐ認識したコード領域におけるコード判 別処理及びコ一ド認識処理をスキップするので、コード全体の探索と認識を高速力 つ確実に行うことが可能であるので、任意の数、位置および大きさの二次元コードが 一つの文書に複数配置されて利用されるようになり、コード利用形態を拡大させるこ とが可能となる。

Claims

請求の範囲
[1] 画像データを矩形ブロック単位で選択するブロック選択過程と、
選択されたブロックが所定の条件を満たす力を判別するブロック判別過程と、 所定の条件を満たすブロック内に含まれるコードの種類及び特性を判定するコード 判定過程と、
種類及び特性が判定されたコードに対し認識を行うコード認識過程と、 コード認識結果に基づいてブロック走査の手順を制御するブロック走査制御過程と を含んでなるコード画像処理方法。
[2] 前記コード認識過程は、コードの領域を抽出するコード領域抽出過程を含むことを 特徴とする請求項 1記載のコード画像処理方法。
[3] 前記コード領域抽出過程は、コード内部座標検出過程と、セル幅の検出過程と、コ ード境界の検出処理過程を含む請求項 2記載のコード画像処理方法。
[4] 前記ブロック走査制御過程は、前記コード領域抽出過程で抽出されたコード領域 に一部または全部が含まれるブロックに対しては別のブロックへ走査を移動するプロ ック移動過程を含むことを特徴とする請求項 1または 2記載のコード画像処理方法。
[5] 前記コード認識過程は、コードに格納されたコード関連情報を認識するコード関連 情報処理過程と、
認識したコード関連情報に基づいて処理を行うコード関連情報処理過程と、 を含むことを特徴とする請求項 1記載のコード画像処理方法。
[6] 前記コード関連情報は、他のコードとの位置関係を表す位置情報を含み、
前記コード関連情報処理過程は、
前記位置情報に基づいて認識すべきコード位置に移動するコード位置移動過程と を含むことを特徴とする請求項 5記載のコード画像処理方法。
[7] 前記位置情報は、
1ないし複数の他のコードとの位置関係を表す相対位置情報を含み、
認識した相対位置情報の順序と、それまでの認識結果に基づレ、て移動する位置を 決定するコード認識位置決定過程と、
を含むことを特徴とする請求項 6記載のコード画像処理方法。
[8] 複数のコードが配置された文書読取り画像にぉレ、て、
各コードが複数のコード間の関連情報を含むようにされ、
画像データを矩形ブロック単位で選択するブロック選択過程と、
選択されたブロックが所定の条件を満たす力を判別するブロック判別過程と、 所定の条件を満たすブロック内に含まれるコードの種類及び特性を判定するコード 判定過程と、
種類及び特性が判定されたコードに対し認識を行うコード認識過程と、 認識されたコードからコード間の関連情報を認識するコード関連情報認識過程と、 認識したコード関連情報に基づいて処理を行うコード関連情報処理過程と、 を含むことを特徴とするコード画像処理方法。
[9] 複数のコードが配置された文書読取り画像にぉレ、て、
各コードが複数のコード間の関連情報を含むようにされ、
認識すべきコードの位置を 1つだけ指定するコード位置指定過程と、
位置指定されたコードからコード間の関連情報を認識するコード関連情報認識過 程と、
認識したコード関連情報に基づレ、て処理を行うコード関連情報処理過程と、 を含むことを特徴とするコード画像処理方法。
[10] コード位置指定にポインティングデバイスを使用する請求項 9記載のコード画像処 理方法。
[11] 画像データに含まれるコードの種類と特性を判別するコンピュータによって使用さ れる記録媒体であって、
画像データを矩形ブロック単位で選択するステップと、
選択されたブロックが所定の条件を満たす力を判別するブロック判別ステップと、 所定の条件を満たすブロック内に含まれるコードの種類及び特性を判定するコード 判定ステップと、
種類及び特性が判定されたコードに対し認識を行うコード認識ステップと、 コード認識結果に基づいてブロック走査の手順を制御するブロック走査制御ステツ プと、
をコンピュータに実行させるプログラムを格納したコンピュータ読取り可能な記録媒体
PCT/JP2005/004955 2005-03-18 2005-03-18 コード画像処理方法 WO2006100720A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP05726725A EP1868137B1 (en) 2005-03-18 2005-03-18 Code image processing method
JP2007509074A JP4531809B2 (ja) 2005-03-18 2005-03-18 コード画像処理方法
PCT/JP2005/004955 WO2006100720A1 (ja) 2005-03-18 2005-03-18 コード画像処理方法
US11/856,333 US8254683B2 (en) 2005-03-18 2007-09-17 Code image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2005/004955 WO2006100720A1 (ja) 2005-03-18 2005-03-18 コード画像処理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/856,333 Continuation US8254683B2 (en) 2005-03-18 2007-09-17 Code image processing method

Publications (1)

Publication Number Publication Date
WO2006100720A1 true WO2006100720A1 (ja) 2006-09-28

Family

ID=37023417

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/004955 WO2006100720A1 (ja) 2005-03-18 2005-03-18 コード画像処理方法

Country Status (4)

Country Link
US (1) US8254683B2 (ja)
EP (1) EP1868137B1 (ja)
JP (1) JP4531809B2 (ja)
WO (1) WO2006100720A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008258930A (ja) * 2007-04-05 2008-10-23 Murata Mach Ltd 画像処理装置
JP2009266190A (ja) * 2008-03-31 2009-11-12 Nidec Sankyo Corp シンボル情報読取装置及びシンボル情報読取方法
JP2010061468A (ja) * 2008-09-04 2010-03-18 Nippon Hoso Kyokai <Nhk> 識別情報出力装置およびそのプログラム、プログラム送信装置並びにicカード
JP2012094083A (ja) * 2010-10-29 2012-05-17 Fujitsu Frontech Ltd 読み取り装置、投票券払い戻し装置、投票券発行装置、および読み取り方法
JP2014207026A (ja) * 2014-08-06 2014-10-30 カシオ計算機株式会社 画像処理装置及びプログラム
CN105117676A (zh) * 2015-07-27 2015-12-02 立德高科(昆山)数码科技有限责任公司 避免二维码扫描区域对二维码进行误扫的方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102034072A (zh) * 2009-09-25 2011-04-27 神基科技股份有限公司 条形码图像辨识方法
US9524411B2 (en) * 2010-03-04 2016-12-20 Symbol Technologies, Llc User-customizable data capture terminal for and method of imaging and processing a plurality of target data on one or more targets
JP4724801B1 (ja) * 2010-07-30 2011-07-13 株式会社シフト 二次元コードリーダおよびプログラム
JP4724802B1 (ja) * 2010-07-30 2011-07-13 株式会社シフト 二次元コードリーダおよびプログラム
US8910870B2 (en) 2010-08-06 2014-12-16 Hand Held Products, Inc. System and method for document processing
JP5083395B2 (ja) * 2010-09-17 2012-11-28 カシオ計算機株式会社 情報読取装置及びプログラム
KR102174567B1 (ko) * 2013-10-07 2020-11-05 삼성전자주식회사 다수의 결제 아이템에 대한 결제 화면을 표시하는 전자 장치 및 그 방법
JP6592830B2 (ja) * 2017-01-26 2019-10-23 京セラドキュメントソリューションズ株式会社 画像形成装置
US9928632B1 (en) 2017-06-14 2018-03-27 Capital One Services, Llc Systems and methods for generating and reading intrinsic matrixed bar codes
CN112580383B (zh) * 2020-12-29 2023-08-29 科大讯飞(苏州)科技有限公司 二维码识别方法、装置、电子设备及存储介质
CN115438682B (zh) * 2022-10-24 2023-01-31 北京紫光青藤微系统有限公司 用于确定解码方向的方法、装置及解码设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10198754A (ja) * 1997-01-08 1998-07-31 Denso Corp コード読取装置
JPH1115911A (ja) * 1997-04-28 1999-01-22 Olympus Optical Co Ltd 情報再生システム
JP2001307014A (ja) * 2000-04-18 2001-11-02 Fujitsu Ltd 二次元コード抽出方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2599733B2 (ja) 1987-10-30 1997-04-16 電気化学工業株式会社 N―メチロール化合物―エチレン―酢酸ビニル三元共重合体の製造方法
KR100257128B1 (ko) * 1991-11-11 2000-05-15 시모야마 도시로 심볼정보판독장치
US5457309A (en) * 1994-03-18 1995-10-10 Hand Held Products Predictive bar code decoding system and method
JP2867904B2 (ja) 1994-12-26 1999-03-10 株式会社デンソー 2次元コード読取装置
JP3786167B2 (ja) 1998-08-31 2006-06-14 ソニー株式会社 2次元コード認識処理方法、2次元コード認識処理装置、および2次元コード認識処理プログラム格納媒体
EP0984385B1 (en) 1998-08-31 2013-02-20 Sony Corporation Two-dimensional code recognition processing
JP2000339407A (ja) 1999-05-28 2000-12-08 Canon Inc 画像処理装置及び画像処理方法及びコンピュータ読み取り可能な記憶媒体
JP2002133364A (ja) * 2000-10-19 2002-05-10 Takahiro Kinoshita 2次元コードを利用した情報処理装置
JP3516144B1 (ja) * 2002-06-18 2004-04-05 オムロン株式会社 光学情報コードの読取方法および光学情報コード読取装置
JP4202101B2 (ja) * 2002-10-10 2008-12-24 富士通株式会社 バーコード認識方法、および認識用デコード処理装置
JP4327101B2 (ja) * 2003-04-15 2009-09-09 富士通株式会社 コード認識方法及び装置
JP4180497B2 (ja) 2003-12-05 2008-11-12 富士通株式会社 コード種類判別方法、およびコード境界検出方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10198754A (ja) * 1997-01-08 1998-07-31 Denso Corp コード読取装置
JPH1115911A (ja) * 1997-04-28 1999-01-22 Olympus Optical Co Ltd 情報再生システム
JP2001307014A (ja) * 2000-04-18 2001-11-02 Fujitsu Ltd 二次元コード抽出方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008258930A (ja) * 2007-04-05 2008-10-23 Murata Mach Ltd 画像処理装置
JP2009266190A (ja) * 2008-03-31 2009-11-12 Nidec Sankyo Corp シンボル情報読取装置及びシンボル情報読取方法
JP2010061468A (ja) * 2008-09-04 2010-03-18 Nippon Hoso Kyokai <Nhk> 識別情報出力装置およびそのプログラム、プログラム送信装置並びにicカード
JP2012094083A (ja) * 2010-10-29 2012-05-17 Fujitsu Frontech Ltd 読み取り装置、投票券払い戻し装置、投票券発行装置、および読み取り方法
JP2014207026A (ja) * 2014-08-06 2014-10-30 カシオ計算機株式会社 画像処理装置及びプログラム
CN105117676A (zh) * 2015-07-27 2015-12-02 立德高科(昆山)数码科技有限责任公司 避免二维码扫描区域对二维码进行误扫的方法
CN105117676B (zh) * 2015-07-27 2017-12-05 立德高科(昆山)数码科技有限责任公司 避免二维码扫描区域对二维码进行误扫的方法

Also Published As

Publication number Publication date
JP4531809B2 (ja) 2010-08-25
JPWO2006100720A1 (ja) 2008-08-28
EP1868137B1 (en) 2011-06-29
EP1868137A1 (en) 2007-12-19
US8254683B2 (en) 2012-08-28
EP1868137A4 (en) 2009-11-18
US20080069398A1 (en) 2008-03-20

Similar Documents

Publication Publication Date Title
JP4531809B2 (ja) コード画像処理方法
JP4180497B2 (ja) コード種類判別方法、およびコード境界検出方法
US7946491B2 (en) Method, apparatus, and computer program product for providing a camera barcode reader
JP4911340B2 (ja) 二次元コード検出システムおよび二次元コード検出プログラム
EP1909215B1 (en) Image region detection method, recording medium, and device therefor
US7729536B2 (en) Boundary extracting method, program, and device using the same
JP5414685B2 (ja) 複数の画像フレームを使用してパターンを読取るシステム、及び方法
JP4658848B2 (ja) 文字列認識方法及び文字列認識装置
JP3670571B2 (ja) 画像読取装置
US8467608B2 (en) Method and apparatus for character string recognition
US20070172123A1 (en) Image processing apparatus, image processing method and computer readable medium
JP4398498B2 (ja) コード境界検出方法
CN106909920B (zh) 图像扫描装置和方法以及图像读取装置
WO2014063837A1 (en) Method and device for identifying a two-dimensional barcode
JP4404224B2 (ja) 光学式認識コード認識装置及び方法及びプログラム
US10706337B2 (en) Character recognition device, character recognition method, and recording medium
JP4442512B2 (ja) 情報コード読取装置および情報コード読取方法
JP4874706B2 (ja) Qrコード読取装置
JP2007102386A (ja) シンボル情報読取方法及びシンボル情報読取装置
JP7200793B2 (ja) 二次元コード読取装置
JP2007094584A (ja) 二次元コードの検出方法、検出装置、及び検出プログラム
JP2022066697A (ja) 画像処理装置、画像処理方法及びコンピュータプログラム
JP4905767B2 (ja) 二次元コード検出システムおよび二次元コード検出プログラム
JP4403063B2 (ja) シンボル情報読取方法及びシンボル情報読取装置
JP2005057813A (ja) 画像読取装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2007509074

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11856333

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2005726725

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: RU

WWW Wipo information: withdrawn in national office

Country of ref document: RU

WWP Wipo information: published in national office

Ref document number: 2005726725

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 11856333

Country of ref document: US