Abstract
In this paper, we propose an effective bar code detection algorithm using the feature analysis and the labeling. After computing the direction of pixels using four line operators, we obtain the histogram about the direction of pixels by a block unit. We calculate the difference between the maximum value and the minimum value of the histogram and consider the block that have the largest difference value as the block of the bar code region. We get the line passing by the bar code region with the selected block but detect blocks of interest to get the more accurate line. The largest difference value is used to decide the threshold value to obtain the binary image. After obtaining a binary image, we do the labeling about the binary image. Therefore, we find blocks of interest in the bar code region. We calculate the gradient and the center of the bar code with blocks of interest, and then get the line passing by the bar code and detect the bar code. As we obtain the gray level of the line passing by the bar code, we grasp the information of the bar code.
바코드의 기하학적 특징과 레이블링을 이용하여 효율적으로 추출하는 알고리즘을 제안하였다. 네 개의 라인 연산자(line operator)[8]를 이용하여 화소가 가지는 방향을 구한 후, 블록 별로 각 방향에 대한 화소의 누적 히스토그램(histogram)을 구한다. 히스토그램에서 최대값과 최소값의 차가 가장 큰 블록을 바코드 영역의 블록이라고 결정한다. 구해진 블록만을 이용하여 바코드의 중심을 지나가는 직선을 구할 수도 있지만 좀더 정확한 직선을 구하기 위해 바코드 영역에 있는 많은 블록들을 찾는다. 가장 큰 차 값을 이용하여 문턱값을 구하고 블록별로 히스토그램의 최대값과 최소값의 차가 문턱값보다 큰 블록을 바코드의 기하학적(a) 특징을 갖는 블록으로 분류함으로써 블록을 대상으로 영상을 이진화한다. 이진화 한 영상에 대해 레이블링(labeling)[8,9]을 행하여 바코드 영역의 후보 블록들을 결정한다. 후보 블록들의 화소를 이용하여 바코드의 기울기와 중심점을 바코드의 중심점을 구하여 바코드와 수직이고 바코드의 중심을 지나가는 직선을 그을 수 있으며 바코드를 검출 할 수 있다. 수직선이 지나갈 때 화소값을 순차적으로 획득함으로써 바코드가 가지고 있는 정보를 파악한다.