VB.NET2009.02.07 21:03
이미지의 바코드를 읽어 보자!

이 article은 http://www.codeproject.com/KB/recipes/bcreader2of5.aspx 의 내용이며
해석 및 수정하였음을 밝힙니다.

관련 소스 :

[소개]
이 글은 바코드를 표현 할 수 있는 5가지 방법을 각각 두자리 숫자로 인식 할수 있는

알고리즘이다. 즉, 두자리 수를 가지는 다섯가지의 바코드 표현 방법을 인식 한다.

현재 실세계에서 쓰이는 바코드 표현법이다.


[배경]
만약 당신이 바코드를 읽어서 처리 해야하는 프로그램을 개발 한다면, 시중에 나와있는

비싼, ocx를 사용해야 할 것이다. 실제론 주민번호 검사 처럼 간단한데 말이다.

단, 이 방법은 이미지를 읽는 것으로, 스캐너와 연동되지 못한다는 점을 알려드린다.

해결법은, 공개된 무료 스캐너 ocx와 이미지 인코더로 순간적으로 스캔된 내용을 이미지로

변환 한 후, 이 클래스를 이용하여, 바코드를 해석하면 될것이다.

무료 스캐너 ocx, bitmap encoder 는 구글에서 단 10분의 노력만에 찾을수 있을것이다.

[코드 소개]


메인 클래스는 상업용 바코드를 읽을수 있는 gmseNWScanner 이다.


인자로는 추상 클래스로 정의된 gmseNWBarcodeDef 이고, gmseBarcodeDef2of5interleaved 클래스는


gmseNWBarcodeDef 가 구현(implements)된 것이다.


결과값은 gmseNWResult와 gmseNWResultCollection 클래스 값으로 리턴된다.




[구현내용]

두가지 너비를 가지는 바코드는 narrow bar(n) 과 wide bar(w) 로 표현되는데,


이미지에서 추출한 막대를 하나씩 잘라서 비교 할때 구분 하는 방법이다.


또, 비교 하는 방법은 지금까지 나온 검색 알고리즘의 최고봉인 해쉬테이블을 이용하여 비교한다.


만약 이 방법으로 구현하였지만, 제대로 해석 하지 못할 경우는 이미지 품질이 떨어져서


생기는 이유이니, 이미지를 스캔할때, 보간법으로 완전한 하나의 막대로 표현 하길 바란다.











Posted by dotnetpower

댓글을 달아 주세요