KR101293703B1 - A system for decoding skewed data matrix barcode, and the method therefor - Google Patents
A system for decoding skewed data matrix barcode, and the method therefor Download PDFInfo
- Publication number
- KR101293703B1 KR101293703B1 KR1020110125249A KR20110125249A KR101293703B1 KR 101293703 B1 KR101293703 B1 KR 101293703B1 KR 1020110125249 A KR1020110125249 A KR 1020110125249A KR 20110125249 A KR20110125249 A KR 20110125249A KR 101293703 B1 KR101293703 B1 KR 101293703B1
- Authority
- KR
- South Korea
- Prior art keywords
- barcode
- frame memory
- vertical
- image
- horizontal
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1456—Methods for optical code recognition including a method step for retrieval of the optical code determining the orientation of the optical code with respect to the reader and correcting therefore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10544—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
- G06K7/10821—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
- G06K7/1093—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing, after transfer of the image of the data-field to an intermediate store, e.g. storage with cathode ray tube
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/43—Conversion of monochrome picture signals to colour picture signals for colour picture display
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Artificial Intelligence (AREA)
- Toxicology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
Abstract
본 발명은 데이터 매트릭스 바코드디코딩 기술에 관한 것으로서, 더욱 상세하게는 카메라 등에 의해 입력되는 바코드 영상이 카메라의 위치 관계에 의한 일그러짐(skew)이 있더라도 추출된 영상의 형태를 변환하지 않고 바코드를 판독함으로써 오류를 배제하기 위한 스큐된 데이터 매트릭스 바코드 디코딩 장치와 이를 위한 방법을 요지로 한다.
본 발명의 스큐된 데이터 매트릭스 바코드 디코딩 장치와 이를 위한 방법에 의하면, 데이터 매트릭스 바코드 영상의 축방향 불균일(axial nonuniformity), 데이터 매트릭스의 일그러짐(grid nonuniformity)이 발생하더라도 데이터 매트릭스를 판독할 수 있도록 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치와 이를 위한 방법을 제공하는 기술적 효과가 있다.
또한 본 발명은, 카메라 등의 영상 수단으로써 바코드 영상을 입력할 경우 카메라와 바코드 간의 위치 관계에 의해 발생하는 스큐(skew)등이 포함된 영상에서도 데이터 매트릭스를 판독할 수 있도록 하는 스큐된 데이터 매트릭스 바코드 추출및 디코드 장치와 이를 위한 방법을 제공하는 효과가 있다.
본 발명에서는 원 데이터 매트릭스의 영상의 손실을 최소화하여 직접 데이터 매트릭스의 영상으로부터 데이터를 판독하는 데이터 매트릭스를 판독할 수 있도록 하는 스큐된 데이터 매트릭스바코드 디코딩 장치와 이를 위한 방법을 제공하는 기술적 효과가 있다.The present invention relates to a data matrix barcode decoding technology, and more particularly, even when a barcode image input by a camera or the like is skewed due to the positional relationship of the cameras, an error is obtained by reading the barcode without changing the shape of the extracted image. A skewed data matrix barcode decoding apparatus and a method therefor for excluding the above are provided.
According to the skewed data matrix barcode decoding apparatus of the present invention and a method therefor, a skew for reading a data matrix even when an axial nonuniformity of the data matrix barcode image or a grid nonuniformity occurs There is a technical effect of providing a data matrix barcode decoding device and a method therefor.
Also, the present invention provides a skewed data matrix barcode which enables a data matrix to be read out even in an image including skew generated by the positional relationship between the camera and the barcode when the barcode image is input by an image means such as a camera. It is effective to provide an extraction and decoding device and a method therefor.
The present invention has a technical effect of providing a skewed data matrix barcode decoding apparatus and a method therefor for minimizing the loss of an image of an original data matrix to read a data matrix that directly reads data from an image of the data matrix.
Description
본 발명은 데이터 매트릭스 바코드디코딩 기술에 관한 것으로서, 더욱 상세하게는 카메라 등에 의해 입력되는 바코드 영상이 카메라의 위치 관계에 의한 일그러짐(skew)이 있더라도 추출된 영상의 형태를 변환하지 않고 바코드를 판독함으로써 오류를 배제하기 위한 스큐된 데이터 매트릭스 바코드 디코딩 장치와 이를 위한 방법을 요지로 한다.
The present invention relates to a data matrix barcode decoding technology, and more particularly, even when a barcode image input by a camera or the like is skewed due to the positional relationship of the cameras, an error is obtained by reading the barcode without changing the shape of the extracted image. A skewed data matrix barcode decoding apparatus and a method therefor for excluding the above are provided.
다양한 이차원 바코드의 형태들 중 데이터 매트릭스 바코드는 ISO/IEC 표준으로 다양한 응용분야에 널리 보급되어 있으며, 관련 표준들은 다음과 같다.Among the various types of two-dimensional barcodes, the data matrix barcode is an ISO / IEC standard and is widely used in various applications. The related standards are as follows.
-ISO/IEC 16022:2006 DataMatrix bar code symbology specificationISO / IEC 16022: 2006 DataMatrix bar code symbology specification
-ISO/IEC 154152-D Print Quality StandardISO / IEC 154152-D Print Quality Standard
-ISO/IEC 15418:2009 Symbol Data Format Semantics (GS Application Identifiers and ASCMH10 Data Identifiers and maintenance)ISO / IEC 15418: 2009 Symbol Data Format Semantics (GS Application Identifiers and ASCMH10 Data Identifiers and maintenance)
-ISO/IEC 15424:2008 Data Carrier Identifiers (including Symbology Identifiers) [IDs fordistinguishing different bar code types]ISO / IEC 15424: 2008 Data Carrier Identifiers (including Symbology Identifiers) [IDs fordistinguishing different bar code types]
-ISO/IEC 15434:2009 Syntax for high-capacity ADC media (format of data transferred fromscanner to software, etc.)ISO / IEC 15434: 2009 Syntax for high-capacity ADC media (format of data transferred from scanner to software, etc.)
-ISO/IEC 15459 Unique Identifiers
ISO / IEC 15459 Unique Identifiers
상기 표준들은 데이터 매트릭스의 인쇄 및 판독을 위한 표준으로서, 특히 ISO/IEC 16022과 ISO/IEC 15415의 경우 데이터 매트릭스가 최대 7도 이내로 기울어진 것을 판독 가능(pass)한 범위로 정의하고 있다. 따라서 휴대용 단말기나 카메라 등에 의해 입력되는 데이터 매트릭스 영상은 임의의 각도를 기준으로 입력되는 경우 판독이 되지 않는 범주로 규정되며 이를 개선하기 위해서는 사용자가 데이터 매트릭스의 기준위치를 파악하여 영상을 입력해야 한다. 또한 입력 바코드 영상의 불균일한 일그러짐(스큐: skew)이 있는 경우에는 판독이 불가능한 것으로 정의되어 있다.
The standards define the printing and reading of the data matrix, and in particular, in the case of ISO / IEC 16022 and ISO / IEC 15415, the data matrix is inclined within a maximum of 7 degrees. Therefore, the data matrix image inputted by the portable terminal or the camera is defined as a category which cannot be read when inputted based on an arbitrary angle. To improve this, the user needs to identify the reference position of the data matrix and input the image. In addition, it is defined as unreadable if there is a non-uniform distortion (skew) of the input barcode image.
본 발명에 관한 배경기술로서 대한민국 공개특허공보 제10-2006-0123999호의 2차원 바코드 검출 방법 기술이 있다. 이 기술은 무인 공과금 수납기 등에서 바코드가 삽입된 지로 용지를 투입받아 이를 스캔하여 스캔된 지로 용지의 이미지 전체를 대상으로 검색하여 지로 용지의 바코드를 검출하는데 많은 시간을 소요했던문제점을 해결하고자 제안된 것으로서, 상기 스캔된 지로 용지의 이미지를 텍스쳐 분석(Texture Analysis)하여 검은색과 흰색이 촘촘하게 배열되어 있는 바코드 영역만을 추출할 수 있도록함으로써 지로 용지에 위치한 바코드 영역의 검출 시간을 줄일 수 있는 2차원 바코드 검출 방법에 관한것이다. 이 기술은 지로 용지가 투입되면, 이를 스캐닝하고, 스캔한 이미지의 경계를 찾는 제1단계; 고 주파수 부분만 필터링하는 제2단계; 평균값 필터링을 통해 상기 이미지를 블러링 하는 제3단계; 상기 필터링 된 이미지의 각 픽셀의 명암 수치를 기준값과 비교하여, 기준값보다큰 값은 흰색 픽셀로, 작은 값은 검은색 픽셀로 두는 스레쉬 홀딩을 수행하는 제4단계; 상기 이미지의 흰색 픽셀에 대해 인접한 사방의 픽셀을 모두흰색으로 두어 흰색 영역을 확장하는 작업과, 검은 픽셀에 인접한 사방의 픽셀을 모두 검은색으로 두어흰색 영역을 축소하는 작업을 수행하는 제5단계; 상기 작업후에, 남은 흰색 영역 중 연결된 흰색 픽셀의 개수로 계산한 크기가 가장 큰 영역을 찾는 제6단계; 상기 영역의 좌표값을 추출하고, 지로 용지의 이미지에서 상기 좌표값에 해당하는 영역을 잘라내는 제7단계로이루어진 것을 특징으로 한다. As a background art of the present invention, there is a method for detecting a two-dimensional bar code of the Republic of Korea Patent Publication No. 10-2006-0123999. This technology is proposed to solve the problem that it took a lot of time to detect the barcode of the paper by scanning the entire image of the paper by scanning the paper by inserting the paper with the barcode inserted in the unmanned bill acceptor. By analyzing the image of the paper with the scanned paper (Texture Analysis), it is possible to extract only the bar code areas where black and white are densely arranged, thereby reducing the detection time of the bar code area located on the paper. It's about how. This technique includes a first step of scanning paper when paper is loaded, and finding a boundary of the scanned image; Filtering only the high frequency portion; A third step of blurring the image through mean value filtering; A fourth step of performing a threshold holding by comparing a contrast value of each pixel of the filtered image with a reference value, wherein a value larger than the reference value is a white pixel and a small value is a black pixel; A fifth step of expanding the white area by leaving all of the pixels adjacent to white pixels of the image in white, and reducing the white area by leaving all pixels adjacent to the black pixels in black; A sixth step after the operation, finding an area having the largest size calculated by the number of connected white pixels among the remaining white areas; And a seventh step of extracting coordinate values of the area and cutting out an area corresponding to the coordinate value from the image of the paper.
이 기술은 스캔된지로 용지의 이미지의 바코드 영역만을 추출하는 기술로 제한되어 있어 카메라 등의 영상 수단으로써 바코드 영상을 입력할 경우 카메라와 바코드 간의위치 관계에 의해 발생하는 스큐(skew)등이 포함된 영상에서는 판독이 불가능한 단점이 있다. 또한 필터링 된 이미지의 각 픽셀의 명암 수치를 기준값과 비교하여, 기준값보다큰 값은 흰색 픽셀로, 작은 값은 검은색 픽셀로 두는 스레쉬 홀딩을 수행함으로써 카메라 영상 입력 환경에따라 바코드 영상의 명암 차이가 발생하는 경우 고정된 기준값으로 인해 스레쉬 홀딩의 결과 영상에 오류가 발생하는 단점이 있다.
This technology is limited to the technology of extracting only the barcode area of the image of the paper on the scanned paper. When the barcode image is input by an imaging means such as a camera, skew generated by the positional relationship between the camera and the barcode is included. There is a disadvantage that cannot be read from an image. In addition, by comparing the contrast value of each pixel of the filtered image with the reference value, a threshold holding is performed in which a value larger than the reference value is set to a white pixel and a smaller value is set to a black pixel. If the error occurs, an error occurs in the image as a result of the threshold holding due to the fixed reference value.
본 발명에 관한 다른 배경기술로서 대한민국 등록특허공보제10-0275007호의 2차원 바코드의 판독 방법 기술이 있다. 이 기술은 종이 조각 등에 인쇄된 2차원 바코드를 에리어 센서를 이용하여 촬영하고, 이러한 에리어 센서로부터얻어진 2차원 바코드의 화상에 대하여, 사영 변환에 의한왜곡 보정을 실시하는 단계와, 화상에 나타난 밝기 얼룩 보정을 실시하는 단계와, 2개의 단계에 의해 보정된 2차원 바코드의 화상 데이터에 기초하여 2차원 바코드의 디코드를 행하는 단계를 포함하는 2차원 바코드의 판독방법을 요지로 한다.Another background art of the present invention is a method of reading a two-dimensional bar code of the Republic of Korea Patent Publication No. 10-0275007. This technique photographs a two-dimensional barcode printed on a piece of paper, etc. using an area sensor, and performs distortion correction by projection projection on an image of the two-dimensional barcode obtained from such an area sensor, and brightness irregularities appearing in the image. A method of reading a two-dimensional bar code includes a step of performing correction and a step of decoding a two-dimensional bar code based on the image data of the two-dimensional bar code corrected by the two steps.
이 기술은 2차원 바코드의 화상에 대하여 사영 변환을 수행하여 원 영상에 존재하지 않는 픽셀들을 생성하므로 상기 생성된 픽셀에의해 원 영상에 잡음이 더해지므로 판독의 오류가 증가할 수 있는 한계가 있으며, 특히 카메라 영상 입력환경에 따라 단일 영상 내에서 그림자 등에 의한 명암 차이가 발생하는 경우 내지는 지나치게 작은 영상으로 입력되는 경우에 이를 오류로 판단하는근거와 수단이 구비되어 있지 않아 바코드 판독의 오류가 더욱 증가하는 단점이 있다.
Since this technique generates pixels that do not exist in the original image by performing projective transformation on an image of a two-dimensional barcode, noise is added to the original image by the generated pixels, and thus there is a limit that an error in reading may increase. In particular, if there is a difference in contrast due to a shadow or a small image in the single image depending on the camera image input environment, there is no basis and means for determining this as an error. There are disadvantages.
본 발명에 관한 또 다른 배경기술로서 대한민국 등록특허공보제10-0483393의 2차원 바코드의 판독 장치 기술이 있다. 이 기술은 2차원 바코드를 촬영하는 촬상소자와 ; 촬상소자에 의하여 촬영된 2차원 바코드의 영상을 기억하는 프레임 메모리수단과 ; 프레임 메모리수단에기억된 2차원 바코드 영상의 4모서리 좌표를 구하고, 상기 4모서리를 통과하는 4개의직선식을 구하고, 4개의 직선중에서 2차원 바코드 영상의스타트코드와 스톱코드에 대응되는 2부분을 모두 가로지르는 1쌍의직선사이에 2차원 바코드 영상의 스캔을 위한 복수의 스캔라인을 등간격으로 설정 함과 동시에, 상기 2부분의 각각을 따라서 연장되는 나머지 1쌍의 직선사이에 복수의 스캔라인의 각각을 따른 2차원 바코드 영상의복수의 샘플링을 위한 복수의 샘플링라인을 등간격으로 설정하고, 복수의 스캔 라인의 각각이 복수의 샘플링라인과 교차하는 복수의 위치에서 2차원 바코드 영상을 샘플링함으로써2차원 바코드 영상에서 2차원 바코드가 가지는 바코드 정보를 판독하는 바코드 판독제어수단을구비한 바코드 판독장치를 구비하고,Another background art of the present invention is a two-dimensional bar code reading device technology of the Republic of Korea Patent Publication No. 10-0483393. This technique includes an imaging device for photographing two-dimensional bar codes; Frame memory means for storing an image of a two-dimensional bar code photographed by the imaging device; Obtain the four corner coordinates of the two-dimensional barcode image stored in the frame memory means, obtain four linear equations passing through the four corners, and find the two parts corresponding to the start code and the stop code of the two-dimensional barcode image from the four straight lines. A plurality of scan lines for scanning a two-dimensional bar code image are set at equal intervals between a pair of straight lines crossing all of them, and a plurality of scan lines between the remaining pair of straight lines extending along each of the two portions. By setting a plurality of sampling lines for sampling a plurality of two-dimensional barcode image along each of the at equal intervals, and sampling the two-dimensional barcode image at a plurality of positions where each of the plurality of scan lines intersects the plurality of sampling lines. And a bar code reading device equipped with a bar code reading control means for reading bar code information of the 2D bar code in the 2D bar code image. ,
2차원 바코드를 촬상소자에 의하여 촬영하고 촬영된 바코드 영상에서 바코드 정보를 판독하는 바코드 판독장치가, 상기 바코드 영상의 4모서리 좌표에서 상기 바코드 영상의 4모서리를 통과하는 4개의 직선의 상호간의 경사를 구함으로써 상기바코드 영상의 비뚤어짐을 검출하고, 검출된 상기 바코드 영상의 비뚤어짐에 대응하여, 상기 바코드 영상을 판독하기 위한 스캔라인과 샘플링라인을 각각의 직선을 따라서 연장되는 상기 4개의 직선중 1쌍의 직선사이에 균등하게 배치되도록 하여 판독하는바코드의 판독 장치를 요지로 한다.A bar code reading device for photographing a two-dimensional bar code by an image pickup device and reading bar code information from the captured bar code image includes a slope between four straight lines passing through the four corners of the bar code image at the four corner coordinates of the bar code image. A pair of the four straight lines extending along each straight line a scan line and a sampling line for reading the barcode image in response to the detected distortion of the barcode image by detecting the distortion of the barcode image. The bar code reading device for reading out is arrange | positioned evenly between the straight lines of the summary, The summary is made.
이 기술은 바코드 영상의 비뚤어짐에 대응하여 스캔라인과 샘플링라인을 각각의 직선을 따라서 연장되는 상기 4개의 직선 중 1쌍의 직선 사이에 균등하게 배치되도록 하여 판독하므로카메라 입력 영상에 불균일한 스큐가 발생할 경우 균등하게 배치된 스캔라인과 샘플링라인으로 인해 판독 오류가 증가하는 제약을 갖는다.
This technique reads the scan line and sampling line evenly between the pair of straight lines among the four straight lines extending along each straight line in response to the skew of the barcode image, resulting in uneven skew in the camera input image. Even if this happens, evenly spaced scan lines and sampling lines have the constraint of increasing reading errors.
본 발명에 관한 다른 배경기술로서 대한민국 등록특허공보제10-0829108호의 패턴 기울기 계산 기능을 갖는 2차원 바코드 판독 장치 및 방법 기술이 있다. 이 기술은 2차원 바코드의 판독 속도를 빠르게 하고, 패턴 기울기를 계산하고 계산된 기울기값을 이용하여 해독을 하는 것에 의해 바코드 패턴의 판독 오류를 최소화할수 있도록한 패턴 기울기 계산 기능을 갖는 2차원 바코드 판독 장치 및 방법에 관한 것으로, 그 구성은 2차원 바코드 패턴을 캡춰하여 이미지 데이터를 출력하는 CMOS 이미지 센서 및 출력되는 이미지 데이터를 저장하는 데이터 저장부;상기캡춰된 바코드 패턴의 기울기 계산을 제어하고 산출된 패턴 기울기값을 이용하여 바코드를 해독하여 디코딩된 데이터가 출력되도록 제어하는 마이크로 컨트롤러;상기 데이터 저장부에 이미지 데이터를 저장하거나, 저장된 이미지 데이터의출력시에 버스(BUS) 선택 제어를 수행하는 BUS 셀렉터;설정된 값을 기준으로 라인 단위로 라인 패턴을 순차 검색하여 캡춰한 이미지가 바코드 이미지인지를 판단하는 바코드패턴 검색부;바코드 이미지인 것으로 판단되면 마이크로 컨트롤러의 제어에 의해 바코드 패턴의 기울기를계산하는 바코드 패턴 기울기 계산부를 포함하는 것을 특징으로 한다. Another background of the present invention is a two-dimensional barcode reading apparatus and method technology having a pattern slope calculation function of Korean Patent Publication No. 10-0829108. This technology reads two-dimensional barcodes with a pattern slope calculation function that speeds up the reading of two-dimensional barcodes and minimizes reading errors of barcode patterns by calculating pattern slopes and decoding using calculated slope values. An apparatus and method, the configuration comprising: a CMOS image sensor for capturing a two-dimensional barcode pattern to output image data; and a data storage unit for storing the output image data; controlling and calculating a slope of the captured barcode pattern; A microcontroller for decoding a bar code using a pattern slope value to control the decoded data to be output; A BUS selector for storing the image data in the data storage unit, or performing a bus selection control when outputting the stored image data ; Sequentially search for line pattern by line based on the set value Bar code pattern search unit for determining whether the captured image is a bar code image; If it is determined that the bar code image, it characterized in that it comprises a bar code pattern gradient calculation unit for calculating the slope of the bar code pattern under the control of the microcontroller.
이 기술은 바코드 패턴의 단일의 기울기를 계산하여 바코드의판독에 적용함으로써 그 판독 대상의 바코드가 PDF417 코드로 제한되므로, 일반적인 스큐에 따른 일그러진 데이터 매크릭스 바코드에 적용할 수 없는 제약을 가진다.
Since this technique calculates a single slope of a barcode pattern and applies it to the reading of the barcode, the barcode to be read is limited to the PDF417 code, which has a limitation that cannot be applied to a distorted data matrix barcode according to a general skew.
본 발명은 축방향 불균일(axial nonuniformity), 데이터 매트릭스의 일그러짐(grid nonuniformity)이 발생하더라도 영상으로부터 데이터 매트릭스를 판독할 수 있도록 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치와 이를 위한 방법을 제공하는 것을 기술적 과제로 한다. The present invention provides a skewed data matrix barcode decoding device and a method therefor for reading a data matrix from an image even if axial nonuniformity or grid nonuniformity occurs. do.
또한 본 발명은, 카메라등의 영상 수단으로써 바코드 영상을 입력할 경우 카메라와 바코드 간의 위치 관계에 의해 발생하는 스큐(skew)등이 포함된 영상에서도 데이터 매트릭스를 판독할 수 있도록 하는 스큐된 데이터 매트릭스 바코드 추출및 디코드 장치와 이를 위한 방법을 제공하는 것을 기술적 과제로 한다. Also, the present invention provides a skewed data matrix barcode which enables a data matrix to be read out even in an image including skew generated by the positional relationship between the camera and the barcode when the barcode image is input by an image means such as a camera. It is a technical problem to provide an extraction and decoding apparatus and a method therefor.
본 발명에서는 원 데이터 매트릭스의 영상의 손실을 최소화하여 직접 데이터 매트릭스의 영상으로부터 데이터를 판독하는 데이터 매트릭스를 판독할 수 있도록 하는 스큐된 데이터 매트릭스바코드 디코딩 장치와 이를 위한 방법을 제공하는 것을 기술적 과제로 한다.
It is an object of the present invention to provide a skewed data matrix barcode decoding device and a method therefor for minimizing the loss of an image of an original data matrix to read a data matrix that directly reads data from an image of the data matrix. .
본 발명은 상기의 과제를 해결하기 위하여, 영상을 촬영하는 카메라로부터의 스큐된 데이터 매트릭스 바코드를 입력받아 디코드하는 장치에 있어서, 카메라와 상기 카메라로부터의 컬러 영상 데이터를 저장하는 제1 프레임 메모리 및 상기 제1 프레임 메모리의 영상 데이터를 출력하는디스플레이로 구성되는 단말과, 제어부, 제2D 매트릭스 판독부, DMA 제어기,제2프레임 메모리, 연산 프레임 메모리, 그레이 레벨 변환부, 이중 선형 보간부, 영역 필터부, 이진 영상 변환부,연결 영역 추출부, 주변 기울기 추출부, 파인더패턴 검출/회전부, 심볼 연산부, 2D 매트릭스 메모리를 구비한 스큐된 데이터 매트릭스 바코드 디코딩 장치와 그 방법을 기술적 해결 수단으로 제공한다.
In order to solve the above problems, an apparatus for receiving and decoding a skewed data matrix barcode from a camera for capturing an image, comprising: a first frame memory for storing color images and data from the camera and the camera; A terminal comprising a display for outputting image data of the first frame memory, a control unit, a 2D matrix reading unit, a DMA controller, a second frame memory, an operation frame memory, a gray level converter, a dual linear interpolation unit, an area filter unit A skewed data matrix barcode decoding device including a binary image converter, a connection area extractor, a peripheral gradient extractor, a finder pattern detector / rotator, a symbol calculator, and a 2D matrix memory and a method thereof are provided as technical solutions.
본 발명의 스큐된 데이터 매트릭스 바코드 디코딩 장치와 이를 위한 방법에 의하면, 데이터 매트릭스 바코드 영상의 축방향 불균일(axial nonuniformity), 데이터 매트릭스의 일그러짐(grid nonuniformity)이 발생하더라도 데이터 매트릭스를 판독할 수 있도록 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치와 이를 위한 방법을 제공하는 기술적 효과가 있다.According to the skewed data matrix barcode decoding apparatus of the present invention and a method therefor, a skew for reading a data matrix even when an axial nonuniformity of the data matrix barcode image or a grid nonuniformity occurs There is a technical effect of providing a data matrix barcode decoding device and a method therefor.
또한 본 발명은, 카메라 등의 영상 수단으로써 바코드 영상을 입력할 경우 카메라와 바코드 간의 위치 관계에 의해 발생하는 스큐(skew)등이 포함된 영상에서도 데이터 매트릭스를 판독할 수 있도록 하는 스큐된 데이터 매트릭스 바코드 추출및 디코드 장치와 이를 위한 방법을 제공하는 효과가 있다.Also, the present invention provides a skewed data matrix barcode which enables a data matrix to be read out even in an image including skew generated by the positional relationship between the camera and the barcode when the barcode image is input by an image means such as a camera. It is effective to provide an extraction and decoding device and a method therefor.
본 발명에서는 원 데이터 매트릭스의 영상의 손실을 최소화하여 직접 데이터 매트릭스의 영상으로부터 데이터를 판독하는 데이터 매트릭스를 판독할 수 있도록 하는 스큐된 데이터 매트릭스바코드 디코딩 장치와 이를 위한 방법을 제공하는 기술적 효과가 있다.
The present invention has a technical effect of providing a skewed data matrix barcode decoding apparatus and a method therefor for minimizing the loss of an image of an original data matrix to read a data matrix that directly reads data from an image of the data matrix.
도면 제1도는 다양한 이차원 바코드들의 예
도면 제2도는 2 X 2 데이터 매트릭스의구성
도면 제3도는 2 X 2 데이터 매트릭스의 기본 패턴
도면 제4도는 데이터 매트릭스를 인쇄하거나 스캔(scan) 시 발생되는 오류
도면 제5도는 일그러진(skewed) 데이터 매트릭스의 영상을 보정하는 경우 발생되는 블러링(blurring)현상
도면 제6도는 본 발명의 스큐된 이차원 바코드 디코딩 장치의 구성
도면 제7도는 제2프레임 메모리의 영상이 그레이 레벨로 변환되어 저장되는 구성
도면 제8도는 제2 프레임 메모리의 영상 데이터를 연산 프레임 메모리에 축소하여 저장하는 구성
도면 제9도는 연산프레임 메모리에 저장된 그레이 레벨 영상 데이터를 처리하는 과정
도면 제10도는 축소된 영상 데이터의 에지값 이진화 영상 데이터 처리의 일례
도면 제11도는 바코드의 후보 영역을 추출하는 구성
도면 제12도는 바코드의 후보 영역의 길이 및 기울기를 구하는 구성
도면 제13도는 연산 프레임 메모리의 바코드 후보 영역에 대응하는 제2 프레임 메모리의 영상을 추출하는 구성
도면 제14도는 제2 프레임 메모리의 바코드 후보 영역 영상 변환 예
도면 제15도는 이진 바코드 영상에 대해 오른쪽수직 방향에 놓인 심볼들을 모두 포함하는 기울기를 구하는 구성
도면 제16도는 수직 중심 심볼 기울기 초기값 Cv 를 구하는 흐름도의 일 실시예
도면 제17도는 수직 중심 심볼 기울기 초기값 Cv 를 구하는 일반적인 흐름도
도면 제18도는 바코드 영상으로부터 수직 중심 방향으로 심볼들의 좌표를 구하는 구성
도면 제19도는 이진 바코드 영상에 대해 상단 수평방향 방향에 놓인 심볼들을 모두 포함하는 기울기를 구하는 구성
도면 제20도는 수평 중심 심볼 기울기 초기값 Ch를 구하는 흐름도의 일 실시예
도면 제21도는 수평 중심 심볼 기울기 초기값 Ch를 구하는 일반적인 흐름도
도면 제22도는 바코드 영상으로부터 수평 중심 방향으로 심볼들의 좌표를 구하는 구성
도면 제23도는 바코드의 수평방향의 직선 방정식들과 수직방향의 직선 방정식들의 배열 관계
도면 제24도는 수평-수직방향으로 심볼들을 연결하는 직선 들 중 단일의 수평방향의 직선 방정식과 수직방향의 직선 방정식의 교차 관계
도면 제25도는 수평-수직 방향으로 교차하는 제2프레임 메모리의 좌표에 대한 변환 관계
도면 제26도는 2D 매트릭스 메모리 내에 2D 바코드를 생성하는 일례
도면 제27도는 2D 매트릭스 메모리 내의 데이터를 2D 매트릭스 판독부를 통해 디코딩 하는 구성관계
도면 제28도 내지 제30도는 본 발명의 스큐된 데이터 매트릭스 바코드 디코딩 방법의 흐름도Figure 1 is an example of various two-dimensional barcodes
Figure 2 shows the construction of a 2 x 2 data matrix
Figure 3 shows the basic pattern of a 2 x 2 data matrix
4 is an error that occurs when printing or scanning a data matrix.
5 is a blurring phenomenon that occurs when correcting an image of a skewed data matrix.
6 is a block diagram of the skewed two-dimensional barcode decoding apparatus of the present invention
7 is a diagram in which an image of a second frame memory is converted to gray levels and stored.
8 is a diagram illustrating an example in which image data of a second frame memory is reduced and stored in an operation frame memory.
9 is a process of processing gray level image data stored in an operation frame memory.
10 is an example of edge value binarization image data processing of reduced image data;
11 is a configuration for extracting a candidate region of a barcode
12 is a configuration for obtaining the length and the slope of the candidate region of the barcode
13 is a configuration for extracting an image of a second frame memory corresponding to a barcode candidate region of an operation frame memory.
14 is an example of converting a barcode candidate region image of a second frame memory.
15 is a configuration for obtaining a slope including all the symbols placed in the right vertical direction with respect to the binary barcode image
16 is an embodiment of a flowchart for obtaining a vertical center symbol gradient initial value Cv.
FIG. 17 is a general flowchart for obtaining the vertical center symbol gradient initial value Cv. FIG.
18 is a configuration for obtaining coordinates of symbols in a vertical center direction from a barcode image
19 is a configuration for obtaining a slope including all the symbols placed in the upper horizontal direction with respect to the binary barcode image
20 is an embodiment of a flowchart for calculating a horizontal center symbol gradient initial value Ch
21 is a general flow chart for calculating the horizontal center symbol gradient initial value Ch.
22 is a configuration for obtaining coordinates of symbols in a horizontal center direction from a barcode image
23 shows the arrangement relationship between the linear equations in the horizontal direction and the linear equations in the vertical direction of the barcode.
24 is a cross relationship between a single horizontal linear equation and a vertical linear equation among the straight lines connecting the symbols in the horizontal-vertical direction.
25 is a transformation relationship for coordinates of a second frame memory that intersects in the horizontal-vertical direction.
26 shows an example of generating a 2D barcode in a 2D matrix memory.
27 is a configuration relationship for decoding data in a 2D matrix memory through a 2D matrix reading unit.
28 through 30 are flow charts of the skewed data matrix barcode decoding method of the present invention.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명하면 다음과 같다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우, 그 상세한 설명은 생략한다
Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, when it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.
도면 제1도는 다양한 이차원 바코드들의 예를 도시한다. 이차원 바코드는 기존의 일차원 바코드에 비해 많은 양의 데이터를 기록할 수 있고, 이에 따라 다양한 응용이 가능하므로 그 사용이 증대되고 있다. 이차원 바코드는 판독의 기준 도형을 세 귀퉁이에 구비한 QR코드, 중앙에 판독 기준 도형을 구비한 아즈텍 코드(Aztec code)와 맥시 코드(Maxi code), 가운데를 중심으로 회전 형상의 판독 경로를 구비한 샷코드(Shot code), 코드의 주변에 판독 기준 바(bar)를 구비한 데이터 매트릭스(Data matrix), 및 이지코드(EZ code), 기존 일차원 바코드를 조합하여 이차원으로 구성한 PDF417 코드, 코다블록 코드(Codablockcode), 코드 16K 코드(Code 16K code)등이 있으며, 이들 이외에도 다양한 변형 코드들이 제안되어 사용되고 있다. 1 shows examples of various two-dimensional barcodes. Since the two-dimensional bar code can record a larger amount of data than the conventional one-dimensional bar code, and thus various applications are possible, its use is increasing. The two-dimensional barcode has a QR code having three reference figures for reading, an Aztec code and a Maxi code having a reference reference figure in the center, and a rotational reading path around the center. Shotcode, data matrix with reading bar around the code, EZ code, PDF417 code consisting of two-dimensional bar code (Codablockcode), Code 16K code, and various other modification codes have been proposed and used.
이들 바코드 중 데이터 매트릭스는 검은색과 흰색의 사각형을 2차원으로 배열하여 구성되는 바코드로서, 통상의 데이터 사이즈는 2Kbyte까지 가능하며, 하나의 데이터 매트릭스는 2,335개의 숫자와 글자(alphanumeric character)를 기록할 수 있다. 상기의데이터 매트릭스의 심볼(symbole) 크기는 10 X 10 부터 144 X 144의 크기까지 가능하며, 단일의 데이터 매트릭스부터 가로 세로로 복수개로 조합한 데이터 매트릭스가 상용화되어 있다.
Among these barcodes, the data matrix is a bar code formed by arranging black and white squares in two dimensions. The normal data size is 2Kbyte, and one data matrix can record 2,335 numeric and alphanumeric characters. Can be. The symbol size of the data matrix may range from 10
도면 제2도는 본 발명에서 인식 대상으로 하는 2 X 2 데이터 매트릭스의 구성을 도시한다. 도면의 2 X 2 데이터 매트릭스(101)는 단일의 데이터 매트릭스를 가로 세로로 2개씩 조합한 구성으로서, 데이터 매트릭스의 가장 좌측과 우측에는 바코드의 시작을 구분할 수 있는 좌측 파인터 패턴(103)과 하측 파인터 패턴(104)이 위치한다.
2 shows the configuration of a 2 × 2 data matrix to be recognized in the present invention. The 2
도면 제3도는 2 X 2 데이터 매트릭스의 기본 패턴을 도시한다. 도면의 2 X 2 데이터 매트릭스(101)는 가로 세로로 2개씩의 단일 데이터 매트릭스가 결합된 구성으로서 각각의 단일 데이터 매트릭스는 가장 좌측과 가장 하단에 파인더 패턴을 구비한다. 또한 각각의 단일 데이터 매트릭스는 가장 우측과 최상단에 바코드패턴을 판독하기 위한 기본 심볼의 크기를 ‘0’과‘1’로 구분되도록 표시하는 패턴이 위치하며, 이 패턴을 ‘클락 트랙’(102: clock track) 이라 부른다. 상기의 단일 데이터 매트릭스를 각각 가로 세로로 2개씩 결합한 2 X 2 데이터 매트릭스(101)는 도면 제7도에 도시된 바와 같이, 데이터 매트릭스의 가장 좌측과 우측에는 각각의 바코드의 시작을 구분할 수 있는 좌측 파인더 패턴(103)과 하측 파인더 패턴(104)이 위치하고, 가장 우측과 최상단에 바코드 패턴을 판독하기 위한 기본 심볼의 크기를 ‘0’과‘1’로 구분되도록 표시하는 클락 트랙(102)이 배치된다. 또한 상기 2 X 2 데이터 매트릭스(101)의 가로 빛 세로방향의 중앙에는 각각 단일의 데이터 매트릭스를 구분할 수 있는 파인더 패턴과 클락 트랙이 위치한다.
3 shows the basic pattern of a 2 × 2 data matrix. The 2 × 2 data matrix 101 of the figure is a configuration in which two single data matrices are combined horizontally and vertically, and each single data matrix has a finder pattern at the leftmost and bottommost. In addition, each single data matrix has a pattern indicating the size of the basic symbol for reading the barcode pattern at the rightmost and the topmost so as to be divided into '0' and '1'. clock track). As shown in FIG. 7, the 2
도면 제4도는 데이터 매트릭스를 인쇄하거나 스캔(scan) 시 발생되는 통상의 오류를 도시한다. 먼저 도면 제4도의 (a)는 정상 상태의 바코드를 도시하며 이에 대해 (b)의 그림은콘트라스트(contrast)가 잘못 조절된 데이터 매트릭스를 도시한다.상기의 콘트라스트 오류는 바코드를 인쇄할 때 프린터의 밝기 및 콘트라스트의 설정이나, 판독시에 스캐너의 밝기 레벨 설정이 잘못된 경우에 발생한다. Figure 4 shows a typical error that occurs when printing or scanning a data matrix. First, Figure 4 (a) shows a barcode in a steady state, while the diagram in (b) shows a data matrix in which the contrast is incorrectly adjusted. Occurs when the brightness and contrast settings or the scanner's brightness level settings are incorrect at the time of reading.
그림의(c)와 (d)는 데이터 매트릭스를 인쇄하는 프린터에서 잉크의 번짐이나 인쇄 대상 지질에따른 인쇄 영역을 확장에 의한 오류를 도시한다. 그림 (c)에 의한 오류를 도시한다. 제4도의 (e)는 프린터의 해상도나 데이터 매트릭스의 해상도가 지나치게 낮게 설정되거나 급지 속도가 불균일한 경우에 발생되는 패턴의 손실을 도시한다. 그림의 (f)는 프린터의 급지 속도가 잘못되거나, 데이터 매트릭스와 프린터의 픽셀 크기가 일치하지 않는 경우 발생되는 축방향으로 불균일(axial nonuniformity)한 데이터 매트릭스를 도시한다. 그림 (g)는 프린터 급지의 미끌어짐이나 불균일한 급지 속도 등에 의한 데이터 매트릭스의 일그러짐(grid nonuniformity)을 도시한다. 도면 제4도에 도시된 오류는 데이터 매트릭스를 인쇄하거나 스캔(scan)할 경우로 설명이 되었으나, 상기의 데이터 매트릭스를 고정된 카메라나 휴대용 단말기 등에 부착된 카메라로 판독하는 경우에도 오류가 발생된다. Figures (c) and (d) show errors due to the spreading of the ink or the printing area according to the print target lipid in the printer printing the data matrix. The error by figure (c) is shown. FIG. 4E shows the loss of the pattern generated when the resolution of the printer or the resolution of the data matrix is set too low or the feeding speed is uneven. Figure (f) shows an axial nonuniformity data matrix that occurs when the printer's feeding speed is incorrect or when the data matrix and the printer's pixel size do not match. Figure (g) shows the grid nonuniformity of the data matrix due to the printer feeding slip or uneven feeding speed. The error shown in FIG. 4 is described as a case of printing or scanning a data matrix. However, an error occurs even when the data matrix is read by a camera attached to a fixed camera or a portable terminal.
상기의 도면 제4도의 (c)와 (d)에 도시된 데이터 매트릭스의 번짐 현상이나 (e)에 도시된 패턴의 손실은 자동 초점(auto focus) 기능과 카메라의 해상도를 증가 시킴으로써 극복이 가능하다. 그러나 (b)에 도시된 콘트라스트(contrast)에 의한 오류는 카메라의 자동 노출(autoexposure/auto iris) 기능이 있더라도 주변의 밝기에 따라 발생될 수 있을 뿐만 아니라 카메라가 부착된 단말기나 손에 의한 그림자의 영향으로 단일의 데이터 매트릭스 영상 내에서도 밝기의 불균일 현상이 발생된다. 또한 (f)의 축방향 불균일(axial nonuniformity) 현상과, (g)의 데이터 매트릭스의 일그러짐(grid nonuniformity) 현상은 휴대용 단말기와 데이터 매트릭스가 위치한 평면이 평행을 이루지 못하거나, 지나치게 작은 카메라 렌즈에 의해 항상 발생될 수 있는 현상이다. 본 발명은 상기의 축방향 불균일(axial nonuniformity), 데이터매트릭스의 일그러짐(grid nonuniformity)이 발생하더라도 영상으로부터 데이터 매트릭스를 판독할 수 있도록 하는 장치 및 그 방법을 제공한다.
The bleeding of the data matrix and the loss of the pattern shown in (e) shown in FIGS. 4C and 4D can be overcome by increasing the resolution of the camera and the auto focus function. . However, the error due to contrast shown in (b) may not only occur depending on the brightness of the surroundings, even if the camera has an autoexposure / auto iris function. As a result, unevenness in brightness occurs within a single data matrix image. In addition, the axial nonuniformity phenomenon in (f) and the grid nonuniformity phenomenon in (g) are caused by a camera lens that is not parallel with the mobile terminal and the plane where the data matrix is located or is too small. This is a phenomenon that can always occur. The present invention provides an apparatus and method for enabling the reading of a data matrix from an image even when the above axial nonuniformity and grid nonuniformity occur.
도면 제5도는 일그러진 데이터 매트릭스의 영상을 보정하는 경우 발생되는 블러링(blurring)현상을 도시한다. 카메라의 스큐(skew) 등에 의해 일그러진 데이터 매트릭스의 영상을 직각을 이루는 사각형 형상의 정상 상태의 데이터 매트릭스로 보정하기 위해서는 상기 데이터 매트릭스의 영상을 각각의 픽셀들에 대해 늘이거나 줄이는 과정을 거치게 된다. 그러나 상기의 보정 과정에서 원 데이터 매트릭스의영상에 존재하지 않는 픽셀을 새롭게 만들어 내거나 존재하던 픽셀들을 원래의 픽셀 수보다 작은 수의 픽셀로 줄이게 되므로 보정이 완료된 영상은 원영상에 손실을 가져올 수 밖에 없는 한계가 있다. 도면 제5도는 상기의 보정에 의한 2 X 2 데이터 매트릭스(102) 영상에 손실이 일어나 영상이 전반적으로 흐려진(blurring) 것을 나타내며, 이로부터 판독된 데이터는 그 오류가 더욱 증가할 수 밖에 없게 된다. 따라서본 발명에서는 원 데이터 매트릭스 영상의 손실을 최소화하여 직접 데이터 매트릭스의 영상으로부터 데이터를 판독하는 장치 및 그 방법을 제공한다.
5 illustrates a blurring phenomenon that occurs when correcting an image of a distorted data matrix. In order to correct an image of the data matrix distorted by a camera skew or the like into a rectangular data matrix in a rectangular shape at right angles, the image of the data matrix is stretched or reduced for each pixel. However, in the above correction process, a pixel that does not exist in the image of the original data matrix is newly created or existing pixels are reduced to a smaller number of pixels than the original number of pixels. There is a limit. FIG. 5 shows that the image of the 2 × 2 data matrix 102 caused by the correction is lost and the image is generally blurred, and the data read therefrom is inevitably increased in error. Accordingly, the present invention provides an apparatus and method for directly reading data from an image of a data matrix by minimizing loss of an original data matrix image.
도면 제6도는 본 발명의 스큐된 이차원 바코드 디코딩 장치의 구성을 도시한다. 본 발명의 영상에 포함된 이차원 바코드 추출 장치는 바코드(100)를 촬영하는 카메라(110)와 상기 카메라(110)로부터의 컬러영상 데이터를 저장하는 제1 프레임 메모리(120) 및 상기제1 프레임 메모리(120)의 영상 데이터를 출력하는 디스플레이(130)로 구성되는 단말을 기본으로 한다. 상기 제1프레임 메모리(120)는 통상의 컬러 이미지를 저장하기 위한 것으로서 RGB방식이나 YUV방식 등의 컬러 영상이 카메라(110)로부터 데이터화되어 제공되면 픽셀(pixel)별로 데이터를 저장하도록 구성할 수 있다. 도면에서는 생략되었으나, 상기의 단말은 카메라(110)와 제1 프레임 메모리(120) 사이에 A/D 변환기와 상기 제1 프레임 메모리(120)와 상기 디스플레이(130) 사이에 D/A 변환기를 구비하고 상기 카메라(110), A/D 변환기, 제1 프레임메모리(120), D/A 변환기, 디스플레이(130)를 제어하는 별도의 프로세서를 구비한다. 6 shows the configuration of the skewed two-dimensional barcode decoding apparatus of the present invention. The two-dimensional barcode extracting apparatus included in the image of the present invention includes a
이하 도면 제6도의 구성 요소들의 기능과 작용을 각각 설명한다.Hereinafter, functions and operations of the components of FIG. 6 will be described.
-DMA 제어기(140)-DMA controller 140
DMA(direct memory access) 제어기(140)는 후술할 제어부(160)의 전송 명령에 의해 제1프레임 메모리(120)에 저장된 카메라(110)로부터의 영상 데이터를 후술할 제2프레임 메모리(150)에 저장한다.
The direct memory access (DMA) controller 140 transmits the image data from the
-제2프레임 메모리(150)
제2프레임 메모리(150)는 제1프레임 메모리(120)의 영상 데이터를 저장하기 위한 것으로서 전술한 제1프레임 메모리(120)와 같은 픽셀 해상도로 구성되며, 상기 제2프레임 메모리(150)의 데이터를 최종적으로 바코드로 판독한다.
The
-제어부(160)
프레임 메모리 간의 데이터 이동과 개별 처리부들을 제어하며 최종적으로 데이터 매트릭스 바코드를 판독한다.
Data movement between the frame memories and individual processing units are controlled and the data matrix barcode is finally read.
-매트릭스 판독부(160a)
제2프레임 메모리(150)내의 바코드 판독 결과가 ‘0’과‘1’로 저장된 2D 매트릭스 메모리(260)의 2D 매트릭스 바코드를 최종적으로 판독한다.
The barcode reading result in the
-연산 프레임 메모리(170)
연산 프레임 메모리(170)는 상기 제2프레임 메모리(150)의 데이터를 연산처리를 하기 위한 기억 장치로서 상기 제2프레임 메모리(150)의 데이터를 보존하면서 연산처리를 하도록 구성된다.
The
-그레이 레벨 변환부(180)
제2 프레임 메모리(150)에 저장된 카메라(110)로부터의 영상을 그레이 레벨로 변환한다.
The image from the
-이중 선형 보간부(190)Dual linear interpolator 190
그레이 레벨로 변환된 제2 프레임메모리(150)의 영상 데이터를 연산 프레임 메모리(170)에 축소하여 저장하기 위한 연산을 수행한다. 영상의 축소는 정수배의 비율로 수행된다.
The image data of the
-영역 필터부(200)
연산 프레임 메모리(170)내의 그레이 레벨 영상에 대해 마스크(mask)로 사용할 3 X 3 픽셀 크기의 메모리를 할당하고, 현재 연산 대상 픽셀의 위치를 중심으로 가로 세로 3개씩의 픽셀값을 읽어 최대값과 최소값을 구하고 그 차이값을 에지값(edge value)으로 연산한다.
Allocate a memory of 3
-이진 영상 변환부(210)
연산 프레임 메모리(170) 또는제2 프레임 메모리(150)의 그레이 레벨 영상 데이터를‘1’과 ‘0’의 이진 영상으로 변환한다.
Gray level image data of the
- 연결 영역 추출부(220)-Connection area extraction unit 220
연결 영역 추출부(220)는 연산 프레임 메모리(170)내의 이진 영상에 대해 인접한 ‘white’ 픽셀 그룹들을 판단하고 각 그룹별로 고유 번호를 부여하여 레이블링(labeling)을 수행하며, 상기 레이블링(labeling)으로 구분되는 ‘white’ 픽셀 그룹들중에서 가장 많은 픽셀들로 구성되는 ‘white’ 픽셀 그룹을 추출한다. 이어연결 영역 추출부(220)는 추출된 가장 많은 픽셀들로 구성되는 ‘white’ 픽셀 그룹을 제외한 나머지 그룹의 픽셀 값을 ‘black’으로 치환하여 바코드의 후보 영역을 추출한다. 인접한 ‘white’ 픽셀 그룹들을 레이블링(labeling)할 때, 하나의 ‘white’ 픽셀에 대해 가로 또는 세로 방향으로 접한 ‘white’ 픽셀들은 같은 그룹으로 판단하고,가로 또는 세로 방향으로 ‘black’ 픽셀이 존재하거나 대각선 방향으로 ‘white’ 픽셀이 있을 시에는 그룹이 아닌 것으로 판단한다.
The connection area extractor 220 determines adjacent 'white' pixel groups for the binary image in the
-주변 기울기 추출부(230)Peripheral
주변 기울기 추출부(230)는 연결 영역 추출부(220)가 연산 프레임 메모리(170)내의 이진 영상에 대해 가장 많은 픽셀들로 구성되는 ‘white’ 픽셀 그룹을 제외한 나머지 그룹의 픽셀 값을 ‘black’으로 치환하여 추출한 바코드의 후보 영역에 대해 최대 영역의 위치를 구하여 수직으로 중앙을 중심으로 1/2 윗쪽의 경계 좌표와 1/2 아랫쪽의 경계 좌표와의 기울기(수직 기울기 : Gradient Vert)를 계산하고, 수평으로 중앙을 중심으로 1/2 오른쪽 경계 좌표와 1/2 왼쪽 경계 좌표와의 기울기(수평 기울기 Gradient Horz)를 계산한다. 또한, 파인터 패턴검출/회전부(240)에 의하여 처리된 제2 프레임 메모리(150)내의 바코드 영상에서 오른쪽 수직 위치에 놓인 심볼들을 모두 포함하는 기울기, 바코드의 중앙 수직 위치에 놓인 심볼들을 모두 포함하는 기울기, 바코드의 상단 수평 위치에 놓인 심볼들을 모두 포함하는 기울기, 바코드의 수평 중심 위치에 놓인 심볼들을 모두 포함하는 기울기를 계산한다.
The peripheral gradient extractor 230 'black' the pixel values of the remaining groups except the 'white' pixel group, which is composed of the largest number of pixels for the binary image in the
-파인터 패턴 검출/회전부(240)-Finder pattern detection / rotation unit 240
제2 프레임 메모리(150)내의 바코드 영상에서 파인더 패턴(finder pattern)과 그 위치를 검출하며, 이를 근거로 제어부가 제2 프레임 메모리(150)내의 바코드 영상을 90도 단위로 회전시킨 영상 데이터로 재기록한다. 파인터 패턴 검출/회전부(240)에 의하여 처리된 바코드 영상은 제2 프레임 메모리(150)내에서 좌측 파인더 패턴(103)과 하측 파인더 패턴(104)이 각각 영상의 좌측과 하단에 위치하고, 가장 우측과 최상단에 바코드 패턴을 판독하기 위한 기본 심볼의크기를 ‘0’과 ‘1’로 구분되도록 표시하는 클락 트랙(102)이 배치된다.
The finder pattern and its position are detected from the barcode image in the
-심볼 연산부(250)
심볼 연산부(250)는파인터 패턴 검출/회전부(240)에 의하여 처리된 제2 프레임 메모리(150)내의 바코드 영상에서 탐색된 심볼들의 위치에 대해; 오른쪽 수직 기울기를 구할 때 검색된 심볼 위치 정보가 저장된 배열과 중앙 수직 기울기를 구할 때 검색된 심볼 위치 정보가 저장된 배열의 같은 인덱스에 저장된 두 점이 이루는 직선 방정식을 구하고, 상단수평 기울기를 구할 때 검색된 심볼 위치 정보가 저장된 배열과 중앙 수평 기울기를 구할 때 검색된 심볼 위치 정보가 저장된 배열의 같은 인덱스에 저장된 두 점이 이루는 직선 방정식을 구하여, 두 직선이 만나는 교점에 해당하는 픽셀 값이 검은색이면‘1’, 흰색이면 ‘0’을 2D 매트릭스 메모리(260)에 저장한다.
The
-매트릭스 메모리(260)Matrix Memory (260)
2D 매트릭스 메모리(260)는 상기 심볼 연산부(250)에 의해 제2 프레임 메모리(150)내의 바코드 판독 결과를 ‘0’과 ‘1’로 저장하는 기억장치로서 제어부(160)내의 2D 매트릭스 판독부(160a)에 의해 2D 매트릭스 메모리(260)의2D 매트릭스 바코드가 판독된다.
The 2D matrix memory 260 is a memory device which stores the barcode reading result in the
따라서, 본 발명의 스큐된 데이터 매트릭스 바코드 디코딩 장치는;Accordingly, the skewed data matrix barcode decoding apparatus of the present invention;
바코드(100)를 촬영하는카메라(110)와 상기 카메라(110)로부터의 컬러 영상데이터를 저장하는 제1 프레임 메모리(120)및 상기 제1 프레임 메모리(120)의 영상 데이터를 출력하는 디스플레이(130)로 구성되는 단말과,The
프레임 메모리 간의 데이터 이동과 개별 처리부들을 제어하며 최종적으로 데이터 매트릭스 바코드를 판독하는 제어부(160);와A
상기 제어부(160)의 내부에는제2 프레임 메모리(150)내의 바코드 판독 결과가 ‘0’과‘1’로저장된 2D 매트릭스 메모리(260)의 2D 매트릭스 바코드를 최종적으로 판독하는 제2D 매트릭스 판독부(160a);를 구비하며,A second 2D matrix reading unit for finally reading the 2D matrix barcode of the 2D matrix memory 260 in which the barcode reading result in the
상기 제어부(160)에는,The
상기 제어부(160)의 전송명령에 의해 저술한 제1프레임 메모리(120)에 저장된 카메라(110)로부터의 영상 데이터를 제2프레임 메모리(150)에 저장하는 DMA 제어기(140);A DMA controller 140 for storing image data from the
제1프레임 메모리(120)의 영상 데이터를 저장하는 제2프레임 메모리(150);A
상기 제2프레임 메모리(150)의 데이터를 연산처리를 하기 위한 연산 프레임 메모리(170);An
제2 프레임 메모리(150)에 저장된 카메라(110)로부터의 영상을 그레이 레벨로 변환하는 그레이 레벨 변환부(180);A
그레이 레벨로 변환된 제2 프레임메모리(150)의 영상 데이터를 연산 프레임 메모리(170)에 축소하여 저장하기 위한 연산을 수행하는 이중 선형 보간부(190);A dual linear interpolation unit 190 for performing an operation for reducing and storing the image data of the
연산 프레임 메모리(170)내의 그레이 레벨 영상에 대해 에지값(edge value)을 연산하는 영역 필터부(200);An
연산 프레임 메모리(170) 또는 제2 프레임 메모리(150)의 그레이 레벨 영상 데이터를‘1’과 ‘0’의 이진 영상으로 변환하는 이진 영상 변환부(210);A
연산 프레임 메모리(170)내의 이진 영상에 대해 인접한 ‘white’ 픽셀 그룹들을 판단하고 각 그룹별로 고유 번호를 부여하여 레이블링(labeling)을 수행하며, 상기 레이블링(labeling)으로 구분되는 ‘white’ 픽셀 그룹들 중에서 가장 많은 픽셀들로 구성되는 ‘white’ 픽셀 그룹을 추출하는 연결 영역 추출부(220);Determining adjacent 'white' pixel groups for the binary image in the
연결 영역 추출부(220)가연산 프레임 메모리(170)내의 이진 영상에 대해 가장 많은 픽셀들로 구성되는 ‘white’ 픽셀 그룹을 제외한 나머지 그룹의 픽셀 값을 ‘black’으로 치환하여 추출한 바코드의 후보 영역에 대해 최대 영역의 위치를 구하여 수직으로 중앙을 중심으로 1/2 윗쪽의 경계 좌표와 1/2 아랫쪽의 경계 좌표와의 기울기(수직 기울기 : Gradient Vert)를 계산하고, 수평으로 중앙을 중심으로 1/2 오른쪽 경계 좌표와 1/2 왼쪽 경계 좌표와의 기울기(수평 기울기 Gradient Horz)를 계산하고,The candidate region of the barcode extracted by replacing the pixel values of the remaining groups except for the 'white' pixel group composed of the most pixels for the binary image in the
파인터 패턴 검출/회전부(240)에 의하여 처리된 제2 프레임 메모리(150)내의 바코드 영상에서 오른쪽 수직위치에 놓인 심볼들을 모두 포함하는 기울기, 바코드의 중앙수직 위치에 놓인 심볼들을 모두 포함하는 기울기, 바코드의상단 수평 위치에 놓인 심볼들을 모두 포함하는 기울기, 바코드의 수평중심 위치에 놓인 심볼들을 모두포함하는 기울기를 계산하는 주변 기울기 추출부(230);A slope including all the symbols placed at the right vertical position in the barcode image in the
제2 프레임 메모리(150)내의 바코드 영상에서 파인더 패턴(finder pattern)과그 위치를 검출하며, 이를 근거로 제어부가 제2 프레임 메모리(150)내의 바코드 영상을 90도 단위로 회전시킨 영상 데이터로 재기록하여, 제2 프레임메모리(150)내에서좌측 파인더 패턴(103)과 하측 파인더 패턴(104)이 각각 영상의 좌측과 하단에 위치하고, 가장 우측과 최상단에 바코드 패턴을 판독하기 위한 기본 심볼의 크기를 ‘0’과 ‘1’로 구분되도록 표시하는 클락 트랙(102)이 배치되도록 연산하는 파인터 패턴 검출/회전부(240);The finder pattern and its position are detected from the barcode image in the
파인터 패턴 검출/회전부(240)에 의하여 처리된 제2 프레임 메모리(150)내의 바코드 영상에서 탐색된 심볼들의 위치에 대해 오른쪽 수직기울기를 구할 때 검색된 심볼 위치 정보가 저장된 배열과 중앙 수직 기울기를 구할 때 검색된 심볼 위치 정보가 저장된 배열의 같은 인덱스에 저장된 두 점이 이루는 직선 방정식을 구하고, 상단 수평 기울기를 구할 때 검색된 심볼위치 정보가 저장된 배열과 중앙 수평기울기를 구할 때 검색된 심볼 위치 정보가 저장된 배열의 같은 인덱스에 저장된 두 점이 이루는 직선 방정식을 구하여, 두 직선이 만나는 교점에 해당하는 픽셀 값이 검은색이면 ‘1’, 흰색이면‘0’을 2D 매트릭스 메모리(260)에 저장하는 심볼 연산부(250);When the right vertical slope is obtained with respect to the position of the symbols searched in the barcode image in the
심볼 연산부(250)에 의해 제2 프레임 메모리(150)내의 바코드 판독 결과를 ‘0’과‘1’로저장하는 2D 매트릭스 메모리(260);A 2D matrix memory 260 which stores the barcode reading result in the
가 연결되어 구성된 것을 특징으로 한다.
Characterized in that is configured to be connected.
또한 본 발명의 영상에 포함된 이차원 바코드 추출 장치는, 바코드(100)를 촬영하는 카메라(110)와 상기 카메라(110)로부터의 컬러 영상 데이터를 저장하는 제1 프레임 메모리(120)및 상기 제1 프레임 메모리(120)의 영상 데이터를 출력하는 디스플레이(130)로 구성되는 단말로부터 제공되는 영상에 포함된 이차원 바코드 영상에 대해,In addition, the two-dimensional bar code extraction apparatus included in the image of the present invention, the
a.촬영된 영상에 바코드가 포함되지 않은 경우a.When the recorded image does not contain a barcode
b.촬영된 영상에 바코드 비슷한 영상을 포함한 경우b. If the recorded image contains barcode-like image
c.바코드가 너무 작게 촬영된 경우c.When the barcode is shot too small
d.디바이스의 열악한 상태로 인한, 또는 처리 효율을 위한 낮은 해상도 d.Low resolution due to poor conditions of the device or for processing efficiency
로 촬영된 영상에 대해 판독 가능한 처리를 하여 이차원 바코드를 추출하는 영상에 포함된 이차원 바코드 추출 장치를 제공한다. 이를 위해 도면 제6도의 구성에 대해 구체적인 작용관계의 순서대로 본 발명의 영상에 포함된 이차원 바코드 추출 장치를 설명한다.
The present invention provides a two-dimensional bar code extraction apparatus included in an image for extracting a two-dimensional bar code by performing a readable process on the image photographed. To this end, the two-dimensional bar code extraction apparatus included in the image of the present invention in the order of the specific working relationship with respect to the configuration of FIG.
1)(direct memory access) 제어기(140)는 제어부(160)의 전송 명령에 의해 제1프레임 메모리(120)에 저장된 카메라(110)로부터의 영상 데이터를 제2프레임 메모리(150)에 저장한다.
1) (direct memory access) The controller 140 stores the image data from the
2)이어 제어부(160)는 제2프레임 메모리(150)의 컬러 영상을 그레이 레벨 변환부(180)을 통해 그레이 레벨로 변환한다. 2) The
도면 제7도는 상기의 제2프레임 메모리(150)의 컬러 영상이 그레이 레벨 변환부(180)를 통해 그레이 레벨로 변환되어 저장되는 구성을 도시한다.
FIG. 7 illustrates a configuration in which the color image of the
카메라(110)로부터의 영상은 제1 프레임 메모리(120)에 저장되고DMA 제어기(140)에 의해 제2 프레임 메모리(150)에 저장되며, 상기 제2 프레임메모리(150)에 저장된 RGB(red-green-blue) 컬러영상을 그레이 레벨로 변환한다.
The image from the
3)다음으로 제어부(160)는 이중선형 보간부(190)로써 그레이 레벨로 변환된 제2 프레임메모리(150)의 영상 데이터를 연산 프레임 메모리(170)에 정수배의 비율로 축소하여 저장한다. 도면 제8도는 상기의 제2 프레임 메모리(150)의 영상 데이터를 연산 프레임 메모리(170)에 축소하여 저장하는 구성을 도시한다. 3) Next, the
본 발명에서는 1/4의축소 비율로써 제2 프레임 메모리(150)의 영상 데이터를연산 프레임 메모리(170)에 축소하여 저장하는 것을 기본으로 한다.
In the present invention, the image data of the
4)도면 제9도는 상기 과정에 의해 연산프레임 메모리(170)에 저장된 그레이 레벨 영상 데이터를 처리하는 일련의 과정을 도시한다. 4) FIG. 9 illustrates a series of processes for processing gray level image data stored in the
제어부(160)는연산 프레임 메모리(170)에 저장된 축소된 영상 데이터를 영역 필터부(200)에 제공하여 영상의 에지(edge)값을 연산한다. 영역 필터부(200)는, 연산프레임 메모리(170)내의 그레이 레벨 영상에 대해 마스크(mask)로사용할 3 X 3 픽셀 크기의 메모리를 할당하고, 현재 연산대상 픽셀의 위치를 중심으로 가로 세로 3개씩의 픽셀값을 읽어 최대값과 최소값을 구하고 그 차이값을에지값(edge value)으로 연산한다. 상기의 에지값연산이 전체 축소된 영상 데이터에 대해 완료되면 상기 에지값으로 구성되는 영상을 연산 프레임 메모리(170)에저장한다.
The
5)이어 제어부(160)는 연산프레임 메모리(170)에 저장된 축소된 영상 데이터의 에지값 영상에 대해 이진 영상 변환부(210)에 제공하여 이진화 영상으로 변환한다.
5) The
6)이어 제어부(160)는 상기연산 프레임 메모리(170)에 저장된 축소된 영상 데이터의 에지값 이진화 영상 데이터를 연결 영역 추출부(220)에 제공하여, 영상 내의 인접한 ‘white’ 픽셀 그룹들을 판단하고 각 그룹별로 고유 번호를 부여하여 레이블링(labeling)을 수행하며, 상기 레이블링(labeling)으로 구분되는 ‘white’ 픽셀 그룹들중에서 가장 많은 픽셀들로 구성되는 ‘white’ 픽셀 그룹을 추출한다. 6) The
도면 제10도는 축소된 영상 데이터의 에지값 이진화 영상 데이터 처리의 일례로서의 일부 영상으로서, 축소된 영상 데이터의 에지값 이진화 영상 데이터에 대해 영상 내의 인접한 ‘white’ 픽셀 그룹들을 판단하고 각 그룹별로 고유 번호를 부여하여 레이블링(labeling)을 수행한 결과 영상의 일 실시예를 도시한다.도면 제10도에 도시된 인접한 ‘white’ 픽셀 그룹들은 ‘1’로 레이블이 주어진 그룹1으로부터 ‘10’으로 레이블링된 그룹 10까지 이며 가장 많은 픽셀들로 구성되는 ‘white’ 픽셀그룹은 그룹 ‘9’로추출될 수 있음을 도시한다.FIG. 10 is a partial image as an example of edge value binarization image data processing of reduced image data, wherein adjacent 'white' pixel groups in the image are determined for edge value binarization image data of the reduced image data, and a unique number is obtained for each group. As a result of performing the labeling by attaching, an example of the image is shown. The adjacent 'white' pixel groups shown in FIG. 10 are labeled '10' from
이어 연결 영역 추출부(220)는 추출된 가장 많은 픽셀들로 구성되는 그룹을 ‘white’ 로 치환하고, 픽셀 그룹을 제외한 나머지 그룹의 픽셀 값을 ‘black’으로 치환하여 ‘white’의 바코드의 후보 영역을 추출한다.
Subsequently, the connection area extractor 220 replaces the group consisting of the largest number of extracted pixels with 'white', and replaces the pixel values of the remaining groups except the pixel group with 'black' to candidate for the barcode of 'white'. Extract the area.
7)제어부(160)는 상기의 추출된 ‘white’의 바코드의 후보 영역을 포함하는 연산 프레임 메모리(170)의 영상 데이터를 주변 기울기 추출부(230)에 제공하여, 연산 프레임 메모리(170)의 영상 데이터의 수직방향으로 중앙을 중심으로 윗쪽의 경계 좌표와 아랫쪽의 경계 좌표, 세로 방향 높이 및 기울기(수직 기울기 : Gradient_Vert)를 계산하고, 수평방향으로 중앙을 중심으로 1/2 오른쪽 경계 좌표와 1/2 왼쪽 경계 좌표, 가로 방향 길이 및 기울기(수평 기울기 : Gradient_Horz)를 계산한다. 7) the
도면 제11도는 연산 프레임 메모리(170)의 영상 데이터를 주변 기울기 추출부(230)에 제공하여, 바코드의 후보 영역을 추출하는 구성을 도시한다. 바코드 후보 영역은 전술한 레이블링 과정에 의해 ‘white’로 처리되고, 나머지 부분은‘black’으로 처리되어 있으나, 도면에서는 표기의 명확한 구분을 위해 바코드 후보 영역을 제외한 부분을 ‘white’로 도시한다. 주변 기울기 추출부(230)는 연산 프레임 메모리(170)의 영상 데이터의 수직 방향(Y축)으로 중앙을 중심으로 이격된 경계 좌표인 (Xa, Ya)와 (Xb, Yb)를 구하고 이를 연결하는 직선의 방정식을구한다. FIG. 11 illustrates a configuration of extracting candidate regions of a barcode by providing image data of the
또한 아랫쪽의 중앙을 중심으로 이격된 경계좌표인 (Xc, Yc)와 (Xd, Yd)를 구하여 이를 연결하는직선의 방정식을 구한다. 수평방향(x축 방향)으로는 우측 중앙을 중심으로 이격된 경계 좌표인 (Xb, Yb)와 (Xc, Yc)를 구하고 이를 연결하는 직선의 방정식을 구한다. 또한 좌측의 중앙을 중심으로 이격된 경계좌표인 (Xa, Ya)와 (Xd, Yd)를 구하여 이를 연결하는 직선의 방정식을 구한다. 추출된 4개의 직선방정식을 이용하면 바코드의 후보 영역의 주변길이 및 기울기를각각 계산할 수 있다. 일 실시예로서 제2프레임메모리(150)의 크기가 640 X 480이고 연산 프레임 메모리(170)의 크기가 160 X 120인 경우 상기 이격거리를 5~10개의 픽셀로 설정하여 세로 방향 높이 및 기울기와 가로방향 길이 및 기울기를 계산할 수 있다.In addition, we obtain (Xc, Yc) and (Xd, Yd), which are the boundary coordinates spaced from the center of the bottom, and find the straight line equation connecting them. In the horizontal direction (x-axis direction), the boundary coordinates (Xb, Yb) and (Xc, Yc) spaced from the center of the right side are obtained, and the equation of a straight line connecting them is obtained. In addition, the equations of a straight line connecting (Xa, Ya) and (Xd, Yd), which are spaced coordinates centered on the left center, are obtained. Using the extracted four linear equations, the peripheral length and the slope of the candidate region of the barcode can be calculated, respectively. In an embodiment, when the size of the
도면 제12도는 연산 프레임 메모리(170)의 영상 데이터로부터 주변 기울기 추출부(230)에 의해 추출된 바코드의 후보 영역을 이용하여 바코드의 후보 영역의 길이 및 기울기를 구하는 구성을 도시한다.
FIG. 12 illustrates a configuration for obtaining the length and the slope of the candidate region of the barcode by using the candidate region of the barcode extracted by the peripheral
8)다음으로 제어부(160)는연결 영역 추출부(220)에 의해 제공된 바코드 후보 영역의 세로 방향 높이 Labeling_height 와 가로 방향 길이 Labeling_width, 및주변 기울기 추출부(230)에 의해 계산된 수직 기울기 Gradient_Vert와 수평 기울기 Gradient_Horz를이용하여 바코드 판독이 유효한 영상인지를 판단한다. 상기의 판단은 두 가지로 수행되며, 제1프레임 메모리(120)에 저장된 바코드후보 영역의 세로 방향 높이 Labeling_height 와 가로 방향 길이 Labeling_width의 비율이 일정 비율 이내이면 판독이 가능한 것으로 판단하고 지나치게 차이가 나는 경우에는 인식 실패로 간주하여, 제어부(160)의 전송 명령에 의해 카메라(110)로부터의 새로운 영상 데이터를 제1프레임 메모리(120)로부터 제2 프레임 메모리(150)에저장하고 처음부터 다시 처리를 수행한다. 아래의 연산식은 세로방향 높이 Labeling_height 와 가로 방향 길이Labeling_width의 비율이 일정값 이내이면 바코드 판독 처리하고 그렇지 않으면 에러(인식실패)로 처리하는 일례를 나타낸다.8) Next, the
intbig, small;intbig, small;
big= Labeling_height;big = Labeling_height;
small= Labeling_width; small = Labeling_width;
If( Labeling_height <Labeling_width )If (Labeling_height <Labeling_width)
{{
big = Labeling_width;big = Labeling_width;
small = Labeling_height;small = Labeling_height;
}}
if( big / 3 * 2 >small )if (big / 3 * 2> small)
error;
error;
두 번째의 판단은,The second judgment is
주변 기울기 추출부(230)에의해 계산된 수직 기울기 Gradient_Vert와 수평 기울기Gradient_Horz 값에 대해 수직 기울기 Gradient_Vert값이 수직에 가깝거나, 수평 기울기 Gradient_Horz 값이 수평에 가깝거나, 또는 수직 기울기 Gradient_Vert와 수평 기울기 Gradient_Horz 값이 서로 수직에 가까울 때, 즉 수직 기울기 Gradient_Vert와 수평 기울기 Gradient_Horz의 곱이 0보다 작을 경우에 판독이 가능한 것으로 판단하고 그렇지 않은 경우에는 인식 실패로 간주하여, 제어부(160)의 전송 명령에 의해 카메라(110)로부터의 새로운 영상 데이터를 제1프레임 메모리(120)로부터 제2 프레임 메모리(150)에저장하고 처음부터 다시 처리를 수행한다. 상기의 판단에서 수직 기울기 Gradient_Vert와 수평 기울기 Gradient_Horz 값은연산 프레임 메모리(170)의 영상 데이터로부터 주변 기울기 추출부(230)에 의해 추출된 바코드의 후보 영역의 경계좌표를 이용하여 구할 수 있다.이 때 수직 기울기 Gradient_Vert는 역수로 계산하여 Gradient_Horz 값과 같은 조건으로 계산하는 것이 바람직하다. 이를 도면 제 11도를 인용하여 예를 들면 다음과 같다. 도면제11도에서, 좌측 윗쪽의 경계 좌표인 (Xa, Ya)와 (Xb, Yb), 하단 경계 좌표(Xc, Yc)와 (Xd, Yd)를 이용하면, The vertical gradient Gradient_Vert and horizontal gradient Gradient_Vert values calculated by the
절대값 [Gradient_Vert]= |(Xa-Xd)/(Ya-Yd)|Absolute value [Gradient_Vert] = | (Xa-Xd) / (Ya-Yd) |
절대값 [Gradient_Horz]= |(Yd-Yc)/(Xd-Xc)| 가 된다.Absolute value [Gradient_Horz] = | (Yd-Yc) / (Xd-Xc) | .
이때 절대값 [Gradient_Vert]는 수직에 가까울수록, 절대값 [Gradient_Horz]는 수평에 가까울수록 0에 가까운 작은 값을 가진다. At this time, the absolute value [Gradient_Vert] has a small value close to 0 as the vertical value is close, and the absolute value [Gradient_Horz] is close to the horizontal value.
그러므로 수직 기울기Gradient_Vert값이 수직에 가깝거나, 수평 기울기 Gradient_Horz 값이 수평에 가깝거나, 또는 수직 기울기 Gradient_Vert와 수평 기울기 Gradient_Horz 값이서로 수직에 가까울 때, 즉 수직 기울기 Gradient_Vert와수평 기울기 Gradient_Horz의 곱이 0보다 작을 경우에 판독이 가능한 것으로 판단하기 위한 조건은 다음 중 어느 하나를 만족하면 된다.Therefore, when the vertical gradient Gradient_Vert is close to vertical, the horizontal gradient Gradient_Horz is close to horizontal, or the vertical gradient Gradient_Vert and the horizontal gradient Gradient_Horz are close to vertical, i.e., the product of the vertical gradient Gradient_Vert and the horizontal gradient Gradient_Horz is less than 0. In this case, the condition for determining that the reading is possible may be any of the following.
(1)절대값 [Gradient_Vert] <r일때,(1) When absolute value [Gradient_Vert] <r,
(2)절대값 [Gradient_Hor] <r일때 (2) When absolute value [Gradient_Hor] <r
(3)( Gradient_Vert* Gradient_Horz ) <0일 때(3) (Gradient_Vert * Gradient_Horz) <0
이에 대한 일 실시예로서 제2 프레임 메모리(150)의 영상 데이터의 가로 세로 해상도가 640 X 480이고, 연산 프레임 메모리(170)의 영상 데이터가 160 X 120일 때 일실시예로서,As an example, when the horizontal and vertical resolution of the image data of the
(1)절대값 [Gradient_Vert]< 0.000001일 때,(1) When absolute value [Gradient_Vert] <0.000001,
(2)절대값 [Gradient_Hor]< 0.000001일 때 (2) When absolute value [Gradient_Hor] <0.000001
(3)( Gradient_Vert * Gradient_Horz ) <0일 때(3) (Gradient_Vert * Gradient_Horz) <0
판독이 가능한 것으로 판단된다.
It is judged that the reading is possible.
9)제어부(160)가 연결 영역 추출부(220)에 의해 제공된 바코드 후보 영역의세로 방향 높이 Labeling_height 와 가로 방향 길이 Labeling_width, 및 주변 기울기 추출부(230)에 의해 계산된 수직 기울기 Gradient_Vert와 수평 기울기 Gradient_Horz를이용하여 바코드 판독이 가능한 것으로 판단한 경우, 제어부(160)는연산 프레임 메모리(170)의 바코드 후보 영역에 대응하는 제2 프레임 메모리(150)의 영상에서 상기 바코드 후보 영역을 제외한 영역의 픽셀값을 ‘white’로 치환한다. 9) The
전술한 바와 같이 제2 프레임 메모리(150)의 영상 데이터는 제어부(160)에 의해 이중 선형 보간부(190)로써 연산 프레임 메모리(170)에 축소하여 저장되었으므로, 상기의 연산 프레임 메모리(170)의 바코드 후보 영역의 상대번지를 축소된 비율만큼 확대하여 대응하는 제2 프레임메모리(150)의 영역을 추출할 수 있다.As described above, the image data of the
도면 제13도는 연산 프레임 메모리(170)의 바코드 후보 영역에 대응하는 제2 프레임 메모리(150)의 영상을 추출하는 구성을 도시한다.
FIG. 13 illustrates a configuration of extracting an image of the
10)이로써 제2 프레임 메모리(150)에는 바코드 후보 영역에 대응하는 부분만 남고 나머지 공간은 ‘white’로 채워진 영상으로 변환된다. 10) only the portion corresponding to the barcode candidate region remains in the
도면 제14도는 제2 프레임 메모리(150)에는 바코드 후보 영역에 대응하는 부분만 남고 나머지 공간은 ‘white’로 채워진 영상 변환 예를 도시한다.FIG. 14 illustrates an image conversion example in which only a portion corresponding to a barcode candidate region remains in the
이때 제어부(160)는, 제2프레임 메모리(150)의 바코드 후보 영역의 크기가 일정 이하의 크기로 판독되면 인식 실패로 간주하여, 제어부(160)의 전송 명령에 의해 카메라(110)로부터의 새로운 영상 데이터를 제1프레임 메모리(120)로부터 제2 프레임 메모리(150)에 저장하고 처음부터 다시 처리를 수행한다. 본 발명에서는 일례로 제2프레임 메모리(150)에는 바코드 후보 영역의 픽셀 수가 전체 심볼 수 이하인 경우 인식 실패로 간주하여, 제어부(160)의 전송 명령에 의해 카메라(110)로부터의 새로운 영상 데이터를 제1프레임 메모리(120)로부터 제2 프레임 메모리(150)에 저장하고 처음부터 다시 처리를 수행한다.
At this time, if the size of the barcode candidate region of the
11) 상기 제2 프레임 메모리(150)의 이진 바코드 영상이 준비되면, 제어부(160)는 상기 제2 프레임 메모리(150)의 이진 바코드 영상을 심볼 연산부(250)에 제공하여 심볼의 좌표를 추출한다. 먼저 심볼 연산부(250)는 바코드의 오른쪽 수직 방향에 놓인 심볼들을모두 포함하는 기울기를 구한다. 11) When the binary barcode image of the
도면 제15도는 제2 프레임 메모리(150)의 이진 바코드 영상에 대해 오른쪽수직 방향에 놓인 심볼들을 모두 포함하는 기울기를 구하는 구성을 도시한 것이다. 바코드의 오른쪽 수직방향에 놓인 심볼들을 모두 포함하는 기울기는 이진 바코드 영상의 오른쪽 하단의 끝 좌표(vert_right(x,y))(152)를기준으로, 이미지를 포함하는 제2 프레임 메모리(150)의 오른쪽 상단 끝 모서리의 좌표(vert_top(x,y))(151)와 이루는 기울기의 직선을 시작으로 제2 프레임 메모리(150)의 원점방향으로 오른쪽 상단 끝 모서리의 좌표(vert_top(x,y))(151)를 원점 방향으로 한 픽셀씩이동시키면서 최대 심볼 개수를 포함하는 기울기를 구한다. FIG. 15 illustrates a configuration for obtaining a slope including all the symbols placed in the vertical right direction with respect to the binary barcode image of the
이 단계에서 이 바코드의 심볼 크기가 결정되며, 심볼 크기가 결정되는 시점은 제2 프레임 메모리(150)의 오른쪽 상단 끝 모서리의 좌표(vert_top(x,y))(151)와의 기울기로부터 오른쪽 상단 끝점을 왼쪽으로 이동하면서 계산되는 기울기의 직선 상으로 검색된 심볼의 개수가 짝수 최대치에서 다시 줄어들 때를 기준으로 멈추고, 최대 심볼 개수가 검출된 기울기와 이때의 심볼 개수 및 심볼 들의 좌표를 배열에 저장한다.
In this step, the symbol size of the barcode is determined, and the time point at which the symbol size is determined is the upper right endpoint from the slope with the coordinate (vert_top (x, y)) 151 of the upper right corner of the
12)이어 제어부는 심볼 연산부(250)를 통해 바코드의중앙 수직 위치에 놓인 심볼들을 모두 포함하는 기울기를 구한다. 수직 중심 심볼 기울기 초기값(Cv)은 바코드의 오른쪽 수직 방향에 놓인 심볼들을 모두 포함하는 기울기와 좌측 파인더 패턴(103)의 기울기 값을 기준으로 5가지의 경우에 따라 결정한다. 이 때 각각의 기울기는 2진 연산의 유효 숫자를 고려하여 y축 방향의 길이에 대한 x축 방향의 길이로 환산하여 계산한다. 판단의 방법으로서, 수직 중심 심볼 기울기 초기값을 Cv, 바코드의 오른쪽 수직 방향에놓인 심볼들을 모두 포함하는 기울기를 R1, 좌측 파인더 패턴(103)의 기울기 값을 L이라 하면,12) The controller calculates a slope including all the symbols placed at the center vertical position of the barcode through the
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L이 수직에 가까울 때;Cv = LWhen the absolute magnitude of -L is greater than the absolute magnitude of R1 and L is close to vertical; Cv = L
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L이 수직이 아니며 L의절대값 크기가 R1의 절대값 크기에 대해 일정량 이내일 때; Cv =L*0.8 + R1*0.2The absolute magnitude of L is greater than the absolute magnitude of R1, L is not vertical and the absolute magnitude of L is within a certain amount relative to the absolute magnitude of R1; Cv = L * 0.8 + R1 * 0.2
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L이 수직이 아니며 L의절대값 크기와 R1의 절대값 크기가 일정량 이상일 때; Cv =L*0.5 + R1*0.5The absolute magnitude of L is greater than the absolute magnitude of R1, L is not vertical and the absolute magnitude of L and the absolute magnitude of R1 are above a certain amount; Cv = L * 0.5 + R1 * 0.5
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L이 수직에 가까울 때; Cv = R1The absolute value magnitude of -L is not large relative to the absolute value magnitude of R1, and L is close to vertical; Cv = R1
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L이 수직이 아니며 L의 절대값 크기와 R1의 절대값 크기의 차가 일정량 이내일 때; Cv = L*0.2 + R1*0.8When the absolute value magnitude of L is not large relative to the absolute value magnitude of R1, L is not vertical and the difference between the absolute value magnitude of L and the absolute value magnitude of R1 is within a certain amount; Cv = L * 0.2 + R1 * 0.8
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L이 수직이 아니며 L의 절대값 크기와 R1의 절대값 크기의 차가 일정량 이상일 때; Cv = L*0.5 + R1*0.5The absolute value magnitude of L is not large relative to the absolute value magnitude of R1, L is not vertical and the difference between the absolute value magnitude of L and the absolute value magnitude of R1 is greater than or equal to a certain amount; Cv = L * 0.5 + R1 * 0.5
도면 제16도는 제2프레임 메모리의 해상도가 640 X 480일 경우 상기의 수직 중심 심볼 기울기 초기값 Cv 를 구하는 흐름도의 일 실시예를 도시한다. 상기의 실시예를 중심으로 수직 중심 심볼 기울기 초기값 Cv 를추출하는 예를 실 수치로써 설명하면 다음과 같다.FIG. 16 illustrates an embodiment of a flowchart for obtaining the vertical center symbol gradient initial value Cv when the resolution of the second frame memory is 640 × 480. An example of extracting the vertical center symbol inclination initial value Cv based on the above embodiment will be described as the actual value.
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L이 0.011보다작을 때(수직에 가까울 때); Cv = LWhen the magnitude of the absolute value of -L is greater than the magnitude of the absolute value of R1 and L is less than 0.011 (near vertical); Cv = L
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L이 0.011보다작지 않으며(수직이 아니며) L의 절대값 크기와 R1의 절대값 크기의 차가 0.017 이내일 때; Cv = L*0.8 + R1*0.2The absolute value magnitude of -L is greater than the absolute value magnitude of R1, L is not less than 0.011 (not vertical), and the difference between the absolute value magnitude of L and the absolute value magnitude of R1 is within 0.017; Cv = L * 0.8 + R1 * 0.2
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L이 0.011보다작지 않으며(수직이 아니며), L의 절대값 크기와 R1의 절대값 크기가 0.017 이상일 때; Cv = L*0.5 + R1*0.5The absolute magnitude of L is greater than the absolute magnitude of R1, L is not less than 0.011 (not vertical), and the absolute magnitude of L and the absolute magnitude of R1 are greater than or equal to 0.017; Cv = L * 0.5 + R1 * 0.5
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L의 절대값이0.009보다 작을 때(수직에 가까울 때); Cv =R1
When the magnitude of the absolute value of -L is not greater than the magnitude of the absolute value of R1 and the absolute value of L is less than 0.009 (near vertical); Cv = R1
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L의 절대값이0.009보다 작지 않으며, L의 절대값 크기와 R1의절대값 크기의 차가 0.017보다 작을 때; Cv = L*0.2 +R1*0.8When the absolute magnitude of L is not greater than the absolute magnitude of R1, the absolute magnitude of L is not less than 0.009, and the difference between the absolute magnitude of L and the absolute magnitude of R1 is less than 0.017; Cv = L * 0.2 + R1 * 0.8
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L의 절대값이0.009보다 작지 않으며, L의 절대값 크기와 R1의절대값 크기의 차가 0.017보다 작지 않을 때; Cv = L*0.5+ R1*0.5
When the absolute magnitude of L is not greater than the absolute magnitude of R1, the absolute magnitude of L is not less than 0.009, and the difference between the absolute magnitude of L and the absolute magnitude of R1 is not less than 0.017; Cv = L * 0.5 + R1 * 0.5
도면 제17도는 이상의 수직 중심 심볼 기울기 초기값 Cv 를 구하는 일반적인 흐름도를 도시한다.FIG. 17 shows a general flowchart for obtaining the vertical center symbol gradient initial value Cv.
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L의 절대값이 제1수직허용값 Gv1보다 작을 때(수직에 가까울 때); Cv = LWhen the magnitude of the absolute value of -L is greater than the magnitude of the absolute value of R1, and the absolute value of L is smaller than the first vertical allowable value Gv1 (close to the vertical); Cv = L
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L의 절대값이 수직 허용값 Gv1보다 작지 않으며(수직이 아니며) L의 절대값 크기와 R1의 절대값 크기의 차가 Gv3 이내일 때; Cv = L*0.8 + R1*0.2The absolute magnitude of -L is greater than the absolute magnitude of R1, the absolute value of L is not less than the vertical tolerance Gv1 (not vertical), and the difference between the absolute magnitude of L and the absolute magnitude of R1 is within Gv3. ; Cv = L * 0.8 + R1 * 0.2
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L 의 절대값이 수직 허용값 Gv1보다 작지 않으며(수직이 아니며), L의 절대값 크기와 R1의 절대값 크기가 Gv3 이상일 때; Cv = L*0.5 + R1*0.5The absolute value magnitude of -L is greater than the absolute value magnitude of R1, the absolute value of L is not less than the vertical tolerance Gv1 (not vertical), and the absolute value magnitude of L and the absolute value magnitude of R1 are greater than or equal to Gv3; Cv = L * 0.5 + R1 * 0.5
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L의 절대값이 제2수직허용값 Gv2보다 작을 때(수직에 가까울 때); Cv = R1When the absolute value magnitude of -L is not large compared to the absolute value magnitude of R1, and the absolute value of L is smaller than the second vertical allowable value Gv2 (close to the vertical); Cv = R1
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L의 절대값이 제2수직허용값 Gv2보다 작지 않으며, L의 절대값 크기와 R1의 절대값 크기의 차가 Gv3 보다 작을 때; Cv = L*0.2 + R1*0.8When the absolute value magnitude of -L is not larger than the absolute value magnitude of R1, the absolute value of L is not less than the second vertical allowable value Gv2, and the difference between the absolute value magnitude of L and the absolute value magnitude of R1 is smaller than Gv3; Cv = L * 0.2 + R1 * 0.8
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L의 절대값이 제2수직허용값 Gv2 보다 작지 않으며, L의 절대값 크기와 R1의 절대값 크기의 차가 Gv3보다 작지 않을 때; Cv = L*0.5 + R1*0.5When the absolute value magnitude of -L is not larger than the absolute value magnitude of R1, the absolute value of L is not smaller than the second vertical allowable value Gv2, and the difference between the absolute value magnitude of L and the absolute value magnitude of R1 is not smaller than Gv3. ; Cv = L * 0.5 + R1 * 0.5
이상의 과정에 의해 수직중심 심볼 기울기 초기값 Cv 을 구하면 제어부(160)는이로부터 바코드 영상의 수직 중심 방향으로 심볼들의 좌표를 추출한다.
When the vertical center symbol gradient initial value Cv is obtained by the above process, the
13) 도면 제18도는 제2 프레임 메모리(150)의바코드 영상으로부터 수직 중심 방향으로 심볼들의 좌표를 구하는 구성을 도시한다. 전술한 바와 같이 수직중심 심볼 기울기 초기값 Cv 를 구하면 제어부(160)는하측 파인더 패턴(104)의 양 끝 좌표의 길이를 심볼의 개수로 나누어 중앙에 위치한 심볼의 좌표를 지나는 수직 중심 심볼 기울기 초기값Cv 의 직선 방정식을 구하고, 상기 직선을 우측 방향으로 이동하면서 심볼의 개수를 검색하여 바코드의 오른쪽 수직 방향에 놓인 심볼의 개수와 일치할 때 배열에 수직 중심 심볼 들의 좌표 정보들을 저장한다.
13) FIG. 18 illustrates a configuration for obtaining coordinates of symbols in a vertical center direction from a barcode image of the
14) 상기 수직 중심 심볼 들의 시작 위치와 끝점 좌표 정보가 추출되면, 제어부(160)는 상기 제2 프레임 메모리(150)의 이진 바코드 영상을 심볼 연산부(250)에 제공하여 바코드 영상의 상단 수평방향 심볼의 좌표를 추출한다. 먼저 심볼 연산부(250)는 바코드의 상단 수평방향 방향에 놓인 심볼들을 모두 포함하는 기울기를 구한다. 14) When the start position and the end point coordinate information of the vertical center symbols are extracted, the
도면 제19도는 제2 프레임 메모리(150)의 이진 바코드 영상에 대해 상단 수평방향 방향에 놓인 심볼들을 모두 포함하는 기울기를 구하는 구성을 도시한 것이다. 바코드의 상단 수평방향 방향에 놓인 심볼들을 모두 포함하는 기울기는 이진 바코드 영상의 왼쪽 상단의 끝 좌표(vert_left(x,y))(153)를 기준으로,이미지를 포함하는 제2 프레임 메모리(150)의 오른쪽 상단 끝 모서리의 좌표(vert_top(x,y))(151)와 이루는 기울기의 직선을 시작으로 제2 프레임 메모리(150)의 원점방향으로 오른쪽 상단 끝모서리의 좌표(vert_top(x,y))(151)를 y축방향으로 한 픽셀씩 이동시키면서 최대 심볼 개수를 포함하는 기울기를 구한다. FIG. 19 illustrates a configuration for obtaining a slope including all the symbols placed in the upper horizontal direction with respect to the binary barcode image of the
이 단계에서 이 바코드의 심볼 크기가 결정되며, 심볼 크기가 결정되는 시점은 제2 프레임 메모리(150)의 오른쪽 상단 끝 모서리의 좌표(vert_top(x,y))(151)와의 기울기로부터 오른쪽 상단 끝점을 y축방향으로 이동하면서 계산되는 기울기의 직선 상으로 검색된 심볼의 개수가 짝수 최대치에서 다시 줄어들 때를 기준으로 멈추고, 최대 심볼 개수가 검출된 기울기와 이때의 심볼 개수 및 심볼 들의 좌표들을 배열에 저장한다.
In this step, the symbol size of the barcode is determined, and the time point at which the symbol size is determined is the upper right endpoint from the slope with the coordinate (vert_top (x, y)) 151 of the upper right corner of the
15) 이어 제어부는 심볼 연산부(250)를 통해 바코드의 중앙 수평위치에 놓인 심볼들을 모두 포함하는 기울기를 구한다. 수평 중심 심볼 기울기 초기값(Ch)은 바코드의 상단 방향에 놓인 심볼들을 모두 포함하는 기울기와 하측 파인더 패턴(104)의 기울기 값을 기준으로 5가지의 경우에 따라 결정한다. 이 때 각각의 기울기는 2진 연산의 유효 숫자를 고려하여 x축 방향의 길이에 대한 y축 방향의 길이로 환산하여 계산한다. 판단의 방법으로서, 수직 중심 심볼 기울기 초기값을 Ch, 바코드의 오른쪽 수직 방향에 놓인 심볼들을 모두 포함하는 기울기를 R2,하측 파인더 패턴(104)의 기울기 값을 B라하면,15) Then, the control unit obtains a slope including all the symbols placed in the center horizontal position of the barcode through the
-B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B가 수평에 가까울 때; Ch = BWhen the magnitude of absolute value of B is greater than the magnitude of absolute value of R2, and B is close to horizontal; Ch = B
-B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B가 수평이 아니며 B의 절대값 크기가 R2의 절대값 크기에 대해 일정량 이내일 때; Ch = B*0.8 + R2*0.2The absolute magnitude of B is greater than the absolute magnitude of R2, B is not horizontal and the absolute magnitude of B is within a certain amount relative to the absolute magnitude of R2; Ch = B * 0.8 + R2 * 0.2
-B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B가 수평이 아니며 B의 절대값 크기와 R2의 절대값 크기가 일정량 이상일 때; Ch = B*0.5 + R2*0.5The absolute magnitude of B is greater than the absolute magnitude of R2, B is not horizontal and the absolute magnitude of B and the absolute magnitude of R2 are above a certain amount; Ch = B * 0.5 + R2 * 0.5
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B가 수평에 가까울 때; Ch = R2When the absolute magnitude of B is not large relative to the absolute magnitude of R2 and B is close to horizontal; Ch = R2
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B가 수평이 아니며 B의 절대값 크기와 R2의 절대값 크기의 차가 일정량 이내일 때; Ch = B*0.2 + R2*0.8When the absolute magnitude of B is not large relative to the absolute magnitude of R2, B is not horizontal and the difference between the absolute magnitude of B and the absolute magnitude of R2 is within a certain amount; Ch = B * 0.2 + R2 * 0.8
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B가 수평이 아니며 BL의 절대값 크기와 R2의 절대값 크기의 차가 일정량 이상일 때; Ch = B*0.5 + R2*0.5When the absolute magnitude of B is not large relative to the absolute magnitude of R2, B is not horizontal and the difference between the absolute magnitude of BL and the absolute magnitude of R2 is above a certain amount; Ch = B * 0.5 + R2 * 0.5
도면 제20도는 제2프레임메모리의 해상도가 640 X 480일 경우 상기의 수평 중심 심볼 기울기 초기값 Ch 를구하는 흐름도의 일 실시예를 도시한다. 상기의 실시예를 중심으로 수평 중심 심볼 기울기 초기값 Ch 를 추출하는 예를 실 수치로써 설명하면 다음과 같다.FIG. 20 illustrates an embodiment of a flowchart for obtaining the horizontal center symbol gradient initial value Ch when the resolution of the second frame memory is 640 × 480. An example of extracting the horizontal center symbol inclination initial value Ch based on the above embodiment will be described as the actual value.
-B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B가 0.011보다 작을 때(수평에가까울 때); Ch = BWhen the absolute magnitude of -B is greater than the absolute magnitude of R2 and B is less than 0.011 (close to horizontal); Ch = B
-B의 절대값 크기가 R1의 절대값 크기에 비해 크고, B가 0.011보다 작지 않으며(수평이아니며) B의 절대값 크기와 R2의 절대값 크기의 차가 0.017 이내일 때; Ch = B*0.8 + R2*0.2When the absolute magnitude of B is greater than the absolute magnitude of R1, B is not less than 0.011 (not horizontal), and the difference between the absolute magnitude of B and the absolute magnitude of R2 is within 0.017; Ch = B * 0.8 + R2 * 0.2
-B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B가 0.011보다 작지 않으며(수평이아니며), B의 절대값 크기와 R2의 절대값 크기가 0.017 이상일 때; Ch = B*0.5 + R2*0.5When the absolute magnitude of B is greater than the absolute magnitude of R2, B is not less than 0.011 (not horizontal), and the absolute magnitude of B and the absolute magnitude of R2 are greater than or equal to 0.017; Ch = B * 0.5 + R2 * 0.5
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B의 절대값이 0.009보다 작을 때(수평에 가까울 때); Ch = R2When the magnitude of the absolute value of B is not large relative to the magnitude of the absolute value of R2, and the absolute value of B is less than 0.009 (close to horizontal); Ch = R2
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B의 절대값이 0.009보다 작지 않으며, B의 절대값 크기와 R2의 절대값 크기의 차가 0.017보다 작을 때; Ch = B*0.2 + R2*0.8When the absolute magnitude of B is not larger than the absolute magnitude of R2, the absolute value of B is not less than 0.009, and the difference between the absolute magnitude of B and the absolute magnitude of R2 is less than 0.017; Ch = B * 0.2 + R2 * 0.8
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B의 절대값이 0.009보다 작지 않으며, B의 절대값 크기와 R2의 절대값 크기의 차가 0.017보다 작지 않을 때; Ch = B*0.5 + R2*0.5
When the absolute magnitude of B is not greater than the absolute magnitude of R2, the absolute value of B is not less than 0.009, and the difference between the absolute magnitude of B and the absolute magnitude of R2 is not less than 0.017; Ch = B * 0.5 + R2 * 0.5
도면 제21도는 이상의 수평 중심 심볼 기울기 초기값 Ch를 구하는 일반적인 흐름도를 도시한다.21 shows a general flowchart for obtaining the above-described horizontal center symbol gradient initial value Ch.
-B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B의 절대값이 제1수평 허용값 Gh1보다 작을 때(수직에 가까울 때); Ch = BWhen the magnitude of the absolute value of B is greater than the magnitude of the absolute value of R2 and the absolute value of B is less than the first horizontal tolerance Gh1 (close to vertical); Ch = B
-B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B의 절대값이 수평 허용값 Gh1보다 작지 않으며(수직이 아니며) B의 절대값 크기와R1의 절대값 크기의 차가 Gh3 이내일 때; Ch = B*0.8+ R2*0.2The absolute magnitude of -B is greater than the absolute magnitude of R2, the absolute value of B is not less than the horizontal tolerance Gh1 (not vertical), and the difference between the absolute magnitude of B and the absolute magnitude of R1 is within Gh3. ; Ch = B * 0.8 + R2 * 0.2
-B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B 의 절대값이 수평 허용값 Gh1보다 작지 않으며(수직이 아니며), B의 절대값 크기와 R2의 절대값 크기가 Gh3 이상일 때; Ch = B*0.5 + R1*0.5When the absolute magnitude of B is greater than the absolute magnitude of R2, the absolute value of B is not less than the horizontal tolerance Gh1 (not vertical), and the absolute magnitude of B and the absolute magnitude of R2 are greater than or equal to Gh3; Ch = B * 0.5 + R1 * 0.5
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B의 절대값이 제2수평 허용값 Gh2보다 작을 때(수직에 가까울 때); Ch = R2When the absolute value magnitude of -B is not large relative to the absolute value magnitude of R2, and the absolute value of B is smaller than the second horizontal tolerance value Gh2 (close to vertical); Ch = R2
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B의 절대값이 제2수직 허용값 Gh2보다 작지 않으며, B의 절대값 크기와 R2의 절대값 크기의 차가 Gh3 보다 작을 때; Ch = B*0.2 + R2*0.8When the absolute magnitude of B is not greater than the absolute magnitude of R2, the absolute value of B is not less than the second vertical tolerance Gh2, and the difference between the absolute magnitude of B and the absolute magnitude of R2 is less than Gh3; Ch = B * 0.2 + R2 * 0.8
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B의 절대값이 제2수직 허용값 Gh2보다 작지 않으며, B의 절대값 크기와 R2의 절대값 크기의 차가 Gh3보다 작지 않을 때; Ch = B*0.5 +R2*0.5When the absolute magnitude of -B is not greater than the absolute magnitude of R2, the absolute value of B is not less than the second vertical tolerance Gh2, and the difference between the absolute magnitude of B and the absolute magnitude of R2 is not less than Gh3. ; Ch = B * 0.5 + R2 * 0.5
이상의 과정에 의해 수평 중심 심볼 기울기 초기값 Ch 을 구하면제어부(160)는 이로부터 바코드 영상의 수평 중심 방향으로 심볼들의 좌표를 추출한다.
When the horizontal center symbol inclination initial value Ch is obtained by the above process, the
16) 도면 제22도는 제2 프레임메모리(150)의 바코드 영상으로부터 수평 중심 방향으로 심볼들의 좌표를 구하는 구성을 도시한다. 전술한 바와 같이 수평 중심 심볼 기울기 초기값 Ch 를 구하면 제어부(160)는 우측 파인더 패턴(103)의 양 끝 좌표의 길이를 심볼의 개수로 나누어 중앙에 위치한 심볼의 좌표를 지나는 수직 중심 심볼 기울기 초기값 Ch 의 직선 방정식을 구하고, 상기 직선을 상단 방향(-y 방향)으로 이동하면서 심볼의 개수를 검색하여 바코드의 상단 수평 방향에 놓인 심볼의 개수와 일치할 때 배열에 수평중심 심볼 들의 좌표 정보 들을 저장한다
16) FIG. 22 illustrates a configuration for obtaining coordinates of symbols in a horizontal center direction from a barcode image of the
17) 이상의 처리에 의해 제어부(160)는 심볼 연산부(250)를 통해 제2 프레임 메모리(150)의이진 바코드 영상으로부터, 바코드의 오른쪽 수직 방향에 놓인 심볼 들; 바코드의 중앙 수직 위치에 놓인 심볼 들; 바코드의 상단 방향에 놓인 심볼 들; 바코드의 중앙 수평 위치에 놓인 심볼 들;의 좌표를 추출하였으므로 이로부터 바코드 판독을 위한 직선 방정식들을 추출한다. 제어부(160)는 제2프레임 메모리(150)의 바코드의 오른쪽 수직 방향에 놓인 심볼 들의 좌표와 바코드의 중앙 수직 위치에 놓인 심볼 들의 좌표를 차례대로 연결하는 수평방향의 직선 방정식들을 추출하고, 이어 바코드의 상단 방향에 놓인 심볼 들과 바코드의 중앙 수평 위치에 놓인 심볼 들의 좌표를 차례대로 연결하는 수직방향의 직선 방정식들을 추출한다. 17) by the above processing, the
도면 제23도는 상기의 제2 프레임 메모리(150)의 바코드의 수평방향의 직선 방정식들과수직방향의 직선 방정식들의 배열 관계를 도시한다. 상기 수평방향의 직선 방정식들과 수직방향의 직선 방정식들은 각각이 수평-수직방향으로 심볼들을 연결하는 직선들이므로 각각의 직선상에는 이진 바코드를 구성하는 점(barcode dot)들이 위치하게 된다.
FIG. 23 illustrates an arrangement relationship of the linear equations in the horizontal direction and the linear equations in the vertical direction of the barcode of the
18)도면 제24도는 상기의 수평-수직방향으로 심볼들을 연결하는 직선 들 중 단일의 수평방향의 직선 방정식과 수직방향의 직선 방정식이 교차하는 것을 도시한다. 제어부(160)는 상기의 직선 방정식들을 이용하여 수평-수직 방향으로 교차하는 제2프레임 메모리(150)의 좌표들을 각각의 직선들에 대해 계산하고 해당 좌표의 영상 데이터를 이용하여 2D 매트릭스 메모리(260)에 바코드를 완성한다. 이때 2D 매트릭스 메모리(260)는 판독하고자 하는 바코드의 심볼의 가로 세로 개수에 대응하도록 구성되며 하나의 번지에 하나의 심볼이 배치되도록 구성된다.
18) FIG. 24 shows the intersection of a single horizontal straight line equation and a vertical straight line equation among the straight lines connecting the symbols in the horizontal-vertical direction. The
19)도면 제25도는 제어부(160)가 상기의 직선 방정식들을 이용하여 수평-수직 방향으로 교차하는제2프레임 메모리(150)의 좌표에 대한 변환 관계를 도시한다. 상기의 직선 방정식들을 이용하여 수평-수직 방향으로 교차하는 제2프레임 메모리(150)의 좌표의 이진 영상이 black로 판독되면 제어부(160)는 대응하는 2D 매트릭스 메모리(260) 번지에 ‘1’을 기록하고, 수평-수직방향으로 교차하는 제2프레임 메모리(150)의 좌표의 이진영상이 white로 판독되면 제어부(160)는 대응하는 2D 매트릭스 메모리(260) 번지에 ‘0’을 기록하는 일련의 과정을 전체 직선들에 대해 수행함으로써 2D 매트릭스메모리(260) 내에 2D 바코드를 완성한다.
FIG. 25 illustrates a conversion relationship with respect to the coordinates of the
20)도면 제26도는 제2프레임메모리(150)로부터 판독되는 바코드 데이터를 이용하여 제어부(16)가 2D 매트릭스 메모리(260) 내에 2D 바코드를 생성하는 일례를 도시한다. 이상과 같이 생성되는 2D 매트릭스 메모리(260) 내의 데이터는 ‘1’과 ‘0’으로 구성된 바코드이므로 제어부(160)는 바코드 디코드 수단을 구비한 2D 매트릭스 판독부(160a)를 통해 바코드를 디코딩할 수 있게 된다. 도면 제27도는 2D 매트릭스 메모리(260)내의 데이터를 2D 매트릭스 판독부(160a)를 통해 디코딩 하는 구성관계를 도시한다.
FIG. 26 illustrates an example in which the controller 16 generates a 2D barcode in the 2D matrix memory 260 by using barcode data read from the
이하 전술한 본 발명의 영상에 포함된 이차원 바코드 추출 장치의 구성을 기반으로 도면 제28도 내지 제30도에 도시된 흐름도를 인용하여 본 발명의 영상에 포함된 데이터 매트릭스 바코드 추출 및 디코드 방법을 단계별로 설명한다.
Hereinafter, the method of extracting and decoding the data matrix barcode included in the image of the present invention will be described by referring to the flowcharts illustrated in FIGS. 28 to 30 based on the configuration of the two-dimensional barcode extraction apparatus included in the image of the present invention. Explain as.
1)입력 영상 복사 단계 (S1010)1) copying input image (S1010)
이차원 바코드 추출이 시작(S1000)되면, 입력 영상 복사 단계 (S1010)에서 제어부(160)는 DMA(direct memory access) 제어기(140)에 명령을 전송하여 1프레임 메모리(120)에 저장된 카메라(110)로부터의 영상 데이터를 제2프레임 메모리(150)에 저장한다.
When the two-dimensional bar code extraction starts (S1000), in step S1010, the
2)그레이 레벨 변환 단계(S1020)2) gray level conversion step (S1020)
상기 입력 영상 복사 단계(S1010)에 이어 제어부(160)는 제2프레임 메모리(150)의 컬러 영상을 그레이 레벨 변환부(180)을 통해 그레이 레벨로 변환한다.
Following the input image copying step (S1010), the
3)이중 선형 보간 단계(S1030)3) Dual linear interpolation step (S1030)
상기 그레이 레벨 변환 단계(S1020)에 이어 제어부(160)는 이중 선형 보간부(190)로써그레이 레벨로 변환된 제2 프레임 메모리(150)의 영상데이터를 연산 프레임 메모리(170)에 축소하여 저장한다. 본 발명에서는 1/4의 축소 비율로써 제2 프레임 메모리(150)의 영상 데이터를연산 프레임 메모리(170)에 축소하여 저장하는 것을 기본으로 한다.
Following the gray level conversion step (S1020), the
4)연산 프레임 메모리(170) 저장 단계(S1040)4) Storage step of the operation frame memory 170 (S1040)
상기 이중 선형 보간 단계(S1030)에 이어 제어부(160)는 축소된 제2 프레임 메모리(150)의 영상 데이터를 연산 프레임 메모리(170)에 저장한다.
Following the double linear interpolation step (S1030), the
5)에지 추출 단계(S1050)5) Edge extraction step (S1050)
상기 연산 프레임 메모리(170) 저장 단계(S1040)에 이어 제어부(160)는 연산 프레임 메모리(170)에 저장된 축소된영상 데이터를 영역 필터부(200)에 제공하여 영상의 에지(edge)값을연산한다. 영역 필터부(200)는, 연산 프레임 메모리(170)내의 그레이 레벨 영상에 대해 마스크(mask)로 사용할 3 X 3 픽셀 크기의 메모리를 할당하고, 현재 연산 대상 픽셀의 위치를 중심으로 가로 세로 3개씩의 픽셀값을읽어 최대값과 최소값을 구하고 그 차이값을 에지값(edge value)으로 연산한다. 상기의 에지값 연산이 전체 축소된 영상 데이터에 대해 완료되면 상기 에지값으로 구성되는 영상을 연산 프레임메모리(170)에 저장한다.
Subsequent to the
6)이진화 영상 추출 단계 (S1060)6) Binarization image extraction step (S1060)
상기 에지 추출 단계(S1050)에이어 제어부(160)는 연산 프레임 메모리(170)에 저장된 축소된 그레이 레벨 영상 데이터의 에지값 영상 데이터를 이진 영상 변환부(210)에제공하여 이진화 영상으로 변환한다.
Following the edge extraction step (S1050), the
7)최대 연결 영역 추출 단계(S1070)7) Maximum connection area extraction step (S1070)
상기 이진화 영상 추출 단계 (S1060)에 이어 제어부(160)는 상기 연산 프레임 메모리(170)에저장된 축소된 영상 데이터의 에지값 이진화 영상 데이터를 연결 영역 추출부(220)에 제공하여, 영상 내의 인접한 ‘white’ 픽셀 그룹들을판단하고 각 그룹별로 고유 번호를 부여하여 레이블링(labeling)을 수행하며, 상기 레이블링(labeling)으로 구분되는 ‘white’ 픽셀 그룹들 중에서 가장 많은 픽셀들로 구성되는 ‘white’ 픽셀 그룹을 추출하는 최대 연결 영역 추출단계(S1070)를 수행한다. After extracting the binarized image (S1060), the
이 때 연결 영역 추출부(220)는 상기 레이블링(labeling)으로 구분되는 ‘white’ 픽셀 그룹들 중에서 가장 많은 픽셀들로 구성되는 그룹을 ‘white’ 로 치환하고, 픽셀 그룹을 제외한 나머지 그룹의 픽셀 값을 ‘black’으로 치환하여‘white’ 의 바코드의 후보 영역을 추출한다.
In this case, the connection area extractor 220 replaces the group consisting of the most pixels among the 'white' pixel groups classified by the labeling with 'white', and pixel values of the remaining groups except the pixel group. Substituting for 'black' extracts the candidate region of the barcode of 'white'.
8)경계좌표 기울기 추출 단계(S1080)8) boundary coordinates extraction step (S1080)
상기의 최대 연결 영역 추출 단계(S1070)에 이어 제어부(160)는 추출된 ‘white’의 바코드의 후보 영역을 포함하는 연산 프레임 메모리(170)의 영상 데이터를 주변 기울기 추출부(230)에 제공하여, 연산 프레임 메모리(170)의 영상 데이터의 수직 방향으로 중앙을 중심으로 d만큼 이격된 바코드 후보 영역의 상단 및 하단의 경계 좌표로부터 세로 방향 높이 Labeling_height및기울기(수직 기울기 : Gradient_Vert)를 계산하고, 수평방향으로 중앙을 중심으로 d만큼 이격된 바코드 후보 영역의 오른쪽경계 좌표와 왼쪽 경계 좌표로부터 가로 방향 길이Labeling_width 및 기울기(수평 기울기 : Gradient_Horz)를 각각 계산한다. 일 실시예로서 제2프레임 메모리(150)의 크기가 640 X 480이고 연산프레임 메모리(170)의 크기가 160 X 120인 경우 상기 이격거리는 5~10개의 픽셀로 설정하여 세로 방향 높이 Labeling_height 및 기울기(수직 기울기 : Gradient_Vert)와 가로 방향 길이Labeling_width 및 기울기(수평 기울기 : Gradient_Horz)를 계산할수 있다.
Following the maximum connection region extraction step (S1070), the
9)수평 수직 길이 유효 판단 단계(S1090)9) Horizontal Vertical Length Effective Determination Step (S1090)
상기의 경계좌표 기울기 추출 단계(S1080)에 이어 제어부(160)는 연결영역 추출부(220)에 의해 제공된 바코드 후보 영역의 세로 방향 높이 Labeling_height 와 가로 방향 길이 Labeling_width를 이용하여 바코드 판독이유효한 영상인지를 판단한다. 상기의 판단은, 제1프레임 메모리(120)에 저장된 바코드 후보 영역의 세로 방향 높이 Labeling_height 와 가로 방향 길이 Labeling_width의비율이 일정 비율 이내이면 판독이 가능한 것으로 판단하고 지나치게 차이가 나는 경우에는 인식 실패로 간주하여, 제어부(160)의 전송 명령에의해 카메라(110)로부터의 새로운 영상 데이터를 제1프레임메모리(120)로부터 제2 프레임 메모리(150)에 저장하는 입력 영상 복사 단계 (S1010)부터 다시 처리를 수행한다.
Subsequent to the boundary coordinate tilt extraction step (S1080), the
10)수직 기울기 유효 판단단계(S1091)10) vertical slope valid determination step (S1091)
상기 수평 수직 길이 유효 판단 단계(S1090) 에 이어 제어부(160)는 주변 기울기 추출부(230)에 의해 계산된 수직 기울기 Gradient_Vert가 바코드판독이 유효한 값인지를 판단한다. 주변 기울기 추출부(230)에의해 계산된 수직 기울기 Gradient_Vert 값이 수직에 가깝거나, 수평 기울기 Gradient_Horz 값이 수평에 가까울 때 판독이가능한 것으로 판단하고 그렇지 않은 경우에는 인식 실패로 간주하여, 제어부(160)의 전송 명령에 의해 카메라(110)로부터의 새로운 영상 데이터를제1프레임 메모리(120)로부터 제2 프레임 메모리(150)에 저장하는 입력 영상 복사 단계 (S1010)부터 다시 처리를 수행한다. 상기의 판단에서 수직기울기 Gradient_Vert 값은 연산 프레임 메모리(170)의 영상 데이터로부터 주변 기울기 추출부(230)에 의해 추출된 바코드의 후보 영역의 경계좌표를 이용하여 구할 수 있다. 이 때 수직 기울기 Gradient_Vert는 역수를 취하여 Gradient_Horz 값과같은 조건으로 계산하는 것이 바람직하다. 이 때 절대값 [Gradient_Vert]는 수직에 가까울수록 0에 가까운 작은 값으로 표현될 수 있다. Following the horizontal vertical length valid determination step (S1090), the
그러므로 수직 기울기Gradient_Vert값이 수직에 가까울 때, 허용 기울기를 r이라 하면, 절대값 [Gradient_Vert])< r 일 때, 판독이 가능한 것으로 판단하고 그렇지 않은 경우에는 인식 실패로 간주한다.Therefore, when the vertical gradient Gradient_Vert is close to vertical and the allowable slope is r, it is determined that the reading is possible when the absolute value [Gradient_Vert]) <r, otherwise it is regarded as a recognition failure.
이에 대한 일 실시예로서 제2 프레임 메모리(150)의 영상 데이터의 가로 세로 해상도가 640 X 480이고, 연산 프레임 메모리(170)의 영상 데이터가 160 X 120일 때 일실시예로서, (절대값 [Gradient_Vert])< 0.000001 일 때, 판독이 가능한 것으로 판단한다.
As an example, when the horizontal and vertical resolution of the image data of the
11)수평 기울기 유효 판단단계(S1092)11) Horizontal slope valid determination step (S1092)
상기 수직 기울기 유효 판단 단계(S1091)에이어 제어부(160)는 주변 기울기 추출부(230)에 의해계산된 수평 기울기 Gradient_Horz 가 유효한 값인지를 판단한다. 주변 기울기 추출부(230)에 의해 계산된 수평기울기 Gradient_Horz 값이 수평에 가까울 때 바코드 판독이 가능한 것으로 판단하고 그렇지 않은 경우에는 인식실패로 간주하여, 제어부(160)의 전송 명령에 의해 카메라(110)로부터의 새로운 영상 데이터를제1프레임 메모리(120)로부터 제2 프레임 메모리(150)에 저장하는 입력 영상 복사 단계 (S1010)부터 다시 처리를 수행한다. 상기의 판단에서 수평기울기 Gradient_Horz 값은 연산 프레임 메모리(170)의 영상 데이터로부터 주변 기울기 추출부(230)에 의해 추출된 바코드의 후보 영역의 경계좌표를 이용하여 구할 수 있다. Following the vertical slope valid determination step (S1091), the
이 때 절대값 [Gradient_Horz]는수평에 가까울수록 0에 가까운 작은 값을 가진다. 따라서 수평 기울기 Gradient_Horz 값이 수평에 가까울 때, 판독이가능한 것으로 판단하기 위한 조건은 허용 기울기를 r이라 하면 절대값 [Gradient_Hor] <r 일 때 바코드의 판독이 가능한 것으로 처리한다.At this time, the absolute value [Gradient_Horz] has a small value close to 0 as it is horizontal. Therefore, when the horizontal gradient Gradient_Horz value is close to the horizontal, a condition for determining that the reading is possible is that if the allowable slope is r, the barcode can be read when the absolute value [Gradient_Hor] <r.
이에 대한 일 실시예로서 제2 프레임 메모리(150)의 영상 데이터의 가로 세로 해상도가 640 X 480이고, 연산 프레임 메모리(170)의 영상 데이터가 160 X 120일 때 일실시예로서, 절대값 [Gradient_Hor] <0.000001 일때 바코드의 판독이 가능한 것으로 판단한다.
As an example, when the horizontal and vertical resolution of the image data of the
12)수평 수직 기울기의 각도계산 단계(S1100)12) calculating the angle of the horizontal vertical tilt (S1100)
상기 수평 기울기 유효 판단 단계(S1092)에이어 제어부(160)는 주변 기울기 추출부(230)에 의해 계산된 수직 기울기 Gradient_Vert와 수평 기울기Gradient_Horz 값이 서로 수직에 가까운 지를 판단하기 위해 기울기Gradient_Vert와 수평 기울기 Gradient_Horz 값을 서로 곱한다. 상기의 계산에서 수직 기울기Gradient_Vert와 수평 기울기 Gradient_Horz 값은 연산프레임 메모리(170)의 영상 데이터로부터 주변 기울기 추출부(230)에 의해 추출된 바코드의 후보 영역의 경계좌표를 이용하여 구할 수 있다. 이 때 수직 기울기 Gradient_Vert는 역수를 취하여 Gradient_Horz 값과 같은 조건으로 계산하는 것이 바람직하다. 이를 도면 제 17도를인용하여 예를 들면 다음과 같다. 도면 제17도에서, 좌측의 경계 좌표인 (Xh, Yh)와 (Xg, Yg) 아랫쪽의 경계 좌표(Xc, Yc), 왼쪽 경계 좌표(Xd, Yd)를 이용하면, Following the horizontal slope valid determination step (S1092), the
[Gradient_Vert]= (Yh-Yg)/(Xh-Xg)[Gradient_Vert] = (Yh-Yg) / (Xh-Xg)
[Gradient_Horz]= (Yc-Yd)/(Xc-Xd) 가 된다.[Gradient_Horz] = (Yc-Yd) / (Xc-Xd).
이 때 절대값[Gradient_Vert]는 수직에 가까울수록, 절대값[Gradient_Horz]는 수평에 가까울수록 0에 가까운 작은 값을 가진다.
At this time, the absolute value [Gradient_Vert] is close to vertical and the absolute value [Gradient_Horz] is close to 0, and has a small value close to zero.
13)수평 수직 기울기의 각도판단 단계(S1110)13) Angle determination step of the horizontal vertical tilt (S1110)
상기 수평 수직 기울기의 각도 계산 단계(S1100)에 이어 제어부(160)는, 수직 기울기 Gradient_Vert와 수평 기울기 Gradient_Horz의 곱이 0보다 작을 경우에 판독이 가능한것으로 판단하고 그렇지 않은 경우에는 인식 실패로 간주하여, 제어부(160)의 전송 명령에 의해 카메라(110)로부터의 새로운 영상 데이터를 제1프레임 메모리(120)로부터 제2 프레임 메모리(150)에 저장하는 입력 영상 복사 단계 (S1010)부터 다시 처리를 수행한다.
Following the step of calculating the angle of horizontal vertical tilt (S1100), the
14)바코드 영역 추출 단계(S1120)14) Barcode Area Extraction Step (S1120)
상기 경계좌표 기울기 추출 단계(S1080), 수평 수직 길이 유효 판단 단계(S1090), 수직기울기 유효 판단 단계(S1091), 수평 기울기 유효 판단 단계(S1092),수평 수직 기울기의 각도 계산 단계(S1100), 수평 수직 기울기의 각도 판단 단계(S1110)에서 제어부(160)가연결 영역 추출부(220)에 의해 제공된 바코드 후보 영역의 세로 방향 높이 Labeling_height 와 가로 방향 길이 Labeling_width, 및주변 기울기 추출부(230)에 의해 계산된 수직 기울기 Gradient_Vert와 수평 기울기 Gradient_Horz를이용하여 바코드 판독이 가능한 것으로 판단한 경우, 제어부(160)는연산 프레임 메모리(170)의 바코드 후보 영역에 대응하는 제2 프레임 메모리(150)의 영상에서 상기 바코드 후보 영역을 제외한영역의 픽셀값을 ‘white’로 치환한다.
The boundary coordinate inclination extraction step (S1080), the horizontal vertical length valid determination step (S1090), the vertical slope valid determination step (S1091), the horizontal slope valid determination step (S1092), the horizontal vertical slope angle calculation step (S1100), horizontal In step S1110 of determining the angle of the vertical tilt, the
15)추출 영역 유효 판단단계(S1130)15) Extraction area valid determination step (S1130)
상기 바코드 영역 추출 단계(S1120)에 이어 제어부(160)는, 제2 프레임 메모리(150)의 바코드 후보 영역의 크기가 일정 이상이면 판독이 가능한 것으로 판단하고, 일정 이하의 크기로 판독되면 인식실패로 간주하여, 제어부(160)의 전송 명령에 의해 카메라(110)로부터의 새로운 영상 데이터를 제1프레임 메모리(120)로부터 제2 프레임 메모리(150)에 저장하고 처음부터 다시 처리를 수행한다. 본 발명에서는 일례로 제2 프레임 메모리(150)에는 바코드 후보 영역의 가로 세로의 픽셀수가 각각 심볼 수 이하인 경우 인식 실패로 간주하여, 제어부(160)의 전송 명령에 의해 카메라(110)로부터의 새로운 영상 데이터를 제1프레임 메모리(120)로부터 제2 프레임 메모리(150)에 저장하는 입력 영상 복사 단계 (S1010)부터 다시 처리를 수행한다.
Following the bar code area extraction step (S1120), the
16)추출영역 영상의 이진화단계(S1140)16) Binarization step of the extraction region image (S1140)
상기 추출 영역 유효 판단 단계(S1130)에서 제2 프레임메모리(150)의 바코드 후보 영역의 크기가 판독 가능한 것으로 판단되면, 제어부(160)는 제2 프레임메모리(150)의 바코드 후보 영역에 대응하는 그레이 레벨의 영상을 이진 영상 변환부(210)에 공급하여 이진영상 변환을 수행함으로써 제2 프레임 메모리(150)에 바코드 후보 영역에 대응하는 이진 영상을 저장한다.
If it is determined that the size of the barcode candidate area of the
17)파인더 패턴 탐색 단계(S1150)17) Finder pattern search step (S1150)
상기 추출영역 영상의 이진화 단계(S1140)에 이어 제어부(160)는 파인더 패턴 검출/회전부(240)에 상기 이진 영상을 제공하여 파인더 패턴을 검출한다. Following the binarization step S1140 of the extracted region image, the
하측 파인더 패턴(104)의 위치 및 기울기를 검출하기 위해서는, 파인더 패턴 검출/회전부(240)가제2 프레임 메모리(150)의 화면 좌측 상단을 원점으로하여 가로 방향을 x축, 세로 방향을 y축으로 할 때, x 좌표축을 대략적으로 3등분하여 화면 하단 x좌표의 3분의 1에 대응하는 정수 좌표와 화면 하단 x좌표의 3분의 2에 대응하는 정수 좌표부터 y 좌표의 원점 방향인 화면 상단 방향으로 이동하면서 이진 영상의 ‘black’ 점을 찾을 때까지 각각 검색하여 두 좌표간의 기울기와 위치를 구한다. In order to detect the position and inclination of the
좌측 파인더 패턴(103)의 위치 및 기울기를 검출하기 위해서는, 파인더 패턴 검출/회전부(240)가제2 프레임 메모리(150)에 대응하는 화면 좌측 상단을원점으로 하여 가로 방향을 x축, 세로 방향을 y축으로 할 때 y 좌표축을 대략적으로 3등분하여 화면 좌측 y좌표의 3분의 1에 대응하는 정수 좌표와 화면 좌측 y좌표의 3분의 2에 해당하는 정수 좌표부터 x 좌표방향으로 화면 오른쪽 방향으로 이동하면서 이진 영상의 ‘black’ 점을 찾을 때까지 각각 검색하여 두 좌표간의 기울기와 위치를 구한다.
In order to detect the position and inclination of the
18)영상 회전 단계(S1160)18) Image Rotation Step (S1160)
상기 파인더 패턴 탐색 단계(S1150)에 이어 제어부(160)는 파인더 패턴의 검출 결과에 따라 상기 이진 영상을 90도 단위로 회전하여 이진데이터 매트릭스 바코드 영상을 정상 방향으로 위치시킨다. Following the finder pattern search operation (S1150), the
이 때 제어부(160)는 파인더 패턴 검출/회전부(240)로부터 검출된 좌측 파인더 패턴(103)과 하측 파인더 패턴(104)의 진위를 파악하여 회전 여부를 결정한다. 데이터 매트릭스바코드의 특징은 사각 바코드에서 왼쪽 실선인 하측 파인더 패턴(104) 아랫 쪽 실선인 좌측 파인더 패턴(103) 사이의 각이 90도가 되도록 정해져 있다. 따라서, 검색된 좌측 파인더 패턴(103)과하측 파인더 패턴(104)이 정상적인 실선인지를 판단해야 한다. 판단방법은, 제2 프레임 메모리(150)의 화면 좌측 상단을 원점으로 하여 가로 방향을 x축, 세로 방향을 y축으로 할 때 y 좌표축을 대략적으로 3등분하여 y좌표의 3분의 1에 해당하는 좌표와 3분의 2에 해당하는 좌표부터 x 좌표 방향으로 오른쪽으로 이동하면서 이진영상의 ‘black’ 점을 찾을 때까지 각각 검색하여 구해진 두 좌표간의 기울기 상의 점들을 이동하면서, y좌표 ±1의 픽셀 값이 ‘white’인지를 확인한다. 세 좌표의 픽셀 값들 중 어느 하나라도 ‘white’이면실선이라고 할 수 없기 때문에 좌측 파인더 패턴(103)이 정위치가 되도록 회전이 필요하다고 판단한다. 하측 파인더 패턴(104)에 의한 회전 여부 판단도 상기의 좌측파인더 패턴(103)과 마찬가지로 판단한다. At this time, the
제2 프레임 메모리(150)의 화면 좌측 상단을 원점으로 하여 가로 방향을 x축, 세로방향을 y축으로 할 때 x 좌표축을 대략적으로 3등분하여 x좌표의 3분의 1에 해당하는 정수 좌표와 3분의 2에 해당하는 정수 좌표부터 -y 좌표 방향으로 윗쪽으로 이동하면서 이진 영상의 ‘black’ 점을 찾을 때까지 각각 검색하여 구해진 두 좌표간의 기울기 상의 점들을 이동하면서, x 좌표±1의 픽셀 값이 ‘white’인지를 확인한다. x 좌표±1 좌표의 픽셀 값들 중 어느 하나라도 ‘white’이면 실선이라고 할 수 없기 때문에 하측 파인더 패턴(104)이 정위치가 되도록 회전이 필요하다고 판단한다.When the upper left corner of the screen of the
이진 영상의 회전은 픽셀값 손실을 막기 위해 90도 단위로만 수행한다. 따라서, 하측 파인더 패턴(104)이실선이고, 좌측 파인더 패턴(103)이 실선이면 회전이 불필요하며, 하측 파인더 패턴(104)이 실선이고 좌측 파인더 패턴(103)이 실선이 아니면 clockwise 로 90도 회전시키고, 하측 파인더 패턴(104)이 실선이 아니고, 좌측 파인더 패턴(103)이 실선이면, counter clockwise 로 90도 회전시키며, 둘 다 실선이 아니면, clockwise 180도로 회전시킨다. 이 과정을 통해 제2 프레임 메모리(150)의 이진 바코드 영상은 좌측 파인더 패턴(103)과 하측 파인더 패턴(104)이 각각 좌측과 하측에 위치하게되고 파인더 패턴은 ‘L’자 모양으로 위치하게 된다.
The rotation of the binary image is performed only in 90-degree increments to prevent pixel value loss. Therefore, if the
19)파인더 패턴 기울기 및 좌표 추출 단계(S1170)19) Detecting the finder pattern tilt and coordinates (S1170)
상기 영상 회전 단계(S1160)에이어 제어부(160)는 제2 프레임 메모리(150)의 이진 바코드 영상의 좌측과 하측에 ‘L’자 모양으로 위치한 좌측 파인더 패턴(103)과 하측 파인더 패턴(104)이의 기울기와 각 패턴의 양 끝 좌표를 산출한다.
Following the image rotation step (S1160), the
20)우측 심볼 좌표 추출단계(S1180)20) extracting the right symbol coordinate (S1180)
상기 파인더 패턴 기울기 및 좌표 추출 단계(S1170)에 이어 제어부(160)는 제2 프레임 메모리(150)의 이진 바코드 영상을 심볼 연산부(250)에 제공하여 심볼의 좌표를 추출한다. 먼저 심볼 연산부(250)는 바코드의 오른쪽 수직 방향에 놓인 심볼들을 모두 포함하는 기울기를 구한다. 바코드의 오른쪽 수직 방향에 놓인 심볼들을 모두 포함하는 기울기는 이진 바코드 영상의 오른쪽 하단의 끝 좌표(vert_right(x,y))(152)를 기준으로, 이미지를 포함하는제2 프레임 메모리(150)의 오른쪽 상단 끝 모서리의 좌표(vert_top(x,y))(151)와 이루는 기울기의 직선을 시작으로 제2 프레임메모리(150)의 원점방향으로 오른쪽 상단 끝 모서리의 좌표(vert_top(x,y))(151)를원점 방향으로 한 픽셀씩 이동시키면서 최대 심볼 개수를 포함하는 기울기를 구한다. Following the finder pattern tilt and coordinate extraction step (S1170), the
이 단계에서 이 바코드의 심볼 크기가 결정되며, 심볼 크기가 결정되는 시점은 제2 프레임 메모리(150)의 오른쪽 상단 끝 모서리의 좌표(vert_top(x,y))(151)와의기울기로부터 오른쪽 상단 끝점을 왼쪽으로 이동하면서 계산되는 기울기의 직선 상으로 검색된 심볼의 개수가 짝수 최대치에서 다시 줄어들 때를 기준으로멈추고, 최대 심볼 개수가 검출된 기울기와 이때의 심볼 개수 및 심볼 들의 좌표를 배열에 저장한다.
In this step, the symbol size of the barcode is determined, and the time at which the symbol size is determined is the upper right endpoint from the slope with the coordinate (vert_top (x, y)) 151 of the upper right end corner of the
21)중앙 수직 심볼 좌표추출 단계(S1190)21) central vertical symbol coordinate extraction step (S1190)
상기 우측 심볼 좌표 추출 단계(S1180)에 이어 제어부(160)는 심볼 연산부(250)를 통해 바코드의 중앙 수직 위치에 놓인 심볼들을 모두 포함하는 기울기를 구한다. 수직 중심 심볼 기울기 초기값(Cv)은 바코드의 오른쪽 수직 방향에놓인 심볼들을 모두 포함하는 기울기와 좌측 파인더 패턴(103)의 기울기 값을 기준으로 5가지의 경우에 따라 결정한다. 이 때 각각의 기울기는 2진 연산의 유효 숫자를 고려하여 y축 방향의 길이에 대한 x축 방향의 길이로 환산하여 계산한다. 판단의 방법으로서, 수직 중심 심볼 기울기 초기값을 Cv, 바코드의 오른쪽 수직 방향에 놓인 심볼들을 모두 포함하는 기울기를R1, 좌측 파인더 패턴(103)의 기울기 값을 L이라 하면,Following the step of extracting the right symbol coordinate (S1180), the
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L이 수직에 가까울 때;Cv = LWhen the absolute magnitude of -L is greater than the absolute magnitude of R1 and L is close to vertical; Cv = L
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L이 수직이 아니며 L의절대값 크기가 R1의 절대값 크기에 대해 일정량 이내일 때; Cv =L*0.8 + R1*0.2The absolute magnitude of L is greater than the absolute magnitude of R1, L is not vertical and the absolute magnitude of L is within a certain amount relative to the absolute magnitude of R1; Cv = L * 0.8 + R1 * 0.2
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L이 수직이 아니며 L의절대값 크기와 R1의 절대값 크기가 일정량 이상일 때; Cv =L*0.5 + R1*0.5
The absolute magnitude of L is greater than the absolute magnitude of R1, L is not vertical and the absolute magnitude of L and the absolute magnitude of R1 are above a certain amount; Cv = L * 0.5 + R1 * 0.5
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L이 수직에 가까울 때; Cv = R1The absolute value magnitude of -L is not large relative to the absolute value magnitude of R1, and L is close to vertical; Cv = R1
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L이 수직이 아니며 L의 절대값 크기와 R1의 절대값 크기의 차가 일정량 이내일 때; Cv = L*0.2 + R1*0.8When the absolute value magnitude of L is not large relative to the absolute value magnitude of R1, L is not vertical and the difference between the absolute value magnitude of L and the absolute value magnitude of R1 is within a certain amount; Cv = L * 0.2 + R1 * 0.8
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L이 수직이 아니며 L의 절대값 크기와 R1의 절대값 크기의 차가 일정량 이상일 때; Cv = L*0.5 + R1*0.5The absolute value magnitude of L is not large relative to the absolute value magnitude of R1, L is not vertical and the difference between the absolute value magnitude of L and the absolute value magnitude of R1 is greater than or equal to a certain amount; Cv = L * 0.5 + R1 * 0.5
본 발명의 일 실시예로서, 제2프레임메모리의 해상도가 640X 480일 경우 수직 중심 심볼 기울기 초기값 Cv 를 추출하는 예를 실 수치로써 설명하면 다음과 같다.As an embodiment of the present invention, an example of extracting the vertical center symbol gradient initial value Cv when the resolution of the second frame memory is 640 × 480 will be described as follows.
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L이 0.011보다 작을 때(수직에 가까울 때); Cv = LWhen the magnitude of the absolute value of -L is greater than the magnitude of the absolute value of R1 and L is less than 0.011 (near vertical); Cv = L
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L이 0.011보다 작지 않으며(수직이 아니며) L의 절대값 크기와 R1의 절대값 크기의 차가 0.017 이내일 때; Cv = L*0.8 + R1*0.2The absolute value magnitude of -L is greater than the absolute value magnitude of R1, L is not less than 0.011 (not vertical) and the difference between the absolute value magnitude of L and the absolute value magnitude of R1 is within 0.017; Cv = L * 0.8 + R1 * 0.2
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L이 0.011보다 작지 않으며(수직이 아니며), L의 절대값 크기와 R1의 절대값 크기가 0.017 이상일 때; Cv = L*0.5 + R1*0.5The absolute magnitude of L is greater than the absolute magnitude of R1, L is not less than 0.011 (not vertical), and the absolute magnitude of L and the absolute magnitude of R1 are greater than or equal to 0.017; Cv = L * 0.5 + R1 * 0.5
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L의 절대값이0.009보다 작을 때(수직에 가까울 때); Cv =R1When the magnitude of the absolute value of -L is not greater than the magnitude of the absolute value of R1 and the absolute value of L is less than 0.009 (near vertical); Cv = R1
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L의 절대값이0.009보다 작지 않으며, L의 절대값 크기와 R1의 절대값 크기의 차가 0.017보다 작을 때; Cv = L*0.2 +R1*0.8When the absolute value magnitude of L is not greater than the absolute value magnitude of R1, the absolute value of L is not less than 0.009, and the difference between the absolute value magnitude of L and the absolute value magnitude of R1 is less than 0.017; Cv = L * 0.2 + R1 * 0.8
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L의 절대값이0.009보다 작지 않으며, L의 절대값 크기와 R1의절대값 크기의 차가 0.017보다 작지 않을 때; Cv = L*0.5+ R1*0.5When the absolute magnitude of L is not greater than the absolute magnitude of R1, the absolute magnitude of L is not less than 0.009, and the difference between the absolute magnitude of L and the absolute magnitude of R1 is not less than 0.017; Cv = L * 0.5 + R1 * 0.5
로 계산한다.Calculate
이상의 수직 중심 심볼 기울기 초기값 Cv 를 구하는 단계를 일반적으로 설명하면 다음과 같다.The above-described steps for obtaining the vertical center symbol gradient initial value Cv are as follows.
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L의 절대값이 제1수직 허용값 Gv1보다 작을 때(수직에 가까울 때); Cv = LWhen the magnitude of the absolute value of -L is greater than the magnitude of the absolute value of R1 and the absolute value of L is less than the first vertical tolerance value Gv1 (close to the vertical); Cv = L
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L의 절대값이 수직 허용값 Gv1보다 작지 않으며(수직이 아니며) L의 절대값 크기와 R1의 절대값 크기의 차가 Gv3 이내일 때; Cv = L*0.8 + R1*0.2The absolute magnitude of -L is greater than the absolute magnitude of R1, the absolute value of L is not less than the vertical tolerance Gv1 (not vertical), and the difference between the absolute magnitude of L and the absolute magnitude of R1 is within Gv3. ; Cv = L * 0.8 + R1 * 0.2
-L의 절대값 크기가R1의 절대값 크기에 비해 크고, L 의 절대값이 수직 허용값 Gv1보다 작지 않으며(수직이 아니며), L의 절대값 크기와 R1의 절대값 크기가 Gv3 이상일 때; Cv = L*0.5 + R1*0.5The absolute value magnitude of -L is greater than the absolute value magnitude of R1, the absolute value of L is not less than the vertical tolerance Gv1 (not vertical), and the absolute value magnitude of L and the absolute value magnitude of R1 are greater than or equal to Gv3; Cv = L * 0.5 + R1 * 0.5
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L의 절대값이 제2수직허용값 Gv2보다 작을 때(수직에 가까울 때); Cv = R1When the absolute value magnitude of -L is not large compared to the absolute value magnitude of R1, and the absolute value of L is smaller than the second vertical allowable value Gv2 (close to the vertical); Cv = R1
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L의 절대값이 제2수직허용값 Gv2보다 작지 않으며, L의 절대값 크기와 R1의 절대값 크기의 차가 Gv3 보다 작을 때; Cv = L*0.2 + R1*0.8When the absolute value magnitude of -L is not larger than the absolute value magnitude of R1, the absolute value of L is not less than the second vertical allowable value Gv2, and the difference between the absolute value magnitude of L and the absolute value magnitude of R1 is smaller than Gv3; Cv = L * 0.2 + R1 * 0.8
-L의 절대값 크기가R1의 절대값 크기에 비해 크지 않고, L의 절대값이 제2수직허용값 Gv2 보다 작지 않으며, L의 절대값 크기와 R1의 절대값 크기의 차가 Gv3보다 작지 않을 때; Cv = L*0.5 + R1*0.5When the absolute value magnitude of -L is not larger than the absolute value magnitude of R1, the absolute value of L is not smaller than the second vertical allowable value Gv2, and the difference between the absolute value magnitude of L and the absolute value magnitude of R1 is not smaller than Gv3. ; Cv = L * 0.5 + R1 * 0.5
로 계산한다.Calculate
이상의 과정에 의해 수직중심 심볼 기울기 초기값 Cv 을 구하면 제어부(160)는이로부터 바코드 영상의 수직 중심 방향으로 심볼들의 좌표를 추출한다. When the vertical center symbol gradient initial value Cv is obtained by the above process, the
전술한 바와 같이 수직중심 심볼 기울기 초기값 Cv 를 구하면 제어부(160)는하측 파인더 패턴(104)의양 끝 좌표의 길이를 심볼의 개수로 나누어 중앙에 위치한 심볼의 좌표를 지나는 수직 중심 심볼 기울기 초기값 Cv 의 직선 방정식을 구하고, 상기 직선을 우측 방향으로 이동하면서심볼의 개수를 검색하여 바코드의 오른쪽 수직 방향에 놓인 심볼의개수와 일치할 때 배열에 수직 중심 심볼 들의 좌표 정보 들을 저장한다.
As described above, when the vertical center symbol slope initial value Cv is obtained, the
22)상단 수평 심볼 좌표추출 단계(S1200)22) the upper horizontal symbol coordinate extraction step (S1200)
상기 중앙 수직 심볼 좌표 추출 단계(S1190)에 이어 제어부(160)는 상기 제2 프레임 메모리(150)의이진 바코드 영상을 심볼 연산부(250)에 제공하여 바코드 영상의 상단 수평방향 심볼의 좌표를 추출한다. 먼저 심볼 연산부(250)는 바코드의 상단 수평방향 방향에 놓인심볼들을 모두 포함하는 기울기를 구한다. After the central vertical symbol coordinate extraction step (S1190), the
바코드의 상단 수평방향 방향에 놓인 심볼들을 모두 포함하는 기울기는 이진 바코드 영상의 왼쪽 상단의 끝 좌표(vert_left(x,y))(153)를 기준으로, 이미지를 포함하는제2 프레임 메모리(150)의 오른쪽 상단 끝 모서리의 좌표(vert_top(x,y))(151)와 이루는 기울기의 직선을 시작으로 제2 프레임메모리(150)의 원점방향으로 오른쪽 상단 끝 모서리의 좌표(vert_top(x,y))(151)를 y축 방향으로 한 픽셀씩 이동시키면서 최대 심볼 개수를 포함하는 기울기를 구한다. The
이 단계에서 이 바코드의 심볼 크기가 결정되며, 심볼 크기가 결정되는 시점은 제2 프레임 메모리(150)의 오른쪽 상단 끝 모서리의 좌표(vert_top(x,y))(151)와의 기울기로부터 오른쪽 상단 끝점을 y축방향으로 이동하면서 계산되는 기울기의 직선 상으로 검색된 심볼의 개수가 짝수 최대치에서 다시 줄어들 때를 기준으로 멈추고, 최대 심볼 개수가 검출된 기울기와 이때의 심볼 개수 및 심볼 들의 좌표들을 배열에 저장한다.
In this step, the symbol size of the barcode is determined, and the time point at which the symbol size is determined is the upper right endpoint from the slope with the coordinate (vert_top (x, y)) 151 of the upper right corner of the
23)중앙 수평 심볼 좌표추출 단계(S1210)23) central horizontal symbol coordinate extraction step (S1210)
전술한 상단 수평 심볼 좌표 추출 단계(S1200)에 이어 제어부(160)는 심볼 연산부(250)를 통해 바코드의 중앙 수평 위치에 놓인심볼들을 모두 포함하는 기울기를 구한다. 수평 중심 심볼 기울기 초기값(Ch)은 바코드의 상단 방향에 놓인 심볼들을 모두 포함하는 기울기와 하측 파인더 패턴(104)의 기울기 값을 기준으로 5가지의 경우에 따라 결정한다. 이 때 각각의 기울기는 2진 연산의 유효 숫자를 고려하여 x축 방향의 길이에 대한 y축 방향의 길이로 환산하여 계산한다. 판단의 방법으로서, 수평 중심 심볼 기울기 초기값을 Ch, 바코드의 상단 수평 방향에 놓인 심볼들을 모두 포함하는 기울기를 R2,하측 파인더 패턴(104)의 기울기 값을 B라하면,Subsequent to the above-described upper horizontal symbol coordinate extraction step (S1200), the
-B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B가 수평에 가까울 때; Ch = BWhen the magnitude of absolute value of B is greater than the magnitude of absolute value of R2, and B is close to horizontal; Ch = B
-B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B가 수평이 아니며 B의 절대값 크기가 R2의 절대값 크기에 대해 일정량 이내일 때; Ch = B*0.8 +R2*0.2The absolute magnitude of B is greater than the absolute magnitude of R2, B is not horizontal and the absolute magnitude of B is within a certain amount relative to the absolute magnitude of R2; Ch = B * 0.8 + R2 * 0.2
-B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B가 수평이 아니며 B의 절대값 크기와 R2의 절대값 크기가 일정량 이상일 때; Ch = B*0.5 + R2*0.5The absolute magnitude of B is greater than the absolute magnitude of R2, B is not horizontal and the absolute magnitude of B and the absolute magnitude of R2 are above a certain amount; Ch = B * 0.5 + R2 * 0.5
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B가 수평에 가까울 때; Ch = R2When the absolute magnitude of B is not large relative to the absolute magnitude of R2 and B is close to horizontal; Ch = R2
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B가 수평이 아니며 B의 절대값 크기와 R2의 절대값 크기의 차가 일정량 이내일 때; Ch = B*0.2 +R2*0.8When the absolute magnitude of B is not large relative to the absolute magnitude of R2, B is not horizontal and the difference between the absolute magnitude of B and the absolute magnitude of R2 is within a certain amount; Ch = B * 0.2 + R2 * 0.8
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B가 수평이 아니며 BL의 절대값 크기와 R2의 절대값 크기의 차가 일정량 이상일 때; Ch = B*0.5 +R2*0.5When the absolute magnitude of B is not large relative to the absolute magnitude of R2, B is not horizontal and the difference between the absolute magnitude of BL and the absolute magnitude of R2 is above a certain amount; Ch = B * 0.5 + R2 * 0.5
로 계산한다.Calculate
본 발명의 일실시예로서, 제2프레임메모리의 해상도가 640 X 480일 경우 상기의 수평 중심 심볼 기울기 초기값 Ch 를추출하는 예를 실 수치로써 설명하면 다음과 같다.As an embodiment of the present invention, an example of extracting the horizontal center symbol gradient initial value Ch when the resolution of the second frame memory is 640 × 480 will be described as follows.
-B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B가 0.011보다 작을 때(수평에가까울 때); Ch = BWhen the absolute magnitude of -B is greater than the absolute magnitude of R2 and B is less than 0.011 (close to horizontal); Ch = B
-B의 절대값 크기가 R1의 절대값 크기에 비해 크고, B가 0.011보다 작지 않으며(수평이아니며) B의 절대값 크기와 R2의 절대값 크기의 차가 0.017 이내일 때; Ch = B*0.8 + R2*0.2When the absolute magnitude of B is greater than the absolute magnitude of R1, B is not less than 0.011 (not horizontal), and the difference between the absolute magnitude of B and the absolute magnitude of R2 is within 0.017; Ch = B * 0.8 + R2 * 0.2
-B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B가 0.011보다 작지 않으며(수평이아니며), B의 절대값 크기와 R2의 절대값 크기가 0.017 이상일 때; Ch = B*0.5 + R2*0.5When the absolute magnitude of B is greater than the absolute magnitude of R2, B is not less than 0.011 (not horizontal), and the absolute magnitude of B and the absolute magnitude of R2 are greater than or equal to 0.017; Ch = B * 0.5 + R2 * 0.5
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B의 절대값이 0.009보다 작을 때(수평에 가까울 때); Ch = R2When the magnitude of the absolute value of B is not large relative to the magnitude of the absolute value of R2, and the absolute value of B is less than 0.009 (close to horizontal); Ch = R2
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B의 절대값이 0.009보다 작지 않으며, B의 절대값 크기와 R2의 절대값 크기의 차가 0.017보다 작을 때; Ch = B*0.2 + R2*0.8When the absolute magnitude of B is not larger than the absolute magnitude of R2, the absolute value of B is not less than 0.009, and the difference between the absolute magnitude of B and the absolute magnitude of R2 is less than 0.017; Ch = B * 0.2 + R2 * 0.8
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B의 절대값이 0.009보다 작지 않으며, B의 절대값 크기와 R2의 절대값 크기의 차가 0.017보다 작지 않을 때; Ch = B*0.5 + R2*0.5When the absolute magnitude of B is not greater than the absolute magnitude of R2, the absolute value of B is not less than 0.009, and the difference between the absolute magnitude of B and the absolute magnitude of R2 is not less than 0.017; Ch = B * 0.5 + R2 * 0.5
로 계산한다.Calculate
상기의 단계들에 대해 수평 중심 심볼 기울기 초기값 Ch 를 구하는 단계를 일반적으로 서술하면 다음과 같다.The steps for obtaining the horizontal center symbol gradient initial value Ch for the above steps are generally described as follows.
-B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B의 절대값이 제1수평 허용값Gh1보다 작을 때(수직에 가까울 때); Ch = BWhen the magnitude of the absolute value of B is greater than the magnitude of the absolute value of R2 and the absolute value of B is less than the first horizontal tolerance Gh1 (close to vertical); Ch = B
-B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B의 절대값이 수평 허용값 Gh1보다 작지 않으며(수직이 아니며) B의 절대값 크기와R1의 절대값 크기의 차가 Gh3 이내일 때; Ch =B*0.8 + R2*0.2The absolute magnitude of -B is greater than the absolute magnitude of R2, the absolute value of B is not less than the horizontal tolerance Gh1 (not vertical), and the difference between the absolute magnitude of B and the absolute magnitude of R1 is within Gh3. ; Ch = B * 0.8 + R2 * 0.2
-B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B 의 절대값이 수평 허용값 Gh1보다 작지 않으며(수직이 아니며), B의 절대값 크기와 R2의 절대값 크기가 Gh3 이상일 때; Ch = B*0.5 + R1*0.5When the absolute magnitude of B is greater than the absolute magnitude of R2, the absolute value of B is not less than the horizontal tolerance Gh1 (not vertical), and the absolute magnitude of B and the absolute magnitude of R2 are greater than or equal to Gh3; Ch = B * 0.5 + R1 * 0.5
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B의 절대값이 제2수평 허용값Gh2보다 작을 때(수직에 가까울 때); Ch = R2When the absolute value magnitude of -B is not large relative to the absolute value magnitude of R2, and the absolute value of B is smaller than the second horizontal tolerance value Gh2 (close to vertical); Ch = R2
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B의 절대값이 제2수직 허용값Gh2보다 작지 않으며, B의 절대값 크기와 R2의절대값 크기의 차가 Gh3 보다 작을 때; Ch = B*0.2 +R2*0.8When the absolute magnitude of B is not greater than the absolute magnitude of R2, the absolute value of B is not less than the second vertical tolerance Gh2, and the difference between the absolute magnitude of B and the absolute magnitude of R2 is less than Gh3; Ch = B * 0.2 + R2 * 0.8
-B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B의 절대값이 제2수직 허용값 Gh2 보다 작지 않으며, B의 절대값 크기와 R2의 절대값 크기의 차가 Gh3보다 작지 않을 때; Ch = B*0.5 +R2*0.5When the absolute magnitude of -B is not larger than the absolute magnitude of R2, the absolute value of B is not less than the second vertical tolerance Gh2, and the difference between the absolute magnitude of B and the absolute magnitude of R2 is not less than Gh3. ; Ch = B * 0.5 + R2 * 0.5
로 계산한다.Calculate
이상의 과정에 의해 수평 중심 심볼 기울기 초기값 Ch 을 구하면 제어부(160)는 이로부터 바코드 영상의 수평 중심 방향으로 심볼들의 좌표를 추출한다. 수평 중심 심볼 기울기 초기값 Ch 를 구하면 제어부(160)는 우측 파인더 패턴(103)의 양 끝 좌표의 길이를 심볼의개수로 나누어 중앙에 위치한 심볼의 좌표를 지나는 수직 중심 심볼 기울기 초기값 Ch 의 직선 방정식을 구하고, 상기 직선을 상단 방향(-y 방향)으로 이동하면서 심볼의 개수를 검색하여 바코드의 상단 수평 방향에 놓인 심볼의 개수와 일치할 때 배열에 수평중심 심볼 들의 좌표 정보 들을 저장한다
When the horizontal center symbol inclination initial value Ch is obtained by the above process, the
24)바코드 판독 초기화 단계(S1220)24) barcode reading initialization step (S1220)
상기 중앙 수평 심볼 좌표 추출 단계(S1210)가 완료되면 제어부(160)는 심볼 연산부(250)를 통해 제2 프레임 메모리(150)의 이진 바코드 영상으로부터, 바코드의 오른쪽 수직 방향에 놓인 심볼 들; 바코드의 중앙 수직 위치에 놓인 심볼 들; 바코드의 상단 방향에 놓인 심볼 들;바코드의 중앙 수평 위치에 놓인 심볼 들;의 좌표를 추출하였으므로 이로부터 바코드 판독을 위한 초기화 단계(S1220)를 수행한다. 바코드 판독 초기화단계(S1220)로서 상기 추출된 심볼들의 좌표 중 바코드의 오른쪽 수직 방향에 놓인 첫번째 심볼의좌표를 V1, 바코드의 중앙 수직 위치에 놓인 첫번째 심볼의 좌표를V2, 바코드의 상단 수평 방향에 놓인 첫번째 심볼의 좌표를 H1, 바코드의 중앙 수평위치에 놓인 첫번째 심볼의 좌표를 H2로 하는 초기값을 설정하여 판독 단계를 시작한다.
When the central horizontal symbol coordinate extraction step (S1210) is completed, the
25)수직 방향 심볼간 직선방정식 작성 단계(S1230)25) step of creating a linear equation between vertical symbols (S1230)
이어 제어부(160)는제2 프레임 메모리(150)내의 수직 방향 심볼 좌표V1과 V2를 연결하는 직선의 방정식 F1(y)를 구한다.
Subsequently, the
26)수평 방향 심볼간 직선방정식 작성 단계(S1240)26) Step of creating a linear equation between horizontal symbols (S1240)
상기 수직 방향 심볼간 직선 방정식 작성 단계(S1230)에 이어 제어부(160)는 제2 프레임 메모리(150)내의 수평방향 심볼 좌표H1과 H2를 연결하는 직선의 방정식 F2(y)를 구한다.
Subsequently, the
27)바코드 픽셀 판독 단계(S1250)27) barcode pixel reading step (S1250)
상기 수평 방향 심볼간 직선 방정식 작성 단계(S1240)에 이어 제어부(160)는 F1(y)와 F2(y)가 교차하는 제2 프레임 메모리(150)의 좌표를 계산하고 해당 좌표의 픽셀 값을 판독한다.
Subsequently, the
28)2D 매트릭스 메모리 저장단계(S1260)28) 2D matrix memory storage step (S1260)
상기 바코드 픽셀 판독 단계(S1250)에서 판독된 해당좌표의 픽셀 값은 제어부(160)에 의해 black=’1’,white=’0’로 하여 2D 매트릭스 메모리(260)에저장한다. 이때 2D 매트릭스 메모리(260)는 판독하고자 하는 바코드의 심볼의 가로 세로 개수에 대응하도록 구성되며 하나의 번지에 하나의 심볼이배치되도록 구성된다.The pixel value of the corresponding coordinate read in the bar code pixel reading step S1250 is stored in the 2D matrix memory 260 by black = '1' and white = '0' by the
이 때 상기의F1(y)와 F2(y)의 직선 방정식들이 수평-수직방향으로 교차하는 제2프레임 메모리(150)의 좌표의 이진영상이 black로 판독되면 제어부(160)는 대응하는 2D 매트릭스 메모리(260) 번지에 ‘1’을 기록하고, 수평-수직방향으로 교차하는 제2프레임 메모리(150)의 좌표의 이진영상이 white로 판독되면 제어부(160)는 대응하는 2D 매트릭스 메모리(260) 번지에 ‘0’을 기록한다.
At this time, if the binary image of the coordinates of the
29)수평 방향 심볼 종료체크 단계(S1270)29) Horizontal Symbol End Check Step (S1270)
상기의 2D 매트릭스메모리 저장 단계(S1260)에 이어 제어부(160)는 상기의 F1(y)와 F2(y)의 직선 방정식으로써 판독에 사용된 제2 프레임 메모리(150)내의 수평방향 심볼 좌표 H1과 H2가 마지막 심볼인지를 판단한다.
Following the above 2D matrix memory storing step (S1260), the
30)수평 방향 심볼 좌표갱신 단계(S1280)30) horizontal symbol coordinate update step (S1280)
상기의 수평 방향 심볼 종료 체크 단계(S1270)에서 제2 프레임 메모리(150)내의 수평방향 심볼 좌표 H1과 H2가 마지막 심볼이 아닌 것으로 판단되면 제어부(160)는 수평방향 심볼 좌표 H1과 H2를 상단 수평 심볼 좌표 추출 단계(S1200) 및 중앙 수평심볼 좌표 추출 단계(S1210)에서 추출한 수평방향 심볼 좌표들을 참조하여 바코드의 상단 수평 방향에놓인 다음 번 심볼의 좌표를 H1, 바코드의 중앙 수평 위치에 놓인 다음 번 심볼의 좌표를 H2로 갱신한 뒤 수평 방향 심볼간 직선 방정식 작성 단계(S1240)로 점프하여 제2 프레임 메모리(150)내의 수평방향 심볼의 다음 번 좌표 H1과 H2를 연결하는 다음 번 직선의 방정식 F2(y)를 구하는 단계부터다시 반복 수행한다. 상기의 수평 방향 심볼 종료 체크 단계(S1270)에서제2 프레임 메모리(150)내의 수평방향 심볼 좌표 H1과 H2가 마지막 심볼인 경우에는 다음의 수직 방향 심볼 종료 체크 단계(S1310)를 수행한다.
If it is determined that the horizontal symbol coordinates H1 and H2 in the
31)수직 방향 심볼 종료체크 단계(S1310)31) Vertical Symbol End Check Step (S1310)
상기의 수평 방향 심볼 종료 체크 단계(S1270)에서 제2 프레임 메모리(150)내의 수평방향 심볼 좌표 H1과 H2가 마지막 심볼인 것으로 판단되면 제어부(160)는, 상기의 F1(y)와 F2(y)의 직선 방정식으로써 판독에 사용된 제2 프레임 메모리(150)내의 수직방향 심볼 좌표 V1과 V2가 마지막 심볼인지를 판단한다.
If it is determined that the horizontal symbol coordinates H1 and H2 in the
32)수직 방향 심볼 좌표갱신 단계(S1280)32) Vertical symbol coordinate update step (S1280)
상기의 수직 방향 심볼 종료 체크 단계(S1310)에서 제2 프레임 메모리(150)내의 수직방향 심볼 좌표 V1과 V2가 마지막 심볼이 아닌 것으로 판단되면 제어부(160)는 수직방향 심볼 좌표 V1과 V2를 우측 심볼 좌표 추출 단계(S1180) 및 중앙 수직 심볼좌표 추출 단계(S1190)에서 추출한 수직방향 심볼 좌표들을 참조하여 바코드의 오른쪽 수직 방향에 놓인 다음 번 심볼의 좌표를 V1, 바코드의 중앙 수직 위치에 놓인 다음 번 심볼의 좌표를 V2로 갱신한다.
If it is determined that the vertical symbol coordinates V1 and V2 in the
33)수평 심볼 좌표 초기화단계(S1300)33) Horizontal symbol coordinate initialization step (S1300)
상기 수직 방향 심볼 좌표 갱신 단계(S1280)에 이어 제어부(1160)는 상기의 F1(y)와 F2(y)의 직선 방정식으로써 판독에 사용된 제2 프레임 메모리(150)내의 수평방향 심볼 좌표 H1과 H2를 첫 번째 심볼의 좌표로 갱신하고 수직 방향 심볼간 직선방정식 작성 단계(S1230)로 점프하여 제2 프레임 메모리(150)내의 수직 방향 심볼좌표V1과 V2를 연결하는 직선의 다음 번 방정식 F1(y)를 구하는 단계부터 반복 수행한다.
Following the vertical symbol coordinate updating step (S1280), the control unit 1160 and the horizontal symbol coordinate H1 in the
34)바코드 디코딩 단계(S1320)34) Barcode Decoding Step (S1320)
상기의 수직 방향 심볼 종료 체크 단계(S1310)에서 수직방향 심볼 좌표 V1과 V2가 마지막 심볼인 것으로 판단되면 제2 프레임 메모리(150)내의 바코드 픽셀들이모두 판독되어 2D 매트릭스 메모리(260)에 저장 완료되었으므로, 제어부(160)는 상기 2D 매트릭스메모리(260)의 ‘1’과 ‘0’으로 구성된 바코드 데이터를 2D 매트릭스 판독부(160a)에 제공하여 디코딩을 수행하고 종료(S1330)한다.
If it is determined that the vertical symbol coordinates V1 and V2 are the last symbols in the vertical symbol end check step (S1310), all barcode pixels in the
이상과 같이 본 발명은 비록 한정된 실시 예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의기술 사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.
As described above, although the present invention has been described by way of limited embodiments and drawings, the present invention is not limited thereto and will be described by the person skilled in the art to which the present invention pertains. Various modifications and variations are possible without departing from the scope of the appended claims.
100 : 바코드 101 : 2X2 데이터 매트릭스
103 : 좌측 파인더 패턴 104 : 하측 파인더 패턴
110 : 카메라 120 : 제1 프레임 메모리
130 : 디스플레이 140 : DMA 제어기
150 : 제2프레임 메모리 160 : 제어부
160a : 2차원 매트릭스 판독부 170 : 연산 프레임 메모리
180 : 그레이 레벨 변환부 190 : 보간축소부
220 : 연결영역 추출부 230 : 좌표 추출부
240 : 파인더 패턴 검출/회전부 250 : 심볼 연산부
260 : 2차원 매트릭스 메모리100: barcode 101: 2X2 data matrix
103: Left finder pattern 104: Lower finder pattern
110: camera 120: first frame memory
130: display 140: DMA controller
150: second frame memory 160: control unit
160a: two-dimensional matrix reading unit 170: arithmetic frame memory
180: gray level conversion unit 190: interpolation reduction unit
220: connection area extraction unit 230: coordinate extraction unit
240: finder pattern detection / rotation unit 250: symbol operation unit
260: 2D matrix memory
Claims (23)
바코드(100)를 촬영하는 카메라(110)와 상기 카메라(110)로부터의 컬러 영상 데이터를 저장하는제1 프레임 메모리(120)및 상기 제1 프레임 메모리(120)의 영상 데이터를 출력하는 디스플레이(130)로 구성되는 단말과,
프레임 메모리 간의 데이터 이동과 개별 처리부들을 제어하며 최종적으로 데이터 매트릭스바코드를 판독하는 제어부(160);와
상기 제어부(160)의 내부에는 제2 프레임 메모리(150)내의 바코드 판독 결과가 ‘0’과 ‘1’로 저장된 2D 매트릭스메모리(260)의 2D 매트릭스 바코드를 최종적으로 판독하는제2D 매트릭스 판독부(160a);를 구비하며,
상기 제어부(160)에는,
상기 제어부(160)의 전송 명령에 의해 저술한제1프레임 메모리(120)에 저장된 카메라(110)로부터의 영상 데이터를 제2프레임 메모리(150)에 저장하는 DMA 제어기(140);
제1프레임 메모리(120)의 영상 데이터를 저장하는 제2프레임 메모리(150);
상기 제2프레임 메모리(150)의 데이터를 연산처리를 하기 위한 연산 프레임 메모리(170);
제2 프레임 메모리(150)에 저장된 카메라(110)로부터의 영상을 그레이 레벨로 변환하는그레이 레벨 변환부(180);
그레이 레벨로 변환된 제2 프레임 메모리(150)의 영상 데이터를 연산 프레임 메모리(170)에 축소하여 저장하기 위한 연산을 수행하는 이중 선형 보간부(190);
연산 프레임 메모리(170)내의 그레이 레벨영상에 대해 에지값(edge value)을 연산하는 영역 필터부(200);
연산 프레임 메모리(170) 또는 제2 프레임 메모리(150)의 그레이 레벨 영상 데이터를 ‘1’과 ‘0’의 이진 영상으로 변환하는 이진 영상 변환부(210);
연산 프레임 메모리(170)내의 이진 영상에대해 인접한 ‘white’ 픽셀 그룹들을 판단하고 각 그룹별로 고유 번호를 부여하여 레이블링(labeling)을 수행하며, 상기 레이블링(labeling)으로 구분되는 ‘white’ 픽셀 그룹들 중에서 가장많은 픽셀들로 구성되는 ‘white’ 픽셀 그룹을 추출하는 연결 영역 추출부(220);
연결 영역 추출부(220)가 연산 프레임 메모리(170)내의 이진 영상에 대해 가장 많은 픽셀들로 구성되는 ‘white’픽셀 그룹을 제외한 나머지 그룹의 픽셀 값을 ‘black’으로 치환하여 추출한 바코드의 후보 영역에 대해 최대 영역의 위치를구하여 수직으로 중앙을 중심으로 이격거리 만큼 떨어진 경계 좌표들 간의 기울기(수직 기울기 : Gradient Vert)를 계산하고, 수평으로 중앙을 중심으로 이격거리 만큼 떨어진 경계 좌표들 간의기울기(수평 기울기 Gradient Horz)를 계산하고,
파인터 패턴 검출/회전부(240)에 의하여 처리된 제2 프레임 메모리(150)내의 바코드 영상에서 오른쪽 수직위치에 놓인 심볼들을 모두 포함하는 기울기, 바코드의 중앙수직 위치에 놓인 심볼들을 모두 포함하는 기울기, 바코드의 상단 수평 위치에 놓인 심볼들을 모두 포함하는 기울기, 바코드의 수평중심 위치에 놓인 심볼들을 모두포함하는 기울기를 계산하는 주변 기울기 추출부(230);
제2 프레임 메모리(150)내의 바코드 영상에서 파인더 패턴(finder pattern)과 그 위치를 검출하며, 이를 근거로 제어부가 제2 프레임 메모리(150)내의 바코드 영상을 90도 단위로 회전시킨 영상 데이터로 재기록하여, 제2 프레임메모리(150)내에서좌측 파인더 패턴(103)과 하측 파인더 패턴(104)이각각 영상의 좌측과 하단에 위치하고, 가장 우측과 최상단에 바코드 패턴을 판독하기 위한 기본 심볼의크기를 ‘0’과 ‘1’로 구분되도록 표시하는 클락 트랙(102)이 배치되도록 연산하는 파인더 패턴 검출/회전부(240);
파인터 패턴 검출/회전부(240)에 의하여 처리된 제2 프레임 메모리(150)내의 바코드 영상에서 탐색된 심볼들의 위치에 대해 오른쪽 수직기울기를 구할 때 검색된 심볼 위치정보가 저장된 배열과 중앙 수직 기울기를 구할 때 검색된 심볼 위치 정보가 저장된 배열의 같은 인덱스에 저장된 두 점이 이루는 직선 방정식을 구하고, 상단 수평 기울기를 구할 때 검색된 심볼위치 정보가 저장된 배열과 중앙 수평기울기를 구할 때 검색된 심볼 위치정보가저장된 배열의 같은 인덱스에 저장된 두 점이 이루는 직선 방정식을 구하여, 두 직선이 만나는 교점에 해당하는 픽셀 값이 검은색이면 ‘1’, 흰색이면 ‘0’을 2D 매트릭스 메모리(260)에 저장하는 심볼 연산부(250);
심볼 연산부(250)에 의해 제2 프레임 메모리(150)내의 바코드 판독 결과를 ‘0’과 ‘1’로 저장하는 2D 매트릭스메모리(260);
가 연결되어 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
A skewed data matrix barcode decoding apparatus from a camera for capturing an image, the apparatus comprising:
The camera 110 photographing the barcode 100, the first frame memory 120 storing the color image data from the camera 110, and the display 130 outputting the image data of the first frame memory 120. A terminal consisting of:
A controller 160 for controlling data movement between frame memories and individual processing units and finally reading a data matrix bar code; and
A second 2D matrix reading unit for finally reading a 2D matrix barcode of the 2D matrix memory 260 in which the barcode reading result in the second frame memory 150 is stored as '0' and '1'. 160a);
The control unit 160,
A DMA controller (140) for storing image data from the camera (110) stored in the first frame memory (120) described by the transfer command of the controller (160) in the second frame memory (150);
A second frame memory 150 for storing image data of the first frame memory 120;
An arithmetic frame memory 170 for arithmetic processing data of the second frame memory 150;
A gray level converter 180 for converting an image from the camera 110 stored in the second frame memory 150 to a gray level;
A dual linear interpolation unit 190 performing an operation for reducing and storing the image data of the second frame memory 150 converted to gray level in the operation frame memory 170;
An area filter unit 200 for calculating an edge value with respect to the gray level image in the calculation frame memory 170;
A binary image converter 210 for converting gray level image data of the operation frame memory 170 or the second frame memory 150 into binary images of '1' and '0';
Determining adjacent 'white' pixel groups with respect to the binary image in the operation frame memory 170 and labeling by assigning a unique number for each group, 'white' pixel groups divided by the labeling (labeling) A connection region extraction unit 220 for extracting a 'white' pixel group composed of the most pixels among the pixels;
The candidate region of the barcode extracted by replacing the pixel values of the remaining groups except for the 'white' pixel group composed of the most pixels for the binary image in the operation frame memory 170 with 'black' Calculate the gradient (vertical gradient: Gradient Vert) between the vertically spaced center coordinates by determining the location of the largest region with respect to Calculate the horizontal gradient Gradient Horz,
A slope including all the symbols placed at the right vertical position in the barcode image in the second frame memory 150 processed by the pinter pattern detection / rotation unit 240, a slope including all the symbols placed at the center vertical position of the barcode, A peripheral gradient extracting unit 230 for calculating a slope including all the symbols placed at the top horizontal position of the barcode and a slope including all the symbols placed at the horizontal center position of the barcode;
The finder pattern and its position are detected from the barcode image in the second frame memory 150, and based on this, the control unit rewrites the barcode image in the second frame memory 150 into image data obtained by rotating the barcode image by 90 degrees. In the second frame memory 150, the left finder pattern 103 and the lower finder pattern 104 are located at the left and the bottom of the image, respectively, and the size of the basic symbol for reading the barcode pattern at the rightmost and uppermost. A finder pattern detection / rotation unit 240 that calculates a clock track 102 to be divided into '0' and '1';
When the right vertical slope is obtained with respect to the position of the symbols searched in the bar code image in the second frame memory 150 processed by the pinter pattern detection / rotation unit 240, the array in which the retrieved symbol position information is stored and the center vertical slope are obtained. When you find the linear equation that consists of two points stored at the same index of the array where the retrieved symbol position information is stored, and when you obtain the top horizontal slope, the array where the retrieved symbol position information is stored and the same position of the array where the retrieved symbol position information is stored A symbol operation unit 250 for obtaining a straight line equation formed by two points stored in an index, and storing '1' if the pixel value corresponding to the intersection point of the two straight lines is black and '0' if the white color is 2D;
A 2D matrix memory 260 which stores the barcode reading result in the second frame memory 150 as '0' and '1' by the symbol calculating unit 250;
Skew data matrix barcode decoding device characterized in that the configuration is connected
연산 프레임 메모리(170)에 저장된 축소된영상 데이터를 제어부(160)로부터 제공받아 영상의 에지(edge)값을연산하며,
상기 영역 필터부(200)는, 연산 프레임 메모리(170)내의 그레이 레벨 영상에 대해 마스크(mask)로 사용할 3 X 3 픽셀 크기의 메모리를 할당하고,
현재 연산 대상 픽셀의 위치를 중심으로 가로 세로 3개씩의 픽셀값을 읽어 최대값과 최소값을 구하고 그 차이값을 에지값(edge value)으로 연산하며,
상기의 에지값 연산이 전체 축소된 영상 데이터에 대해 완료되면 상기 에지값으로 구성되는영상을 연산 프레임 메모리(170)에 저장하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The method of claim 1, wherein the area filter unit 200,
Receive the reduced image data stored in the operation frame memory 170 from the control unit 160 to calculate an edge value of the image,
The area filter unit 200 allocates a memory having a size of 3 X 3 pixels to be used as a mask for the gray level image in the operation frame memory 170,
The maximum and minimum values are obtained by reading three pixel values horizontally and vertically around the current pixel position, and the difference is calculated as an edge value.
Skew data matrix barcode decoding device characterized in that configured to store the image consisting of the edge value in the operation frame memory 170 when the edge value calculation is completed for the entire reduced image data
상기 제어부(160)로부터 추출된 ‘white’ 의 바코드의 후보 영역을 포함하는 연산 프레임 메모리(170)의 영상 데이터를 제공받아,
연산 프레임 메모리(170)의 영상 데이터의수직 방향으로 중앙을 중심으로 d만큼 이격된 두개의 경계 좌표, 세로방향 높이 및 기울기(수직 기울기 : Gradient_Vert)를더 계산하고, 수평방향으로 중앙을 중심으로 이격된 두개의 경계 좌표, 가로 방향 길이 및 기울기(수평 기울기 : Gradient_Horz)를 더 계산하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The peripheral slope extraction unit 230 of claim 1,
Receive image data of the operation frame memory 170 including the candidate region of the 'white' bar code extracted from the controller 160,
Two boundary coordinates spaced apart by d from the center in the vertical direction of the image data of the operation frame memory 170, the vertical height and the slope (vertical slope: Gradient_Vert) are further calculated, and are horizontally spaced about the center. Skew data matrix barcode decoding device, characterized in that configured to further calculate two boundary coordinates, horizontal length and slope (horizontal slope: Gradient_Horz)
연산프레임 메모리(170)의 영상 데이터의 수직 방향(Y축)으로 중앙을 중심으로 d만큼 이격된 두개의 경계 좌표를 추출하고, 수평방향(x축)으로 중앙을중심으로 d만큼 이격된 두개의 경계 좌표를 추출하여, 상기의경계 좌표들을 이용하여 바코드의 후보영역의 길이 및 기울기를 각각 계산하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The peripheral slope extraction unit 230 of claim 1,
Extract two boundary coordinates spaced d by the center in the vertical direction (Y axis) of the image data of the operation frame memory 170, and two spaced apart by the center d in the horizontal direction (x axis) A skewed data matrix barcode decoding device, configured to extract boundary coordinates and calculate a length and a slope of candidate regions of a barcode using the boundary coordinates, respectively.
연결 영역 추출부(220)에 의해 제공된 바코드후보 영역의 세로 방향 높이 Labeling_height 와 가로 방향 길이 Labeling_width, 및 주변 기울기 추출부(230)에 의해계산된 수직 기울기 Gradient_Vert와 수평 기울기Gradient_Horz를 이용하여 바코드 판독이 유효한 영상인지를 판단하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The method of claim 1, wherein the controller 160,
The bar code reading is effective by using the vertical height Labeling_height and the horizontal length Labeling_width of the barcode candidate area provided by the connection area extractor 220 and the vertical gradient Gradient_Vert and the horizontal gradient Gradient_Horz calculated by the peripheral gradient extractor 230. Skew data matrix barcode decoding device, characterized in that configured to determine whether the image
제1프레임 메모리(120)에 저장된 바코드 후보 영역의 세로 방향 높이Labeling_height 와 가로 방향 길이 Labeling_width의 비율이 일정비율 이내이면 판독이 가능한 것으로 판단하고 지나치게 차이가 나는 경우에는 인식 실패로 간주하여, 제어부(160)의 전송 명령에 의해 카메라(110)로부터의 새로운 영상 데이터를제1프레임 메모리(120)로부터 제2 프레임 메모리(150)에 저장하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The method of claim 5, wherein the control unit 160,
If the ratio of the vertical height Labeling_height and the horizontal length Labeling_width of the barcode candidate region stored in the first frame memory 120 is within a certain ratio, it is determined that the reading is possible. Skew data matrix barcode decoding device characterized in that configured to store the new image data from the camera 110 from the first frame memory 120 to the second frame memory 150 by a transmission command of
주변 기울기 추출부(230)에 의해 계산된수직 기울기 Gradient_Vert와 수평 기울기Gradient_Horz 값에 대해 수직 기울기 Gradient_Vert값이 수직에 가깝거나, 수평 기울기 Gradient_Horz 값이 수평에 가깝거나, 또는 수직 기울기 Gradient_Vert와 수평 기울기 Gradient_Horz 값이 서로 수직에 가까울 때, 즉 수직기울기 Gradient_Vert와 수평기울기 Gradient_Horz의 곱이 0보다 작을 경우에 판독이 가능한 것으로 판단하고 그렇지 않은 경우에는 인식실패로 간주하여, 제어부(160)의 전송 명령에 의해 카메라(110)로부터의 새로운 영상 데이터를 제1프레임 메모리(120)로부터 제2 프레임 메모리(150)에 저장하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The method of claim 5, wherein the control unit 160,
The vertical gradient Gradient_Vert and horizontal gradient Gradient_Vort values calculated by the peripheral gradient extractor 230 are close to vertical, the horizontal gradient Gradient_Horz value is close to horizontal, or the vertical gradient Gradient_Vert and horizontal gradient Gradient_Horz values When it is close to each other, that is, when the product of the vertical gradient Gradient_Vert and the horizontal gradient Gradient_Horz is less than 0, it is determined that the reading is possible. Otherwise, the recognition failure is regarded as a recognition failure. Skew data matrix barcode decoding device, characterized in that it is configured to store new image data from the first frame memory 120 to the second frame memory 150
제2 프레임 메모리(150)의 이진 바코드 영상의 오른쪽 하단의 끝 좌표(vert_right(x,y))(152)를 기준으로, 이미지를 포함하는 제2 프레임 메모리(150)의 오른쪽 상단 끝 모서리의 좌표(vert_top(x,y))(151)와이루는 기울기의 직선을 시작으로 제2 프레임 메모리(150)의 원점방향으로 오른쪽 상단 끝 모서리의 좌표(vert_top(x,y))(151)를 원점 방향으로 한 픽셀씩 이동시키면서 바코드의 오른쪽 수직 방향에 놓인 심볼들을 모두 포함하는 기울기를 구하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
In claim 1, the symbol operation unit 250,
Coordinates of the upper right end corner of the second frame memory 150 including the image based on the lower right coordinates (vert_right (x, y)) 152 of the binary barcode image of the second frame memory 150. The coordinates (vert_top (x, y)) 151 of the upper right end corner in the origin direction of the second frame memory 150 starting with the straight line of the slope, are obtained in the origin direction. Skew data matrix barcode decoding device characterized in that it is configured to obtain a slope including all the symbols placed in the right vertical direction of the barcode while moving by one pixel
바코드의 오른쪽 수직 방향에 놓인 심볼들을 모두 포함하는 기울기와 좌측 파인더 패턴(103)의 기울기 값을 기준으로
바코드의 중앙 수직 위치에 놓인 심볼들을 모두 포함하는 수직 중심심볼 기울기 초기값(Cv)을 구하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
According to claim 8, If the symbol operation unit 250 obtains the slope including all the symbols placed in the right vertical direction of the barcode control unit 160,
Based on the inclination value of the left finder pattern 103 and the slope including all the symbols placed in the right vertical direction of the barcode.
Skew data matrix barcode decoding device characterized in that it is configured to obtain a vertical center symbol gradient initial value (Cv) including all the symbols placed at the center vertical position of the barcode.
바코드의 오른쪽 수직 방향에 놓인 심볼들을 모두 포함하는 기울기와 좌측 파인더 패턴(103)의 기울기 및 수직 중심 심볼 기울기 초기값(Cv)을 2진 연산의 유효 숫자를 고려하여 y축 방향의 길이에 대한 x축 방향의 길이로 환산하여 계산하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The control unit 160 of claim 9,
The slope of the left and right finder patterns 103 and the vertical center symbol tilt initial value (Cv) are taken into consideration for the length of the y-axis direction in consideration of the significant digits of the binary operation. Skew data matrix barcode decoding device, characterized in that configured to calculate in terms of the length in the axial direction
수직 중심 심볼 기울기 초기값을 Cv, 바코드의오른쪽 수직 방향에 놓인 심볼들을 모두 포함하는 기울기를 R1, 좌측 파인더 패턴(103)의 기울기 값을 L이라 하면,
L의 절대값 크기가R1의 절대값 크기에 비해 크고, L의 절대값이 제1수직허용값 Gv1보다 작을 때(수직에 가까울 때); Cv = L
L의 절대값 크기가 R1의 절대값 크기에 비해 크고, L의 절대값이 수직 허용값 Gv1보다 작지 않으며(수직이 아니며) L의 절대값 크기와 R1의 절대값 크기의 차가 Gv3 이내일 때 Cv = L*0.8 + R1*0.2
L의 절대값 크기가 R1의 절대값 크기에 비해 크고, L 의 절대값이 수직 허용값 Gv1보다 작지 않으며(수직이 아니며), L의 절대값 크기와 R1의 절대값 크기가 Gv3 이상일 때 Cv = L*0.5 + R1*0.5
L의 절대값 크기가 R1의 절대값 크기에 비해 크지 않고, L의 절대값이 제2수직 허용값 Gv2보다 작을 때(수직에가까울 때); Cv = R1
L의 절대값 크기가 R1의 절대값 크기에 비해 크지 않고, L의 절대값이 제2수직 허용값 Gv2보다 작지 않으며,L의 절대값 크기와 R1의 절대값 크기의 차가 Gv3 보다작을 때 Cv = L*0.2 + R1*0.8
L의 절대값 크기가 R1의 절대값 크기에 비해 크지 않고, L의 절대값이 제2수직 허용값 Gv2 보다 작지 않으며, L의 절대값 크기와 R1의 절대값 크기의 차가 Gv3보다 작지 않을 때 Cv = L*0.5 + R1*0.5
로 결정되도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The method of claim 9 or 10, wherein the control unit 160,
If the initial value of the vertical center symbol slope is Cv, the slope including all the symbols placed in the right vertical direction of the barcode is R1, and the slope value of the left finder pattern 103 is L,
When the magnitude of the absolute value of L is larger than the magnitude of the absolute value of R1 and the absolute value of L is smaller than the first vertical allowable value Gv1 (close to the vertical); Cv = L
Cv when the absolute magnitude of L is greater than the absolute magnitude of R1, the absolute value of L is not less than the vertical tolerance Gv1 (not vertical), and the difference between the absolute magnitude of L and the magnitude of R1 is within Gv3. = L * 0.8 + R1 * 0.2
When the absolute magnitude of L is greater than the absolute magnitude of R1, the absolute value of L is not less than the vertical tolerance Gv1 (not vertical), and the absolute magnitude of L and the absolute magnitude of R1 are greater than or equal to Gv3, Cv = L * 0.5 + R1 * 0.5
When the magnitude of the absolute value of L is not large compared to the magnitude of the absolute value of R1, and the absolute value of L is smaller than the second vertical tolerance value Gv2 (close to the vertical); Cv = R1
When the magnitude of the absolute value of L is not larger than the magnitude of the absolute value of R1, the absolute value of L is not less than the second vertical tolerance Gv2, and the difference between the absolute magnitude of L and the magnitude of the absolute value of R1 is less than Gv3, Cv = L * 0.2 + R1 * 0.8
Cv when the magnitude of the absolute value of L is not larger than the magnitude of the absolute value of R1, the absolute value of L is not less than the second vertical tolerance Gv2, and the difference between the absolute value of L and the magnitude of the absolute value of R1 is not less than Gv3. = L * 0.5 + R1 * 0.5
Skew data matrix barcode decoding device, characterized in that configured to be determined
수직 중심 심볼 기울기 초기값 Cv 를 구하고 하측 파인더 패턴(104)의 양 끝 좌표의 길이를 심볼의 개수로 나누어 중앙에 위치한 심볼의 좌표를지나는 수직 중심 심볼 기울기 초기값 Cv 의 직선 방정식을 구하고,상기 직선을 우측 방향으로 이동하면서 심볼의 개수를 검색하여 바코드의 오른쪽 수직 방향에 놓인 심볼의 개수와 일치할 때 배열에 수직중심 심볼 들의 좌표 정보 들을 저장하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The control unit 160 of claim 9,
Obtain the vertical center symbol slope initial value Cv and divide the length of both end coordinates of the lower finder pattern 104 by the number of symbols to obtain a straight line equation of the vertical center symbol slope initial value Cv passing the coordinates of the symbol located at the center, Squeeze data matrix barcode decoding device, characterized in that to retrieve the number of symbols while moving in the right direction and to store the coordinate information of the vertical center symbols in the array when it matches the number of symbols placed in the right vertical direction of the barcode
상기 제2 프레임 메모리(150)의 이진 바코드 영상을 심볼연산부(250)에 제공하여 바코드의 상단 수평방향 방향에 놓인 심볼들을 모두 포함하는 기울기를 구하도록구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
In claim 1, the control unit 160,
The skewed data matrix barcode decoding device of claim 2, wherein the binary barcode image of the second frame memory 150 is provided to the symbol operator 250 to obtain a slope including all the symbols placed in the horizontal direction of the barcode.
제2 프레임 메모리(150)의 이진 바코드 영상의 상단 수평방향 방향에 놓인 심볼들을 모두 포함하는 기울기는 이진 바코드 영상의왼쪽 상단의 끝 좌표(vert_left(x,y))(153)를 기준으로,이미지를 포함하는 제2 프레임 메모리(150)의오른쪽 상단 끝 모서리의 좌표(vert_top(x,y))(151)와 이루는 기울기의 직선을 시작으로 제2 프레임 메모리(150)의 원점방향으로 오른쪽 상단 끝모서리의 좌표(vert_top(x,y))(151)를 y축방향으로 한 픽셀씩 이동시키면서 최대 심볼 개수를 포함하는 기울기를 구하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The symbol operator 250 of claim 13,
The slope including all the symbols placed in the upper horizontal direction of the binary barcode image of the second frame memory 150 is based on the end coordinates (vert_left (x, y)) 153 of the upper left of the binary barcode image. The upper right end of the second frame memory 150 in the origin direction of the second frame memory 150, starting with a straight line of the slope formed with the coordinates (vert_top (x, y)) 151 of the upper right end corner of the second frame memory 150 including. Skew data matrix barcode decoding device characterized in that it is configured to obtain the slope including the maximum number of symbols while moving the coordinates (vert_top (x, y)) 151 of the corner by one pixel in the y-axis direction
바코드의 상단 방향에 놓인 심볼들을 모두 포함하는 기울기와 하측 파인더 패턴(104)의 기울기 값을 기준으로
바코드의 중앙 수평 위치에 놓인 심볼들을 모두 포함하는 수평 중심 심볼 기울기 초기값(Ch)을 구하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The controller 160 of claim 13, wherein when the symbol operation unit 250 obtains an inclination including all of the symbols placed in the horizontal direction of the upper side of the binary barcode image, the controller 160 determines whether the symbol operation unit 250 includes the symbols.
Based on the inclination value of the lower finder pattern 104 and the slope including all the symbols placed in the upper direction of the barcode.
Skew data matrix barcode decoding device, characterized in that configured to obtain a horizontal center symbol gradient initial value (Ch) including all the symbols placed at the center horizontal position of the barcode
바코드의 상단 방향에 놓인 심볼들을 모두 포함하는 기울기와 하측 파인더 패턴(104)의 기울기 값 및 수평 중심 심볼 기울기 초기값(Ch)을 2진 연산의 유효 숫자를 고려하여 x축 방향의 길이에 대한 y축 방향의 길이로 환산하여 계산하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The method of claim 15, wherein the control unit 160,
The inclination value of all the symbols placed in the upper direction of the barcode and the inclination value of the lower finder pattern 104 and the initial value of the horizontal center symbol inclination Ch are taken into consideration for the length of the x-axis direction in consideration of the significant digits of the binary operation. Skew data matrix barcode decoding device, characterized in that configured to calculate in terms of the length in the axial direction
수평 중심 심볼 기울기 초기값을 Ch, 바코드의 상단 수평 방향에놓인 심볼들을 모두 포함하는 기울기를 R2, 하측 파인더 패턴(104)의기울기 값을 B라 하면,
B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B의 절대값이 제1수평 허용값 Gh1보다 작을 때(수직에가까울 때); Ch = B
B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B의 절대값이 수평 허용값 Gh1보다 작지 않으며(수직이 아니며) B의 절대값 크기와 R1의 절대값 크기의 차가 Gh3 이내일 때 Ch = B*0.8 + R2*0.2
B의 절대값 크기가 R2의 절대값 크기에 비해 크고, B 의 절대값이 수평 허용값 Gh1보다 작지 않으며(수직이 아니며), B의 절대값 크기와 R2의 절대값 크기가 Gh3 이상일 때 Ch = B*0.5 + R1*0.5
B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B의 절대값이 제2수평 허용값 Gh2보다 작을 때(수직에가까울 때); Ch = R2
B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B의 절대값이 제2수직 허용값 Gh2보다 작지 않으며,B의 절대값 크기와 R2의 절대값 크기의 차가 Gh3 보다작을 때 Ch = B*0.2 + R2*0.8
B의 절대값 크기가 R2의 절대값 크기에 비해 크지 않고, B의 절대값이 제2수직 허용값 Gh2 보다 작지 않으며, B의 절대값 크기와 R2의 절대값 크기의 차가 Gh3보다 작지 않을 때 Ch = B*0.5 + R2*0.5
로 수평 중심 심볼 기울기 초기값(Ch)을 결정하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The method according to claim 15 or 16, wherein the control unit 160,
If the initial value of the horizontal center symbol slope is Ch, the slope including all the symbols placed in the upper horizontal direction of the barcode is R2, and the slope value of the lower finder pattern 104 is B,
When the magnitude of the absolute value of B is larger than the magnitude of the absolute value of R2, and the absolute value of B is smaller than the first horizontal tolerance Gh1 (close to vertical); Ch = B
When the absolute magnitude of B is greater than the absolute magnitude of R2, the absolute value of B is not less than the horizontal tolerance Gh1 (not vertical), and the difference between the absolute magnitude of B and the magnitude of R1 is within Gh3. = B * 0.8 + R2 * 0.2
When the absolute magnitude of B is greater than the absolute magnitude of R2, the absolute value of B is not less than the horizontal tolerance Gh1 (not vertical), and the absolute magnitude of B and the absolute magnitude of R2 are greater than or equal to Gh3, Ch = B * 0.5 + R1 * 0.5
When the absolute value magnitude of B is not large relative to the absolute value magnitude of R2, and the absolute value of B is smaller than the second horizontal tolerance value Gh2 (close to vertical); Ch = R2
When the absolute magnitude of B is not greater than the absolute magnitude of R2, the absolute value of B is not less than the second vertical tolerance Gh2, and the difference between the absolute magnitude of B and the absolute magnitude of R2 is less than Gh3, Ch = B * 0.2 + R2 * 0.8
When the absolute magnitude of B is not larger than the absolute magnitude of R2, the absolute value of B is not less than the second vertical tolerance Gh2, and the difference between the absolute magnitude of B and the absolute magnitude of R2 is not less than Gh3. = B * 0.5 + R2 * 0.5
Skewed data matrix barcode decoding device characterized in that it is configured to determine the horizontal center symbol gradient initial value Ch
수평 중심 심볼 기울기 초기값 Ch 를 구하고제어부(160)는 우측 파인더 패턴(103)의 양 끝 좌표의길이를 심볼의 개수로 나누어 중앙에 위치한 심볼의 좌표를 지나는 수직 중심 심볼 기울기 초기값 Ch 의직선 방정식을 구하여, 상기 직선을 상단 방향(-y 방향)으로 이동하면서 심볼의 개수를 검색하여 바코드의 상단 수평 방향에 놓인 심볼의 개수와 일치할 때 배열에 수평중심 심볼 들의 좌표 정보 들을 저장하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The method of claim 15, wherein the control unit 160,
The horizontal center symbol slope initial value Ch is calculated, and the controller 160 divides the lengths of both end coordinates of the right finder pattern 103 by the number of symbols. The linear equation of the vertical center symbol slope initial value Ch passes through the coordinates of the symbol located at the center. To obtain the number of symbols while moving the straight line in the upper direction (-y direction) and store the coordinate information of the horizontal center symbols in an array when the number of symbols coincides with the number of symbols placed in the upper horizontal direction of the barcode. Skewed data matrix barcode decoding device
상기 심볼 연산부(250)를 통해 제2 프레임 메모리(150)의 이진 바코드 영상으로부터, 바코드의 오른쪽 수직 방향에 놓인 심볼 들 바코드의 중앙 수직 위치에 놓인 심볼 들 바코드의 상단 방향에 놓인심볼 들 바코드의 중앙 수평 위치에 놓인 심볼 들의 좌표를 구하고 제2 프레임 메모리(150)의 바코드의 오른쪽 수직 방향에 놓인 심볼 들의 좌표와 바코드의 중앙 수직 위치에 놓인 심볼 들의 좌표를차례대로 연결하는 수평방향의 직선 방정식들을 추출하며, 이어 바코드의 상단 방향에 놓인 심볼 들과 바코드의중앙 수평 위치에 놓인 심볼 들의 좌표를 차례대로 연결하는 수직방향의 직선 방정식들을 추출하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The method of claim 1, wherein the controller 160,
From the binary barcode image of the second frame memory 150 through the symbol operation unit 250, the symbols placed in the right vertical direction of the barcodes. The symbols placed in the center vertical position of the barcodes. Obtain the coordinates of the symbols placed in the horizontal position and extract the horizontal linear equations that sequentially connect the coordinates of the symbols placed in the right vertical direction of the barcode of the second frame memory 150 and the coordinates of the symbols placed in the center vertical position of the barcode. Then, skewed data matrix barcode decoding device characterized in that it is configured to extract the linear equations in the vertical direction connecting the symbols placed in the upper direction of the barcode and the coordinates of the symbols placed in the center horizontal position of the barcode in sequence.
상기의 직선 방정식들을 이용하여 수평-수직방향으로 교차하는 제2프레임 메모리(150)의 좌표들을 각각의 직선들에 대해 계산하고 해당 좌표의 영상 데이터를 이용하여 2D 매트릭스 메모리(260)에 바코드를 완성하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The method of claim 19, wherein the controller 160,
Using the above linear equations, the coordinates of the second frame memory 150 intersecting in the horizontal-vertical direction are calculated for the respective straight lines, and the barcode is completed in the 2D matrix memory 260 using the image data of the corresponding coordinates. Skew data matrix barcode decoding device, characterized in that configured to
상기의 직선 방정식들을 이용하여 수평-수직방향으로 교차하는 제2프레임 메모리(150)의 좌표의 이진영상이 black로 판독되면 제어부(160)는 대응하는 2D 매트릭스 메모리(260) 번지에 ‘1’을 기록하고, 수평-수직 방향으로 교차하는 제2프레임 메모리(150)의 좌표의 이진 영상이 white로 판독되면 제어부(160)는 대응하는 2D 매트릭스 메모리(260) 번지에 ‘0’을 기록하는 일련의 과정을 전체 직선들에 대해 수행함으로써 2D 매트릭스 메모리(260) 내에2D 바코드를 완성하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The method of claim 19, wherein the control unit 160,
When the binary image of the coordinates of the second frame memory 150 intersecting in the horizontal-vertical direction is read as black using the above linear equations, the controller 160 sets '1' to the corresponding 2D matrix memory 260 address. When the binary image of the coordinates of the second frame memory 150 that intersects in the horizontal-vertical direction is read as white, the controller 160 records a series of '0's at the corresponding 2D matrix memory 260 addresses. Skew data matrix barcode decoding device, characterized in that configured to complete the 2D barcode in the 2D matrix memory 260 by performing the process for all straight lines
2D 매트릭스 메모리(260)내의 ‘1’과 ‘0’으로 구성된 바코드 데이터를 바코드 디코드 수단을 구비한 2D 매트릭스 판독부(160a)를통해 바코드를 디코딩하도록 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드 디코딩 장치
The method of claim 21, wherein the controller 160,
Skew data matrix barcode decoding device characterized in that the barcode data consisting of '1' and '0' in the 2D matrix memory 260 is configured to decode the barcode through the 2D matrix reading unit 160a having the barcode decoding means.
이차원 바코드 추출이 시작되는 시작 단계(S1000);
상기 시작 단계(S100)에 이어 제어부(160)가 DMA(direct memory access) 제어기(140)에 명령을 전송하여 1프레임 메모리(120)에 저장된 카메라(110)로부터의 영상 데이터를 제2프레임 메모리(150)에 저장하는 입력 영상 복사 단계 (S1010);
상기 입력 영상 복사 단계 (S1010)에이어 제어부(160)가 제2프레임 메모리(150)의 컬러 영상을 그레이 레벨 변환부(180)을 통해 그레이레벨로 변환하는 그레이 레벨 변환 단계(S1020);
상기 그레이 레벨 변환 단계(S1020)에이어 제어부(160)가 이중 선형 보간부(190)로써 그레이레벨로 변환된 제2 프레임 메모리(150)의 영상 데이터를연산 프레임 메모리(170)에 축소하여 저장하는 이중 선형 보간 단계(S1030);
상기 이중 선형 보간 단계(S1030)에이어제어부(160)가 축소된 제2 프레임 메모리(150)의 영상 데이터를 연산 프레임 메모리(170)에 저장하는 연산프레임 메모리 저장 단계(S1040);
상기 연산 프레임 메모리(170) 저장 단계(S1040)에 이어 제어부(160)가 연산 프레임 메모리(170)에 저장된 축소된 영상 데이터를 영역 필터부(200)에 제공하여영상의 에지(edge)값을 연산하는 에지 추출 단계(S1050);
상기 에지 추출 단계(S1050)에 이어 제어부(160가 연산 프레임 메모리(170)에 저장된 축소된 그레이 레벨영상 데이터의 에지값 영상 데이터를 이진 영상 변환부(210)에 제공하여 이진화 영상으로 변환하는 이진화영상 추출 단계 (S1060);
상기 이진화 영상 추출 단계 (S1060)에이어 제어부(160)가 상기 연산 프레임 메모리(170)에저장된 축소된 영상 데이터의 에지값 이진화 영상데이터를 연결 영역 추출부(220)에 제공하여, 영상 내의 인접한 ‘white’ 픽셀 그룹들을 판단하고 각 그룹별로 고유 번호를 부여하여 레이블링(labeling)을 수행하며, 상기 레이블링(labeling)으로 구분되는 ‘white’ 픽셀 그룹들 중에서 가장 많은 픽셀들로 구성되는 ‘white’ 픽셀 그룹을 추출하는 최대 연결 영역 추출 단계(S1070);
상기의 최대 연결 영역 추출 단계(S1070)에이어 제어부(160)가 추출된 ‘white’ 의 바코드의 후보 영역을 포함하는 연산 프레임 메모리(170)의영상 데이터를 주변 기울기 추출부(230)에 제공하여, 연산프레임 메모리(170)의 영상 데이터의 수직 방향으로 중앙을 중심으로 세로 방향 높이 및 기울기(수직 기울기 : Gradient_Vert)를 계산하고, 수평방향으로 중앙을 중심으로 가로 방향 길이 및 기울기(수평 기울기 : Gradient_Horz)를 계산하는 경계좌표 기울기 추출 단계(S1080);
상기의 경계좌표 기울기 추출 단계(S1080)에이어 제어부(160)가 연결 영역 추출부(220)에 의해 제공된 제1프레임 메모리(120)에 저장된 바코드 후보 영역의세로 방향 높이 Labeling_height 와 가로 방향 길이Labeling_width의 비율이 일정 비율 이내이면 판독이 가능한 것으로 판단하는 수평 수직 길이 유효 판단 단계(S1090);
상기 수평 수직 길이 유효 판단 단계(S1090)에서제어부(160)에 의해 판독이 가능한 것으로 판단되면, 제어부(160)는 주변 기울기 추출부(230)에 의해 계산된 수직 기울기 Gradient_Vert가 바코드 판독이 유효한 값인지를 판단하는 수직 기울기 유효 판단 단계(S1091);
상기 수직 기울기 유효 판단 단계(S1091)에서제어부(160)가 주변 기울기 추출부(230)에 의해 계산된수직 기울기 Gradient_Vert가 바코드 판독이 유효한 값으로 판단되면, 제어부(160)는 주변 기울기 추출부(230)에 의해 계산된 수평기울기 Gradient_Horz 가 유효한값인지를 판단하는 수평 기울기 유효 판단 단계(S1092);
상기 수평 기울기 유효 판단 단계(S1092)에서수평기울기 Gradient_Horz 가 유효한 경우, 제어부(160)는 주변 기울기 추출부(230)에 의해 계산된 수직 기울기 Gradient_Vert와 수평 기울기 Gradient_Horz 값이서로 수직에 가까운 지를 판단하는 수평 수직 기울기의 각도 계산 단계(S1100); 를 수행하고,
상기 수평 수직 기울기의 각도 계산 단계(S1100)에이어 제어부(160)는, 수직 기울기 Gradient_Vert와 수평기울기 Gradient_Horz의 곱이 0보다 작을 경우에 판독이 가능한 것으로 판단하는 수평 수직 기울기의 각도 판단 단계(S1110);
상기 수평 수직 기울기의 각도 판단 단계(S1110)에서 제어부(160)가 연결 영역 추출부(220)에 의해 제공된 바코드 후보 영역이바코드 판독이 가능한 것으로 판단한 경우, 제어부(160)는연산 프레임 메모리(170)의 바코드 후보 영역에 대응하는 제2 프레임메모리(150)의 영상에서 상기 바코드 후보 영역을 제외한 영역의 픽셀값을 ‘white’로 치환하는 바코드 영역 추출 단계(S1120);를 수행하며,
상기 바코드 영역 추출 단계(S1120)에이어 제어부(160)는, 제2 프레임 메모리(150)의 바코드 후보 영역의 크기가 일정 이상이면판독이 가능한 것으로 판단하는 추출 영역 유효 판단 단계(S1130);
상기 추출 영역 유효 판단 단계(S1130)에서제2 프레임 메모리(150)의 바코드 후보 영역의 크기가판독 가능한 것으로 판단되면, 제어부(160)는 제2 프레임 메모리(150)의 바코드 후보 영역에 대응하는 그레이 레벨의영상을 이진 영상 변환부(210)에 공급하여 이진영상 변환을 수행함으로써 제2 프레임 메모리(150)에 바코드 후보 영역에 대응하는 이진 영상을저장하는 추출영역 영상의 이진화 단계(S1140)
상기 추출영역 영상의 이진화 단계(S1140)에이어 제어부(160)는 파인더 패턴 검출/회전부(240)에 상기 이진 영상을 제공하여 파인더 패턴을 검출하는 파인더 패턴 탐색 단계(S1150);
상기 파인더 패턴 탐색 단계(S1150)에이어 제어부(160)가 파인더 패턴의 검출 결과에 따라 상기 이진 영상을 90도 단위로 회전하여 이진 데이터 매트릭스 바코드 영상을 정상 방향으로 위치시키는 영상 회전 단계(S1160);
상기 영상 회전 단계(S1160)에 이어 제어부(160)는 제2 프레임 메모리(150)의이진 바코드 영상의 좌측과 하측에 ‘L’자 모양으로 위치한 좌측 파인더 패턴(103)과 하측 파인더 패턴(104)이의 기울기와 각 패턴의 양 끝좌표를 산출하는 파인더 패턴 기울기 및 좌표 추출 단계(S1170);
상기 파인더 패턴 기울기 및 좌표 추출 단계(S1170)에이어 제어부(160)가 제2 프레임 메모리(150)의 이진 바코드 영상을 심볼 연산부(250)에 제공하여 심볼의좌표를 추출하는 우측 심볼 좌표 추출 단계(S1180);
상기 우측 심볼 좌표 추출 단계(S1180)에이어 제어부(160)는 심볼 연산부(250)를 통해 바코드의중앙 수직 위치에 놓인 심볼들을 모두 포함하는 기울기를 구하는 중앙 수직 심볼 좌표 추출 단계(S1190);를수행하고,
상기 중앙 수직 심볼 좌표 추출 단계(S1190)에이어 제어부(160)는 상기 제2 프레임 메모리(150)의 이진 바코드 영상을 심볼 연산부(250)에 제공하여 바코드영상의 상단 수평방향 심볼의 좌표를 추출하는 상단 수평 심볼 좌표 추출 단계(S1200);
상기 상단 수평 심볼 좌표 추출 단계(S1200)에이어 제어부(160)가 심볼 연산부(250)를 통해 바코드의중앙 수평 위치에 놓인 심볼들을 모두 포함하는 기울기를 구하는 중앙 수평 심볼 좌표 추출 단계(S1210);
상기 중앙 수평 심볼 좌표 추출 단계(S1210)가완료되면 제어부(160)는, 바코드의 오른쪽 수직 방향에놓인 첫번째 심볼의 좌표를 V1, 바코드의 중앙 수직 위치에 놓인 첫번째 심볼의 좌표를 V2, 바코드의 상단 수평 방향에 놓인 첫번째 심볼의 좌표를 H1, 바코드의중앙 수평 위치에 놓인 첫번째 심볼의 좌표를 H2로 하는 바코드 판독 초기화 단계(S1220);를 수행하고,
상기 바코드 판독 초기화 단계(S1220)에이어 제어부(160)는, 제2 프레임 메모리(150)내의 수직 방향 심볼 좌표V1과 V2를 연결하는 직선의 방정식F1(y)를 구하는 수직 방향 심볼간 직선 방정식 작성 단계(S1230);와
상기 수직 방향 심볼간 직선 방정식 작성 단계(S1230)에이어 제어부(160)가 제2 프레임 메모리(150)내의 수평방향 심볼 좌표 H1과 H2를 연결하는 직선의 방정식 F2(y)를 구하는 수평 방향 심볼간직선 방정식 작성 단계(S1240);를 수행하고,
상기 수평 방향 심볼간 직선 방정식 작성 단계(S1240)에이어 제어부(160)는 F1(y)와 F2(y)가 교차하는 제2 프레임 메모리(150)의 좌표를 계산하고 해당 좌표의 픽셀 값을 판독하는 바코드 픽셀 판독 단계(S1250);
상기 바코드 픽셀 판독 단계(S1250)에서판독된 해당 좌표의 픽셀 값이 제어부(160)에 의해 black=’1’, white=’0’로 하여 2D 매트릭스 메모리(260)에 저장되는 2D 매트릭스 메모리 저장 단계(S1260);
상기의 2D 매트릭스 메모리 저장 단계(S1260)에 이어 제어부(160)는 상기의 F1(y)와 F2(y)의 직선 방정식으로써 판독에 사용된 제2 프레임 메모리(150)내의 수평방향 심볼 좌표H1과 H2가 마지막 심볼인지를 판단하는 수평 방향 심볼 종료 체크단계(S1270);
상기 수평 방향 심볼 종료 체크 단계(S1270)에서수평방향 심볼 좌표H1과 H2가 마지막 심볼인 경우, 제어부(160)는 상기의F1(y)와 F2(y)의 직선 방정식으로써 판독에 사용된 제2 프레임 메모리(150)내의 수직방향 심볼 좌표V1과 V2가 마지막 심볼인지를 판단하는 수직 방향 심볼 종료 체크단계(S1310);를 수행하고,
상기의 수직 방향 심볼 종료 체크 단계(S1310)에서수직방향 심볼 좌표 V1과 V2가 마지막 심볼인 것으로 판단되면제2 프레임 메모리(150)내의 바코드 픽셀들이 모두 판독되어 2D 매트릭스 메모리(260)에 저장 완료되었으므로, 제어부(160)는 상기 2D 매트릭스메모리(260)의 ‘1’과 ‘0’으로 구성된 바코드 데이터를 2D매트릭스 판독부(160a)에 제공하여 디코딩을 수행하는 바코드 디코딩 단계(S1320);
를 거쳐 종료(S1330)하는 단계로 구성된 것을 특징으로 하는 스큐된 데이터 매트릭스 바코드를 디코딩하는 장치의 구동 방법A method of driving an apparatus for decoding a skewed data matrix barcode from a camera taking an image, the method comprising:
Start step (S1000) that the two-dimensional bar code extraction is started;
After the start step (S100), the controller 160 transmits a command to the direct memory access (DMA) controller 140 to display image data from the camera 110 stored in the one-frame memory 120. An input image copying step (S1010) to be stored at 150;
A gray level converting step (S1020) of the control unit 160 converting the color image of the second frame memory 150 to the gray level through the gray level converting unit 180 after the input image copying step (S1010);
Following the gray level conversion step (S1020), the control unit 160 reduces and stores the image data of the second frame memory 150 converted to gray levels by the dual linear interpolation unit 190 to the operation frame memory 170. Double linear interpolation step S1030;
An operation frame memory storage step (S1040) of storing the image data of the reduced second frame memory 150 in the operation frame memory 170 by the dual linear interpolation step (S1030);
After the operation frame memory 170 storage step (S1040), the controller 160 calculates an edge value of an image by providing the reduced image data stored in the operation frame memory 170 to the area filter unit 200. Edge extraction step (S1050);
After the edge extraction step (S1050), the controller 160 provides an edge value image data of the reduced gray level image data stored in the operation frame memory 170 to the binary image converter 210 to convert the image into a binarized image. Extraction step (S1060);
After the binarization image extraction step (S1060), the controller 160 provides the edge region binarization image data of the reduced image data stored in the operation frame memory 170 to the connection area extraction unit 220, so that the adjacent ' White 'pixel groups are determined and a label is assigned by assigning a unique number to each group, and a' white 'pixel group composed of the most pixels among the' white 'pixel groups classified by the labeling. Extracting the maximum connection area (S1070);
Following the maximum connection region extraction step (S1070), the controller 160 provides the peripheral gradient extracting unit 230 with image data of the operation frame memory 170 including the candidate region of the extracted 'white' barcode. In the vertical direction of the image data of the operation frame memory 170, the vertical height and the slope (vertical slope: Gradient_Vert) are calculated about the center, and the horizontal length and the slope (horizontal slope: Gradient_Horz) about the center in the horizontal direction. A boundary coordinate gradient extraction step (S1080) of calculating);
Following the step of extracting the boundary coordinate gradient (S1080), the controller 160 has a height of the labeling_height and a length of the labeling_width of the barcode candidate region stored in the first frame memory 120 provided by the connection region extracting unit 220. A horizontal vertical length validity determining step (S1090), in which the ratio is determined to be readable when the ratio is within a predetermined ratio;
If it is determined in the horizontal vertical length validity determination step (S1090) that the reading is possible by the control unit 160, the control unit 160 determines whether the vertical gradient Gradient_Vert calculated by the peripheral gradient extraction unit 230 is a valid value for reading the barcode. Determining a vertical slope valid step (S1091);
If the vertical gradient Gradient_Vert calculated by the peripheral gradient extracting unit 230 is determined to be a valid bar code reading in the vertical gradient valid determination step (S1091), the controller 160 determines the peripheral gradient extracting unit 230. A horizontal gradient validity determining step (S1092) for determining whether the horizontal gradient Gradient_Horz calculated by H) is a valid value;
When the horizontal gradient Gradient_Horz is valid in the horizontal slope valid determination step (S1092), the controller 160 determines whether the vertical gradient Gradient_Vert and the horizontal gradient Gradient_Horz values calculated by the peripheral gradient extractor 230 are close to the vertical. Calculating the angle of the vertical slope (S1100); Lt; / RTI >
Following the angle calculating step of the horizontal vertical tilt (S1100), the control unit 160 determines an angle of the horizontal vertical tilt determining that the product can be read when the product of the vertical gradient Gradient_Vert and the horizontal gradient Gradient_Horz is smaller than 0 (S1110);
When the control unit 160 determines that the barcode candidate region provided by the connection region extracting unit 220 is capable of reading the barcode in the step S1110 of determining the angle of horizontal and vertical tilting, the control unit 160 controls the operation frame memory 170. Performing a bar code region extraction step (S1120) of replacing a pixel value of an area excluding the bar code candidate region with white in the image of the second frame memory 150 corresponding to the bar code candidate region of S1120;
Following the bar code area extraction step (S1120), the control unit 160 includes: an extraction area valid determination step (S1130) for determining that the bar code candidate area of the second frame memory 150 can be read if the size is greater than or equal to a predetermined value;
If it is determined that the size of the barcode candidate region of the second frame memory 150 is readable in the extraction region valid determination step (S1130), the controller 160 corresponds to a gray corresponding to the barcode candidate region of the second frame memory 150. Binary step of extracting the extracted region image to store the binary image corresponding to the barcode candidate region in the second frame memory 150 by supplying the level image to the binary image converter 210 to perform binary image conversion (S1140).
Following the binarization of the extracted region image (S1140), the controller 160 detects the finder pattern by providing the binary image to the finder pattern detection / rotation unit 240 (S1150);
An image rotation step of positioning the binary data matrix barcode image in the normal direction by rotating the binary image in units of 90 degrees according to the finder pattern search step (S1150);
Following the image rotation step (S1160), the control unit 160 has a left finder pattern 103 and a lower finder pattern 104 positioned in an 'L' shape on the left and lower sides of the binary barcode image of the second frame memory 150. A finder pattern slope and coordinate extraction step of calculating a slope thereof and both end coordinates of each pattern (S1170);
Following the finder pattern tilt and coordinate extraction step (S1170), the control unit 160 provides a binary barcode image of the second frame memory 150 to the symbol operation unit 250 to extract the coordinates of the symbol. S1180);
Following the right symbol coordinate extracting step (S1180), the controller 160 extracts a center vertical symbol coordinate extracting step (S1190) of obtaining a slope including all the symbols placed at the center vertical position of the barcode through the symbol calculating unit 250; and,
Following the central vertical symbol coordinate extraction step (S1190), the controller 160 provides the binary barcode image of the second frame memory 150 to the symbol operator 250 to extract the coordinates of the upper horizontal symbol of the barcode image. Extracting upper horizontal symbol coordinates (S1200);
A central horizontal symbol coordinate extraction step (S1210) of which the control unit 160 obtains a slope including all the symbols placed at the central horizontal position of the barcode through the symbol operation unit 250 after the upper horizontal symbol coordinate extraction step (S1200);
When the central horizontal symbol coordinate extraction step (S1210) is completed, the controller 160 determines the coordinate of the first symbol placed in the right vertical direction of the barcode V1, the coordinate of the first symbol placed in the center vertical position of the barcode V2, and the top of the barcode. A barcode reading initialization step (S1220) in which the coordinates of the first symbol placed in the horizontal direction are set to H1 and the coordinates of the first symbol placed at the center horizontal position of the barcode are set to H2;
Following the bar code reading initialization step (S1220), the control unit 160 creates a straight line-to-symbol straight line equation for obtaining a straight line equation F1 (y) connecting the vertical direction coordinates V1 and V2 in the second frame memory 150. Step S1230; and
In the step S1230 of creating a vertical equation between the vertical symbols, the control unit 160 calculates a horizontal symbol symbol for obtaining a linear equation F2 (y) connecting the horizontal symbol coordinates H1 and H2 in the second frame memory 150. Line equation creation step (S1240);
Following the straight line inter-symbol creation step (S1240), the controller 160 calculates coordinates of the second frame memory 150 where F1 (y) and F2 (y) intersect, and reads pixel values of the coordinates. A barcode pixel reading step S1250;
The 2D matrix memory storage step of storing the pixel values of the corresponding coordinates read in the barcode pixel reading step S1250 in the 2D matrix memory 260 with black = '1' and white = '0' by the controller 160. (S1260);
Following the above 2D matrix memory storing step (S1260), the controller 160 controls the horizontal symbol coordinates H1 in the second frame memory 150 used for reading as a linear equation of F1 (y) and F2 (y). A horizontal symbol end check step (S1270) to determine whether H2 is the last symbol;
When the horizontal symbol coordinates H1 and H2 are the last symbols in the horizontal symbol end check step (S1270), the control unit 160 uses the second equation used for reading as the linear equation of F1 (y) and F2 (y). A vertical symbol end check step (S1310) of determining whether the vertical symbol coordinates V1 and V2 in the frame memory 150 are the last symbols;
If it is determined that the vertical symbol coordinates V1 and V2 are the last symbols in the vertical symbol end check step (S1310), all barcode pixels in the second frame memory 150 are read and stored in the 2D matrix memory 260. The control unit 160 provides a bar code decoding step (S1320) of performing decoding by providing barcode data composed of '1' and '0' of the 2D matrix memory 260 to the 2D matrix reading unit 160a;
Method of driving an apparatus for decoding a skewed data matrix bar code, characterized in that configured to terminate through (S1330)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110125249A KR101293703B1 (en) | 2011-11-28 | 2011-11-28 | A system for decoding skewed data matrix barcode, and the method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110125249A KR101293703B1 (en) | 2011-11-28 | 2011-11-28 | A system for decoding skewed data matrix barcode, and the method therefor |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110134362A KR20110134362A (en) | 2011-12-14 |
KR101293703B1 true KR101293703B1 (en) | 2013-08-06 |
Family
ID=45501730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110125249A KR101293703B1 (en) | 2011-11-28 | 2011-11-28 | A system for decoding skewed data matrix barcode, and the method therefor |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101293703B1 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530590A (en) * | 2013-10-19 | 2014-01-22 | 高韬 | DPM (direct part mark) two-dimensional code recognition system |
CN104657700A (en) * | 2015-03-25 | 2015-05-27 | 广州宽度信息技术有限公司 | Two-dimensional code anti-damaging decoding method |
KR20160122033A (en) | 2015-04-13 | 2016-10-21 | 동아대학교 산학협력단 | Method for detecting pattern information area using pixel direction information |
KR20170013123A (en) | 2015-07-27 | 2017-02-06 | 동아대학교 산학협력단 | Method for detecting pattern information using image data |
KR20190007380A (en) * | 2017-07-12 | 2019-01-22 | 식아게 | Optoelectronic code reader and method for reading optical codes |
KR20200136239A (en) * | 2019-05-27 | 2020-12-07 | 라온피플 주식회사 | Method and apparatus for recognizing image code using machine learning |
US20220383015A1 (en) * | 2021-05-28 | 2022-12-01 | Pixart Imaging Inc. | Barcode detection device with rotation angle detection |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014116222A1 (en) * | 2013-01-25 | 2014-07-31 | Hewlett-Packard Development Company, L.P. | Modifying data-bearing images |
CN104848858B (en) * | 2015-06-01 | 2018-07-20 | 北京极智嘉科技有限公司 | Quick Response Code and be used for robotic vision-inertia combined navigation system and method |
CN108182466B (en) * | 2018-01-29 | 2020-11-06 | 王鹏 | Circular two-dimensional identification code and scanning identification method thereof |
KR102638707B1 (en) * | 2018-10-31 | 2024-02-21 | 삼성전자주식회사 | Method and Electronic device for reading a barcode |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100275007B1 (en) | 1992-05-29 | 2000-12-15 | 시모야마 도시로 | Barcode reader |
KR100829108B1 (en) | 2006-06-27 | 2008-05-16 | (주)코아정보시스템 | Apparatus and method for reading 2 dimensional barcode with a pattern gradient calculation function |
KR20110002833A (en) * | 2008-01-29 | 2011-01-10 | 베리텍 인코포레이티드 | Two-dimensional symbol and method for reading same |
KR20110105369A (en) * | 2011-09-08 | 2011-09-26 | (주)이컴앤드시스템 | A 2d barcode image extracting/decoding device, and the method therefor |
-
2011
- 2011-11-28 KR KR1020110125249A patent/KR101293703B1/en not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100275007B1 (en) | 1992-05-29 | 2000-12-15 | 시모야마 도시로 | Barcode reader |
KR100829108B1 (en) | 2006-06-27 | 2008-05-16 | (주)코아정보시스템 | Apparatus and method for reading 2 dimensional barcode with a pattern gradient calculation function |
KR20110002833A (en) * | 2008-01-29 | 2011-01-10 | 베리텍 인코포레이티드 | Two-dimensional symbol and method for reading same |
KR20110105369A (en) * | 2011-09-08 | 2011-09-26 | (주)이컴앤드시스템 | A 2d barcode image extracting/decoding device, and the method therefor |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530590B (en) * | 2013-10-19 | 2016-02-24 | 高韬 | DPM Quick Response Code recognition system |
CN103530590A (en) * | 2013-10-19 | 2014-01-22 | 高韬 | DPM (direct part mark) two-dimensional code recognition system |
CN104657700B (en) * | 2015-03-25 | 2017-07-25 | 广州宽度信息技术有限公司 | A kind of Quick Response Code resistant to damage coding/decoding method |
CN104657700A (en) * | 2015-03-25 | 2015-05-27 | 广州宽度信息技术有限公司 | Two-dimensional code anti-damaging decoding method |
KR20160122033A (en) | 2015-04-13 | 2016-10-21 | 동아대학교 산학협력단 | Method for detecting pattern information area using pixel direction information |
KR101689705B1 (en) | 2015-04-13 | 2016-12-26 | 동아대학교 산학협력단 | Method for detecting pattern information area using pixel direction information |
KR20170013123A (en) | 2015-07-27 | 2017-02-06 | 동아대학교 산학협력단 | Method for detecting pattern information using image data |
KR20190007380A (en) * | 2017-07-12 | 2019-01-22 | 식아게 | Optoelectronic code reader and method for reading optical codes |
KR102010494B1 (en) * | 2017-07-12 | 2019-08-13 | 식아게 | Optoelectronic code reader and method for reading optical codes |
US11176454B2 (en) | 2017-07-12 | 2021-11-16 | Sick Ag | Optoelectronic code reader and method for reading optical codes |
KR20200136239A (en) * | 2019-05-27 | 2020-12-07 | 라온피플 주식회사 | Method and apparatus for recognizing image code using machine learning |
KR102275585B1 (en) * | 2019-05-27 | 2021-07-09 | 라온피플 주식회사 | Method and apparatus for recognizing image code using machine learning |
US20220383015A1 (en) * | 2021-05-28 | 2022-12-01 | Pixart Imaging Inc. | Barcode detection device with rotation angle detection |
US11544489B2 (en) * | 2021-05-28 | 2023-01-03 | Pixart Imaging Inc. | Barcode detection device with rotation angle detection |
US11829836B2 (en) | 2021-05-28 | 2023-11-28 | Pixart Imaging Inc. | Barcode detection device with width calibration |
Also Published As
Publication number | Publication date |
---|---|
KR20110134362A (en) | 2011-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101293703B1 (en) | A system for decoding skewed data matrix barcode, and the method therefor | |
US9892300B2 (en) | Two-dimensional code | |
US10331929B2 (en) | Imaging terminal, imaging sensor to determine document orientation based on bar code orientation and methods for operating the same | |
EP2921998B1 (en) | Two-dimensional code, system for creation of two-dimensional code, and analysis program | |
US9898637B2 (en) | Two-dimensional code | |
KR101237339B1 (en) | A 2D barcode image extracting/decoding device, and the method therefor | |
BRPI1100823B1 (en) | AUTOMATIC SYSTEM AND METHOD FOR TRACKING AND DECODING BARCODE USING PORTABLE DEVICES EQUIPPED WITH DIGITAL CAMERAS | |
KR20110002833A (en) | Two-dimensional symbol and method for reading same | |
WO2014044159A1 (en) | Method and device for batch scanning 2d barcodes | |
US20170039463A1 (en) | Two-dimensional code, two-dimensional-code analysis system, and two-dimensional-code generation system | |
JP2005173646A (en) | Code-kind discrimination method and code border detecting method | |
US10936837B1 (en) | 2D barcode overlays | |
JP2021119465A (en) | Enhanced matrix symbol error correction method | |
CN109101855B (en) | Lost positioning frame two-dimensional code identification method based on opencv | |
KR20240134232A (en) | Methods and devices for finding and decoding multiple barcodes arranged within an image | |
JP2017016635A (en) | High capacity 2d color barcode design and processing method for camera based applications | |
JP4335229B2 (en) | QR code recognition device, QR code recognition device control method, QR code recognition device control program, and computer-readable recording medium recording the same | |
EP1959374A1 (en) | Multi-dimensional bar code, apparatus and method for reading the same and method for generating the same | |
KR101198595B1 (en) | An extracting/decoding device for 2D barcode image of arbitrary contrast | |
JPH0338791A (en) | Symbol for confirmation and confirmation device thereof | |
JP5967000B2 (en) | Information code reading system, information code reading device, information code | |
JP4314148B2 (en) | Two-dimensional code reader | |
WO2004095357A1 (en) | A synchronous two-dimensional barcode system with all-around informaton, and reading method thereof | |
JP2008102952A (en) | Code boundary detection method | |
JP4383961B2 (en) | Digital information record carrier |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |