이미지에서 코드의 영역을 검출한 후에 는 코드 영역의 비트 값을 읽어 들여서 디코딩하는 과정을 거쳐야 최종적으로 QR-code가 담고 있는 정보를 읽을 수 있다. 검출된 코드 영역은 역 perspective 변환을 거치면 정사각형의 코드 영역으로 변환된다. 그러나 이 과정은 실제 프로그램 설계에서는 불필요한 과정이다. 이미 주어진 perspective 변환을 이용하면, 이진화된 원래의 이미지에서 바로 코드를 재구성할 수 있다. 아래의 그림은 이 과정을 빠르게 수행하기 위해서 코드 영역을 블록 단위로 구분하는 마스크 이미지를 만든 것을 보여준다.
마스크 이미지: 컬러는 각 블록의 라벨링을 표현하기 위해서 사용했다.
이 마스크를 이용하면 각 블럭의 비트 값을 majority test에 의해서 쉽게 결정할 수 있다.
재구성된 코드블럭:
이제 나머지는 QR-code의 스펙을 참고하면 (Reed-Solomon error-correction code는 영상처리 관점에서 약간 벗어나므로 취급하지 않음) 인코딩 된 정보를 얻을 수 있다:
예제 코드의 정보는
728x90
'Image Recognition' 카테고리의 다른 글
Integral Image을 이용한 Adaptive Threshold (0) | 2012.02.04 |
---|---|
Peak Finder (1) | 2012.02.02 |
QR-code: detector (0) | 2012.01.12 |
Adaboost (0) | 2010.12.28 |
Blur Detection (0) | 2010.05.25 |