KR101169872B1 - 형태학적 연산들에 기초한 바코드 검출 - Google Patents

형태학적 연산들에 기초한 바코드 검출 Download PDF

Info

Publication number
KR101169872B1
KR101169872B1 KR1020107021320A KR20107021320A KR101169872B1 KR 101169872 B1 KR101169872 B1 KR 101169872B1 KR 1020107021320 A KR1020107021320 A KR 1020107021320A KR 20107021320 A KR20107021320 A KR 20107021320A KR 101169872 B1 KR101169872 B1 KR 101169872B1
Authority
KR
South Korea
Prior art keywords
barcode
image
identified
location
low intensity
Prior art date
Application number
KR1020107021320A
Other languages
English (en)
Other versions
KR20100123739A (ko
Inventor
시앙-선 리
징퀴앙 리
하우 황
시아오윤 지앙
죠셉 헤웅
Original Assignee
콸콤 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 콸콤 인코포레이티드 filed Critical 콸콤 인코포레이티드
Publication of KR20100123739A publication Critical patent/KR20100123739A/ko
Application granted granted Critical
Publication of KR101169872B1 publication Critical patent/KR101169872B1/ko

Links

Images

Classifications

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

Abstract

본 발명은 이미지 내에 바코드를 검출하기 위한 기술들을 개시한다. 이미지 프로세서는 예를 들어, 바코드들일 수 있는 이미지 내의 위치들을 검출하기 위하여 이미지를 프로세싱할 수 있다. 이미지 프로세서는 동시에 낮은 광학 강도를 갖는 픽셀들의 고농도 및 에지들의 고농도를 나타내는 이미지의 영역들을 잠재적 바코드들로서 식별할 수 있다. 이미지 프로세서는 다수의 형태학적 연산들을 사용하여 영역들을 식별할 수 있다. 이미지 프로세서는 그 후, 영역이 고유 바코드 피쳐들을 갖는지 여부를 확인함으로써 식별된 영역들이 실제로 바코드들인지 여부를 결정할 수 있다. 본 명세서에 개시되는 바코드 검출 기술들은 이미지 내에 바코드 크기, 위치, 및 배향과 독립적일 수 있다. 또한, 형태학적 연산들의 사용은 낮은 계산적 복잡성 뿐 아니라 보다 빠르고 계산적으로 효율적인 바코드 검출을 초래한다.

Description

형태학적 연산들에 기초한 바코드 검출{BARCODE DETECTION BASED ON MORPHOLOGICAL OPERATIONS}
본 명세서는 이미지 프로세싱과 관련되며, 특히, 이미지들 내에 바코드들을 검출하기 위한 기술들과 관련된다.
본 특허 출원은 본 발명의 양수인에게 양도되고 본 출원과 동시에 출원된, 어토니 도켓 No. 071438를 갖는, Chinchuan Andrew Chiu에 의한 "IMAGE CAPTURE DEVICE WITH INTEGRATED BARCODE SCANNING"라는 제목의 공동 계류중인 미국 특허 출원과 관련되며, 그 모든 내용은 본 명세서에 참조로서 통합된다.
바코드는 하나 이상의 패턴들의 형태의 정보의 기계-판독가능한 표현이다. 종래의 1-차원적 바코드들은 다양한 폭들 및 간격(spacing)들의 일련의 평행하고 인접한 바(bar)들의 형태로 정보를 나타낸다. 그러나, 바코드들은 점들의 패턴들, 동심원들 등과 같은 다수의 다른 패턴들로 정보를 나타내기 위하여 확장되었다. 이러한 다른 패턴들은 1차원적(1D) 또는 2차원적(2D) 패턴들로 정렬되는 형태들을 포함할 수 있다.
바코드들은 아이템들을 식별하고, 추적하고, 재고 조사를 하고, 가격을 매기는데 사용될 수 있다. 통상적으로, 바코드들은 데이터베이스 또는 다른 추적 시스템을 사용하여 아이템의 타임에 식별 번호를 연관시키는데 사용된다. 그러나, 바코드들은 그것이 부착되는 아이템과 또는 다른 관련된 아이템과 연관되는 광범위한 정보를 인코딩하기 위하여 최근에 사용되기 시작하였다. 따라서, 바코드들은 전통적인 사용들과 관련되지 않은 목적으로 정보를 통신하는 방식으로서 부각되었다. 그 결과, 단지 소매업자들뿐이 아닌 소비자들이 바코드들이 정보를 전달할 수 있는 효율성을 수용하기 시작하였다.
본 명세서는 이미지 내에 바코드를 검출하기 위한 기술들을 개시한다. 바코드들은 그들을 특히 검출가능하게 하는 특정한 구별되는 특징들을 갖는다. 바코드들은 다크(예를 들어, 블랙) 그리고 라이트(예를 들어, 화이트) 바(bar)들, 원들, 점들, 또는 다른 형태들의 패턴들로서 형성될 수 있다. 바코드 패턴들은 바들, 원들, 점들, 또는 다른 형태의 패턴들의 간격에 의하여 생성되는 다수의 에지들을 포함한다. 바코드 패턴들은 바들, 원들, 점들, 또는 다른 형태의 패턴들의 블랙 컬러(또는 다른 다크 컬러)로 인하여 낮은 광학 강도의 다수의 영역들을 더 포함한다. 바코드들이 다수의 에지들 및 저 강도 픽셀 값들을 포함할 뿐 아니라, 에지들 및 저 강도 영역들은 동시적인데, 즉, 동시에 존재한다.
바코드 검출 모듈은 이미지 내에 강도의 높은 명암 천이들을 나타내는 하나 이상의 에지들을 식별하기 위하여 디지털 이미지를 프로세싱한다. 바코드 검출 모듈은 낮은 광학 강도의 디지털 이미지의 영역들을 식별하기 위하여 디지털 이미지를 프로세싱한다. 바코드 검출 모듈은 그 후, 바코드일 수 있는 후보들로서 식별된 에지들의 높은 농도 및 낮은 광학 강도를 갖는 식별된 영역들의 높은 농도 모두를 나타내는 디지털 이미지 내의 위치들을 식별한다. 몇몇 양상들에서, 바코드 검출 모듈은 하나 이상의 형태학적 연산들을 사용하여 이러한 위치들을 식별할 수 있다. 바코드 검출 모듈은 그 후 후보 위치들이 특정 바코드 기호학의 바코드 파인더(finder) 패턴과 같은 고유한 바코드 특징들을 갖는지를 확인함으로써 후보 위치들이 실제로 바코드들인지 여부를 결정할 수 있다.
일 양상에서, 방법은 관심 장면(scene of interest)의 디지털 이미지 내에 에지들로서 강도 전환 임계치를 초과하는 강도의 전환들을 식별하는 단계, 저 강도 영역들로서 강도 임계치 미만의 휘도 강도를 갖는 디지털 이미지의 영역들을 식별하는 단계, 및 식별된 에지들 및 식별된 저 강도 영역들에 기초하여 디지털 이미지 내에 바코드를 검출하는 단계를 포함한다.
다른 양상에서, 디바이스는 관심 장면의 디지털 이미지 내에 에지들로서 강도 전환 임계치를 초과하는 강도의 전환들을 식별하고, 저 강도 영역들로서 강도 임계치 미만의 휘도 강도를 갖는 디지털 이미지의 영역들을 식별하며, 식별된 에지들 및 식별된 저 강도 영역들에 기초하여 디지털 이미지 내에 바코드를 검출하는 바코드 검출 모듈을 포함하는 프로세서를 포함한다.
다른 양상에서, 컴퓨터-판독가능 매체는, 프로세서로 하여금, 관심 장면의 디지털 이미지 내에 에지들로서 강도 전환 임계치를 초과하는 강도의 전환들을 식별하고, 저 강도 영역들로서 강도 임계치 미만의 휘도 강도를 갖는 디지털 이미지의 영역들을 식별하며, 그리고 식별된 에지들 및 식별된 저 강도 영역들에 기초하여 디지털 이미지 내에 바코드를 검출하게 하기 위한 명령들을 포함한다.
다른 양상에서, 디바이스는 관심 장면의 디지털 이미지 내에 에지들로서 강도 전환 임계치를 초과하는 강도의 전환들을 식별하기 위한 수단, 저 강도 영역들로서 강도 임계치 미만의 휘도 강도를 갖는 디지털 이미지의 영역들을 식별하기 위한 수단, 및 식별된 에지들 및 식별된 저 강도 영역들에 기초하여 디지털 이미지 내에 바코드를 검출하기 위한 수단을 포함한다.
본 명세서에 개시되는 기술들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현된다면, 소프트웨어는 마이크로프로세서, 애플리케이션 특정 집적 회로(ASIC), 필드 프로그래밍가능 게이트 어레이(FPGA), 또는 디지털 신호 프로세서(DSP), 또는 다른 동등한 집적 또는 이산 로직 회로와 같은 하나 이상의 프로세서들로 지칭될 수 있는 프로세서에 의해 실행될 수 있다. 기술들을 실행하기 위한 명령들을 포함하는 소프트웨어는 처음에 컴퓨터-판독가능 매체에 저장되고, 프로세서에 의하여 로딩되어 실행될 수 있다. 따라서, 본 명세서는 또한 프로세서로 하여금 본 명세서에 개시되는 바와 같은 다양한 기술들 중 임의의 것을 수행하게 하기 위한 명령들을 포함하는 컴퓨터-판독가능 매체를 고려한다. 몇몇 경우에, 컴퓨터-판독가능 매체는 제작자들에게 판매되고/판매되거나 디바이스에서 사용될 수 있는 컴퓨터 프로그램 물건의 일부를 형성할 수 있다. 컴퓨터 프로그램 물건은 컴퓨터-판독가능 매체를 포함할 수 있으며, 몇몇 경우에, 패키징 물질들을 더 포함할 수 있다.
하나 이상의 실시예들의 세부사항들이 첨부 도면들 및 하기의 설명에서 진술된다. 다른 특징들, 목적들 및 이점들은 설명과 도면들, 및 청구범위로부터 명백해질 것이다.
도 1은 본 명세서에 개시되는 바코드 스캐닝 기술들을 구현하는 예시적인 이미지 캡쳐 디바이스의 블록도이다.
도 2는 본 명세서에 개시되는 바코드 스캐닝 기술들을 구현하는 이미지 캡쳐 디바이스를 포함하는 예시적인 무선 통신 디바이스를 예증하는 블록도이다.
도 3은 도 1 및 2의 이미지 캡쳐 디바이스를 더욱 상세하게 예증하는 블록도이다.
도 4는 본 명세서에 개시되는 바코드 스캐닝 기술들을 수행하는 이미지 캡쳐 디바이스의 예시적인 동작을 예증하는 흐름도이다.
도 5는 관심 장면 내의 바코드를 검출하는 바코드 검출 모듈의 예시적인 동작을 예증하는 흐름도이다.
도 6a-6d는 본 명세서에 개시되는 바코드 스캐닝 기술들에 따라 이미지를 제시하는데 있어 예시적인 뷰파인더(viewfinder)의 실례들이다.
도 7a-7g는 본 명세서에 개시되는 바코드 검출 기술들의 다양한 스테이지들 동안에 이미지의 실례들이다.
도 1은 본 명세서에 개시되는 바코드 검출 기술들을 구현하는 예시적인 이미지 캡쳐 디바이스(10)의 블록도이다. 이미지 캡쳐 디바이스(2)는 디지털 스틸 이미지 카메라, 디지털 비디오 카메라, 또는 이들의 조합물과 같은 디지털 카메라일 수 있다. 또한, 이미지 캡쳐 디바이스(2)는 독립형 카메라와 같은 독립형 디바이스이거나, 또는 무선 통신 디바이스와 같은 다른 디바이스에 통합될 수 있다. 일 실시예로서, 이미지 캡쳐 디바이스(2)는 소위 카메라 폰 또는 비디오 폰을 형성하기 위하여 이동 무선 전화에 통합될 수 있다. 본 명세서에 개시되는 기술들은 일반적으로 캡쳐된 디지털 비디오에 적용가능할 수 있으나, 그러한 기술들의 디지털 스틸 이미지로의 적용이 예증을 목적으로 설명될 것이다.
도 1에 도시되는 바와 같이, 이미지 캡쳐 디바이스(10)는 이미지 센서(12), 이미지 프로세서(14) 및 이미지 스토리지 모듈(16)을 포함한다. 이미지 센서(12)는 스틸 이미지들을 캡쳐하거나, 가능하다면 완전한 운동 비디오 시퀀스들을 캡쳐하고, 이러한 경우에 바코드 검출 기술들은 비디오 시퀀스의 하나 이상의 이미지 프레임들상에 수행될 수 있다. 이미지 센서(12)는 개별적인 이미지 센서 엘리먼트들의 2-디멘션 어레이를 포함할 수 있는데, 예를 들어, 열들 또는 행들로 정렬될 수 있다. 몇몇 양상들에서, 이미지 센서(12)의 각각의 이미지 센서 엘리먼트들은 단일 픽셀과 연관될 수 있다. 다시 말해, 이미지 센서 엘리먼트들과 픽셀들 사이에 일-대-일 대응이 존재할 수 있다. 대안적으로, 각각의 픽셀과 연관되는 둘 이상의 이미지 센서 엘리먼트 또는 각각의 이미지 센서 엘리먼트와 연관되는 둘 이상의 픽셀이 존재할 수 있다. 이미지 센서(12)는 예를 들어, 상보적 금속 산화물 반도체(CMOS: complimentary metal-oxide semiconductor) 센서들, 전하 결합 디바이스(CCD: charge coupled device) 센서들 등과 같은 고체 상태 센서들의 어레이를 포함할 수 있다. 또한, 이미지 센서(12)는 이미지 획득 동안에 그것이 이미지 정보를 저장하는 하나 이상의 이미지 버퍼들을 유지시킬 수 있다.
이미지를 캡쳐하기 위하여, 이미지 센서(12)는 이미지를 캡쳐하기 위하여 이미지 장면(scene)에 이미지 센서 엘리먼트들을 노출시킨다. 이미지 센서(12) 내에 이미지 센서 엘리먼트들은 예를 들어, 특정 픽셀 위치에서 장면의 광의 강도를 나타내는 강도 값들을 캡쳐할 수 있다. 몇몇 경우들에 있어, 센서(12)의 각각의 이미지 센서 엘리먼트들은 상기 엘리먼트를 커버하는 컬러 필터들로 인하여 단지 하나의 컬러, 또는 컬러 밴드에 민감할 수 있다. 예를 들어, 이미지 센서(12)는 레드, 그린, 및 블루(RGB) 필터들의 어레이를 포함할 수 있다. 그러나 이미지 센서(12)는 시안, 마젠타, 옐로우, 블랙(CMYK) 컬러 필터들과 같은 다른 컬러 필터들을 이용할 수 있다. 따라서, 이미지 센서(12)의 이미지 센서 엘리먼트들 각각은 단 하나의 컬러에 대한 강도 값들을 캡쳐할 수 있다. 따라서, 이미지 정보는 이미지 센서(12)의 센서 엘리먼트들에 의하여 캡쳐되는 픽셀 강도 및/또는 컬러 값들을 포함할 수 있다.
이미지 캡쳐 디바이스(10)는 디폴트 또는 정상 모드(때때로 또한 "자동" 모드로서 지칭되는), 고 운동 모드(때때로 또한 "작동" 모드로서 지칭되는), 저 운동 모드(때때로 또한 "씨닉(scenic)" 모드로서 지칭되는), 인간 대상(human subject) 또는 얼굴 모드, 다크(dark) 모드, 브라이트(bright) 모드 뿐 아니라, 이미지 캡쳐 디바이스 내에 공통적으로 구현되는 임의의 다른 모드와 같은 다수의 이미지 캡쳐 모드들에서 작동할 수 있다. 몇몇 예시들에서, 각각의 이러한 다양한 이미지 캡쳐 모드는 이미지 프로세서(14)의 센서 구성 모듈(19)이 이미지 센서(12)에 의하여 캡쳐되는 이미지의 품질에 영향을 미치는 다양한 이미지 캡쳐 특성들을 구성하는데 사용하는 값들의 세트와 연관된다. 예를 들어, 작동 모드의 이미지 캡쳐 특성들은 빠른 움직임에 의하여 특징화되는 장면들을 효율적으로 캡쳐하기 위하여 상대적으로 짧은 노출 시간을 포함할 수 있는 반면, 씨닉 모드와 연관되는 이미지 캡쳐 특성들은 상대적으로 긴 노출 시간을 포함할 수 있다. 다른 예시들에서, 디폴트(또한 정상 또는 자동으로서 공지되는) 모드와 같은 이러한 모드들 중 하나 이상은 센서 구성 모듈(19)이 이미지 센서(12)로부터 수신되는 광의 강도의 측정치와 같은 이미지 장면 내의 특정 시각적 환경에 기초하여 다양한 이미지 캡쳐 특성들을 구성하도록 야기할 수 있다. 예를 들어, 센서 구성 모듈(19)은 이미지 프리뷰 동안에 수신되는 광의 강도에 기초하여 노출 시간, 초점, 또는 센서 이득을 구성할 수 있다. 또 다른 예시들에서, 다양한 이미지 캡쳐 모드들은 이미지 프로세서(14)가 이미지 센서(12)에 의하여 캡쳐되는 결과 이미지를 향상시키기 위하여 하나 이상의 이미지 프로세싱 알고리즘들을 수행하게 할 수 있다. 또 다른 예시에서, 이미지 캡쳐 디바이스(10)는 가장 높은 품질의 이미지를 캡쳐하려는 시도에서 상기 개시되는 기술들 중 둘 이상을 통합하는 하나 이상의 모드들을 지원할 수 있다.
이미지 프로세서(14)는 예를 들어, 이미지 센서(12)의 버퍼로부터 디지털 이미지(또는 프레임)에 대한 이미지 신호를 수신하고, 본 명세서에 개시되는 바코드 검출 기술들을 수행한다. 특히, 이미지 프로세서(14)의 바코드 스캐너 모듈(18)은 관심 장면의 디지털 이미지가 하나 이상의 바코드들을 포함하는지를 결정한다. 바코드는 하나 이상의 패턴들의 형태의 정보의 기계-판독가능 표현이다. 종래의 1차원적 바코드들은 일련의 다양한 폭들, 간격들, 및 길이들의 평행한 인접한 바들의 형태로 정보를 나타낸다. 그러나, 바코드들은 점들의 패턴들, 동심원들, 등과 같은 다수의 다른 패턴들로 정보를 나타내기 위하여 확장되었다. 이러한 다른 패턴들은 1차원적(1D) 또는 2차원적(2D) 패턴들로 정렬되는 형태들을 포함할 수 있다. 1D 및 2D 바코드들의 몇몇 실시예들은 UPC(Universal Product Code)들, 코드 39 바코드들, 코드 128 바코드들, PDF417 바코드들, EZ코드 바코드들, 데이터매트릭스 바코드들, QR 코드 바코드들, 또는 임의의 다른 형태의 기호학을 이용하는 바코드들을 포함한다.
몇몇 예시들에서, 바코드 스캐너 모듈(18)은 비-바코드 이미지 캡쳐 모드에서 작동하면서 바코드를 검출할 수 있다. 다시 말해, 바코드 스캐너 모듈(18)은 상기 개시되는 상이한 이미지 캡쳐 모드들, 예를 들어, 디폴트 이미지 캡쳐 모드, 얼굴 모드, 다크 모드, 라이트 모드, 또는 바코드들의 이미지들을 캡쳐하도록 특별히 설계되지 않는 임의의 다른 이미지 캡쳐 모드 중 임의의 것에서 작동하면서 바코드를 검출할 수 있다. 다른 예시들에서, 바코드 스캐너 모듈(18)은 바코드들의 이미지들을 캡쳐하도록 특별히 설계되는 바코드 이미지 캡쳐 모드에서 작동하면서 바코드를 검출할 수 있다.
바코드 스캐너 모듈(18)은 본 명세서에 개시되는 기술들에 따라 이미지 내에 바코드를 검출한다. 바코드들은 그들을 특히 검출 가능하게 하는 특정한 다른 것과 구별되는 특징들을 갖는다. 상기 개시되는 바와 같이, 바코드들은 바들, 원들, 점들, 또는 다른 형태들의 패턴들로서 형성된다. 바코드 패턴들은 바들, 원들, 점들, 또는 다른 형태의 패턴들의 간격에 의하여 생성되는 다수의 에지들을 포함한다. 바코드 패턴들은 바들, 원들, 점들, 또는 다른 형태의 패턴들의 블랙 컬러(또는 다른 다크 컬러)로 인하여 다수의 낮은 광학 강도 영역들을 더 포함한다. 바코드들은 다수의 에지들 및 저 강도 픽셀 값들을 포함할 뿐 아니라, 에지들 및 저 강도 영역들은 동시적인데, 즉, 동시에 존재한다. 하기에 보다 상세히 설명되는 바와 같이, 바코드 스캐너 모듈(18)은 바코드일 수 있는 후보 위치들로서 동시적으로 저 강도 값들의 높은 농도 및 에지들의 높은 농도를 보이는 디지털 이미지 내의 위치들을 식별할 수 있다. 바코드 스캐너 모듈(18)은 그 후 후보 위치들이 특정 바코드 기호학의 바코드 파인더 패턴과 같은 고유한 바코드 피쳐(feature)들을 갖는지를 확인함으로써, 후보 위치들이 실제로 바코드들인지 여부를 결정할 수 있다.
관심 장면 내의 바코드를 검출시, 센서 구성 모듈(19)은 이미지 센서(12)와 연관되는 하나 이상의 이미지 캡쳐 특성들을 구성할 수 있다. 센서 구성 모듈(19)은 예를 들어, 이미지 센서(12)와 연관되는 포커스 제어 및 노출 시간 중 하나 이상을 구성할 수 있다. 이미지 센서(12)는 구성된 이미지 캡쳐 특성들에 따라 바코드를 포함하는 관심 장면의 이미지를 캡쳐한다. 이러한 방식으로, 이미지 캡쳐 디바이스(10)는 이미지 캡쳐 디바이스(10)의 디폴트 연산 내에 바코드 스캐닝 기능을 포함시킬 수 있다.
바코드 스캐너 모듈(18)은 적어도 이미지의 바코드 부분의 품질을 추가로 개선하기 위하여 바코드를 포함하는 캡쳐된 이미지의 영역 또는 캡쳐된 이미지의 부가적 프로세싱을 수행할 수 있다. 바코드 스캐너 모듈(18)은 예를 들어, 바코드의 명암을 개선하기 위하여 바코드를 포함하는 이미지의 영역 또는 이미지를 프로세싱하고, 바코드의 이미지를 샤프닝(sharpen)하고, 이미지로부터 노이즈를 필터링하고, 이미지의 회전(rotation)을 교정하거나, 바코드 이미지의 디콘볼루션(deconvolution)을 수행할 수 있다. 몇몇 예시들에서, 이러한 부가적 프로세싱 기술들은 관심 장면 내의 바코드의 검출에 기초하여 수행될 수 있다.
이미지 프로세서(14)는 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서(DSP: digital signal processor)들, 애플리케이션 특정 집적 회로(ASIC: application specific integrated circuit)들, 필드 프로그래밍가능 게이트 어레이(FPGA: field programmable gate array)들, 또는 임의의 다른 동등한 이산 또는 집적 로직 회로, 또는 이들의 조합물과 같은 하나 이상의 집적 회로 디바이스들에 의하여 실현될 수 있다. 몇몇 예시들에서, 이미지 프로세서(14)는 MPEG(Motion Pictures Expert Group)-2, MPEG-4, ITU(International Telecommunication Union) H.263, ITU H.264, JPEG(Joint Photographic Experts Group), GIF(Graphics Interchange Format), TIFF(Tagged Image File Format) 등과 같은 특정 인코딩 기술 또는 포맷에 따라 이미지 정보를 인코딩하는 인코더-디코더(CODEC)의 일부를 형성할 수 있다. 이미지 프로세서(14)는 이미지 크롭핑(cropping), 압축, 개선(enhancement) 등과 같은 이미지 정보상의 부가적 프로세싱을 수행할 수 있다.
이미지 프로세서(14)는 이미지 스토리지 모듈(16)에 적어도 바코드를 포함하는 캡쳐된 이미지의 영역 또는 캡쳐된 이미지를 저장할 수 있다. 대안적으로, 이미지 프로세서(14)는 이미지상에 부가적 프로세싱을 수행하고, 전체 이미지 또는 바코드를 포함하는 영역 중 하나를 프로세싱된 포맷 또는 인코딩된 포맷으로 이미지 스토리지 모듈(16)에 저장할 수 있다. 이미지 정보에 오디오 정보가 동반된다면, 오디오 정보는 또한 이미지 정보를 포함하는 하나 이상의 프레임들을 포함하는 비디오 정보와 함께 또는 독립적으로 이미지 스토리지 모듈(16)에 저장될 수 있다. 이미지 스토리지 모듈(16)은 판독 전용 메모리(ROM: read-only memory), 전기적 소거가능 프로그래밍가능 판독 전용 메모리(EEPROM: lectrically erasable programmable read-only memory), 또는 플래시 메모리와 같은, 또는 자기 데이터 스토리지 디바이스 또는 광학 데이터 스토리지 디바이스와 같은 임의의 휘발성 또는 비휘발성 메모리 또는 스토리지 디바이스를 포함할 수 있다.
다수의 다른 엘리먼트들은 이미지 캡쳐 디바이스(10)에 또한 포함될 수 있으나, 설명의 간략성 및 용이함을 위하여 도 1에 특별히 예증되지 않는다. 예를 들어, 이미지 캡쳐 디바이스(10)는 렌즈, 셔터, 플래시 디바이스, 및 뷰파인더와 같은 이미지를 캡쳐하기 위한 부가적인 컴포넌트들을 포함할 수 있다. 도 1에 예증되는 아키텍쳐는 단지 예시적인 것으로서, 본 명세서에 개시되는 기술들은 다양한 다른 아키텍쳐들로 구현될 수 있다. 또한, 도 1에 예증되는 피쳐들은 하드웨어 및/또는 소프트웨어 컴포넌트들의 임의의 적절한 조합물에 의하여 실현될 수 있다.
도 2는 본 명세서에 개시되는 바코드 검출 기술들을 구현하는 이미지 캡쳐 디바이스(10)를 포함하는 예시적인 무선 통신 디바이스(20)를 예증하는 블록도이다. 다시 말해, 도 2는 무선 통신 디바이스(20) 내에 통합되는 이미지 캡쳐 디바이스(10)를 도시한다. 이미지 캡쳐 디바이스(10)의 연산은 도 1와 관련하여 상기 설명되며, 따라서, 여기에서 상세히 설명되지 않을 것이다. 무선 통신 디바이스(20)는 이미지 캡쳐 능력들을을 갖는 셀룰러 폰(예를 들어, 소위 카메라 폰 또는 비디오 폰), 비디오 레코더, 웹 캠, 개인용 디지털 단말(PDA: personal digital assistant), 랩탑 컴퓨터, 또는 이미지 캡쳐 능력 및 무선 통신 능력을 갖는 임의의 다른 디바이스와 같은 무선 통신 디바이스 핸드셋을 포함할 수 있다. 무선 통신 디바이스의 맥락에서 예증되나, 본 명세서의 기술들은 유선 통신 디바이스들에 또한 적용가능할 수 있다.
도 2의 실시예에서, 무선 통신 디바이스(20)는 이미지 캡쳐 디바이스(10), 인코딩 모듈(22), 전송기(24), 뷰파인더(26), 및 바코드 디코더 모듈(28)을 포함한다. 인코딩 모듈(22)은 저장 및/또는 전송을 위해 특정 이미지 압축 포맷으로 이미지를 압축하기 위하여 캡쳐된 이미지 정보를 인코딩할 수 있다. 인코딩 모듈(22)은 JPEG, TIFF, GIF 또는 다른 이미지 압축 포맷을 포함하는 다수의 이미지 압축 포맷들 중 임의의 것을 사용하여 이미지를 압축할 수 있다. 비디오의 경우에, 인코딩 모듈(22)은 MPEG, MPEG AVC(Advanced Video Coding) 파트 10, ITU H.264 등과 같은 임의의 개수의 비디오 압축 포맷들을 사용하여 비디오를 압축할 수 있다.
무선 통신 디바이스(10)는 전송기(24)를 통해 다른 디바이스로 인코딩된 이미지를 전송할 수 있다. 전송기(24)는 통상적으로 코드 분할 다중 액세스(CDMA: code division multiple access) 네트워크, 광대역 코드 분할 다중 액세스(W-CDMA: wideband code division multiple access) 네트워크, 시분할 다중 액세스(TDMA: time division multiple access) 네트워크, 및 GSM(global system for mobile communication) 네트워크, 또는 다른 유사한 네트워크와 같은 셀룰러 네트워크에 대한 인터페이스를 제공한다. 셀룰러 네트워크에 부가적으로 또는 대안적으로, 전송기(24)는 관련된 IEEE(Institute of Electrical and Electronics Engineers) 802.11 표준들, 또는 임의의 다른 유선 또는 무선 네트워크 중 임의의 것에 의하여 정의되는 바와 같이 무선 네트워크에 대한 인터페이스를 제공할 수 있다.
몇몇 예시들에서, 무선 통신 디바이스(10)는 인코딩된 데이터를 수신하기 위한 수신기 및 데이터를 디코딩하기 위한 디코더를 포함할 수 있다. 마찬가지로, 무선 통신 디바이스는 전송기(24)의 전송 회로 및 수신 회로를 포함하는 개별적인 수신기 또는 트랜시버를 포함할 수 있다. 디코더는 개별적인 디코딩 모듈일 수 있거나, 또는 CODEC으로 인코딩된 모듈(42)과 통합될 수 있다.
무선 통신 디바이스(20)는 이미지 캡쳐 디바이스(10)에 의하여 캡쳐되는 이미지 또는 뷰파인더(26)상에 이미지 캡쳐 디바이스(10)에 의하여 캡쳐될 관심 장면의 실시간 이미지를 나타낼 수 있다(즉, 이미지 프리뷰). 뷰파인더(26)는 전자 뷰파인더를 포함할 수 있다. 예시적인 전자 뷰파인더들은 통상적으로 액정 디스플레이(LCD: liquid crystal display), 유기 발광 다이오드(OLED: organic light- emitting diode) 디스플레이, 플라즈마 디스플레이 패널(PDP: plasma display panel), 발광 다이오드(LED: light-emitting diode) 디스플레이(예를 들어, 액티브 매트릭스 LED 디스플레이), 또는 캡쳐된 이미지 또는 실시간 이미지를 나타낼 수 있는 임의의 다른 타입의 디스플레이와 같은 하나 이상의 타입의 디스플레이들을 포함한다. 뷰파인더(26)는 또한 상기 개시된 전자 뷰파인더 대신에 더 전통적인 광학 뷰파인더를 포함할 수 있다. 무선 통신 디바이스(20)의 경우에, 뷰파인더(26)는 범용 전자 디스플레이를 포함할 수 있으며, 여기서 디스플레이는 또한 무선 통신 디바이스(20)가 수행할 수 있는 다른 기능들에 관한 정보를 나타낸다. 예를 들어, 무선 통신 디바이스(20)가 소위 카메라 폰을 나타낸다면, 뷰파인더(26)는 또한 셀룰러 폰 호출들의 전송 및 수신에 관한 정보를 나타낼 수 있다.
도 2의 무선 통신 디바이스(20)는 바코드 디코더 모듈(28)을 더 포함한다. 몇몇 예시들에서, 바코드 디코더 모듈(28)은 통신 디바이스(20) 내에서 실행하는 소프트웨어 애프리케이션을, 또는 다른 예시들에서는, 전용 하드웨어 컴포넌트, 또는 이 둘의 조합을 포함할 수 있다. 어느 예시에서들, 바코드 디코더 모듈(28)은 일반적으로 바코드 이미지에 의하여 표현되는 단일- 또는 다중-차원 패턴을 디코딩함으로써 주어진 바코드 이미지 내에서 인코딩되는 정보(때때로 "페이로드(payload)"로서 지칭됨)를 추출한다. 바코드의 디코딩 이후에, 바코드 디코더 모듈(28)은 페이로드를 이용하기 위한 목적으로 다른 모듈들이 추가로 실행하게끔 할 수 있거나, 또는 스스로 페이로드를 이용할 수 있다.
특히, 바코드 디코더 모듈(28)은 페이로드를 추출하기 위하여 이미지 캡쳐 디바이스(10)에 의하여 수신되는 바코드 이미지 내에 포함되는 패턴을 디코딩할 수 있다. 바코드 디코더 모듈(28)은 예를 들어, 바코드들을 디코딩하기 위하여 심볼 라이브러리에 액세스할 수 있다. 심볼 라이브러리는 예를 들어, 바코드를 디코딩하는데 유용한 다른 정보 뿐 아니라 페이로드의 단일 디지트들 및/또는 문자들의 인코딩을 포함할 수 있다. UPC(universal product code)들의 경우와 같은 몇몇 예시들에서, 페이로드는 그것이 첨부되는 아이템을 식별할 수 있다. 또한, 페이로드는 바코드가 첨부되는 아이템과 연관되는 부가적 정보를 포함할 수 있다. 예를 들어, 페이로드는 아이템 자신상에 디스플레이되지 않는 부가적인 아이템 정보, 아이템들과 관련되는 정보, 아이템 또는 관련 아이템들에 대한 프로모션 쿠폰들, 아이템 또는 관련 아이템들에 대한 관련된 인터넷 링크들, 또는 임의의 다른 연관되는 정보를 포함할 수 있다.
몇몇 예시들에서, 정보는 바코드의 페이로드 내에 직접 포함될 수 있다. 다른 예시들에서, 페이로드에 포함되는 정보는 예를 들어, 아이템과 관련되는 부가적 정보와 페이로드를 연관시키는 데이터베이스로부터 관련된 정보를 리트리브(retrieve)하는데 사용될 수 있다. 페이로드가 관련된 인터넷 링크들을 포함하는 경우에, 예를 들어, 페이로드는 HTTP(Hypertext Transfer Protocol) 어드레스를 포함할 수 있다. 바코드 디코더 모듈(28)은 웹 브라우저가 페이로드에 의하여 지정되는 HTTP 어드레스에 액세스하고, 뷰파인더(26)상에 HTTP 어드레스를 로딩하게 인보크시킬(invoke) 수 있다. 이러한 방식으로, 무선 통신 디바이스(20)의 사용자는 캡쳐된 바코드가 인터넷을 통해 첨부되는 아이템과 연관되는 부가적 정보를 볼 수 있다. 부가적으로, 사용자는 아이템 자신과 관련되지 않는 애플리케이션들에 대한 정보를 획득하는데 바코드의 페이로드를 이용할 수 있다. 예를 들어, 사용자는 거리 표지판(street sign)상에 위치되는 바코드를 스캐닝하고, 그 후, 바코드를 포함하는 아이템(예를 들어, 거리 표지판)으로부터 사용자가 가기 원하는 위치로의 디렉션들을 얻기 위해 맵핑 프로그램에 액세스할 수 있다.
이미지 캡쳐 디바이스(10), 인코딩 모듈(22), 전송기(24), 뷰파인더(26), 및 바코드 디코더 모듈(28)만을 포함하는 것으로 개시되나, 무선 통신 디바이스(20)는 사용자와 인터페이싱하기 위한 사용자 인터페이스(예를 들어, 키패드), 부가적 연산들을 수행하기 위한 하나 이상의 프로세서들, 및 착탈식 메모리, 헤드폰들, 전력 공급 장치들, 및 임의의 다른 그러한 주변 장치들을 수용하기 위한 다양한 포트들 및 리셉터클(receptacle)들과 같은 다른 모듈들을 포함할 수 있다. 무선 통신 디바이스(20)는 모뎀, 주파수 컨버터, 필터, 및 증폭기 회로와 같은 정보의 전송 및 수신을 위한 다른 컴포넌트들을 더 포함할 수 있다.
도 3은 더욱 상세히 도 1 및 2의 이미지 캡쳐 디바이스(10)를 예증하는 블록도이다. 도 3에 예증되는 바와 같이, 이미지 센서(12)는 관심 장면에 속하는 이미지 정보를 저장할 수 있는 이미지 버퍼(30)를 포함할 수 있다. 이미지 센서(12)는 예를 들어, 이미지 프리뷰 동안에 이미지 버퍼(30)에 이미지 정보를 저장할 수 있다. 특히, 이미지 센서(12)는 사용자가 관심 장면에서 이미지 캡쳐 디바이스(10)를 가리키면서(point), 그러나, 사용자가 이미지를 캡쳐하기 위한 버튼을 작동시키기 이전에, 이미지 버퍼(30)에 이미지 정보를 저장할 수 있다. 이러한 방식으로, 이미지 버퍼(30)는 이미지 캡쳐 디바이스(10)에 의하여 캡쳐될 관심 장면의 실시간 이미지를 저장함으로써 보여질 수 있다. 버퍼(30)는 판독 전용 메모리(ROM), 전기적 소거가능 프로그래밍가능 판독 전용 메모리(EEPROM), 또는 플래시 메모리와 같은, 또는 자기 데이터 스토리지 디바이스 또는 광학 데이터 스토리지 디바이스와 같은 임의의 휘발성 또는 비휘발성 메모리 또는 스토리지 디바이스를 포함할 수 있다. 하나의 이미지 버퍼(30)를 포함하는 것으로 도시되나, 이미지 센서(12)는 이미지 버퍼들을 포함하지 않거나, 다수의 이미지 버퍼들을 포함할 수 있다.
이미지 센서(12)는 일반적으로 이미지 센서(12)를 구성하기 위하여 하나 이상의 이미지 캡쳐 제어 특성들(32)을 더 포함한다. 도 3에 예증되는 실시예에서, 이미지 센서(12)는 노출 타이머(32A), 포커스 제어(32B), 및 센서 이득(32C)을 포함한다. 노출 타이머(32A)는 관심 장면에 이미지 센서(12)가 노출되는 동안의 시간을 설정하기 위하여 구성가능한 타이머를 나타낸다. 통상적으로, 이미지 프로세서(14)는 이미지 캡쳐 디바이스와 연관되는 노출 테이블 또는 종래의 노출 공식들의 세트에 기초하여 노출 타이머(32A)를 구성한다. 포커스 제어(32B)는 자동적으로 관심 장면에 초점을 맞출 수 있는 이러한 이미지 캡쳐 디바이스들(10)을 위해 존재한다. 포커스 제어(32B)는 최적 포커스 값(예를 들어, 최적의 명암에 의하여 결정되는 선명(sharpness) 값)을 생성하는 렌즈 위치를 설정하기 위한 및/또는 이미지 센서(12)가 초점을 맞춰야 하는 거리를 설정하기 위한 구성가능한 제어 값을 나타낸다. 통상적으로, 이미지 프로세서(14)는 관심 장면의 특정 영역, 예를 들어, 관심 장면의 중앙에 렌즈의 초점을 맞추도록 포커스 제어(32B)를 구성한다. 센서 이득(32C)은 이미지 센서(12)의 이미지 센서 엘리먼트들의 증폭기 이득을 결정하는 구성가능한 센서 이득 제어 값을 나타낸다. 노출 시간(32A)과 유사하게, 이미지 프로세서(14)는 이미지 캡쳐 디바이스와 연관되는 이득 테이블 또는 종래의 이득 공식들의 세트에 기초하여 센서 이득(32C)을 구성할 수 있다. 몇몇 예시들에서, 하나 이상의 노출 타이머들(32A), 포커스 제어(32B), 및 센서 이득(32C)의 조정들은 상호-관련될 수 있다. 도 3에 이미지 센서(12) 내에 상주하는 것으로서 도시되나, 버퍼(30) 및 이미지 캡쳐 제어 특성들(32)은 이미지 프로세서(14), 이미지 스토리지 모듈(16), 또는 바코드 스캐너 모듈(18)을 포함하는 이미지 캡쳐 디바이스(10)의 다른 모듈들 내부와 같이, 이미지 센서(12) 외부에 상주할 수 있다.
바코드 스캐너 모듈(18)은 바코드 검출 모듈(34) 및 바코드 프로세싱 모듈(36)을 포함한다. 유닛들 또는 모듈들로서의 상이한 피쳐들의 묘사는 바코드 스캐너 모듈(18)의 상이한 기능적 양상들을 강조하도록 의도된 것이며, 그러한 유닛들 및 모듈들이 개별적인 하드웨어, 소프트웨어, 및/또는 펌웨어 컴포넌트들에 의하여 구현되어야함을 반드시 암시하는 것은 아니다. 그보다는 차라리, 하나 이상의 유닛들 또는 모듈들과 연관되는 기능은 개별적인 또는 공통적인 하드웨어, 소프트웨어 컴포넌트들 및/또는 펌웨어 컴포넌트들 내에 통합될 수 있다.
상기 개시되는 바와 같이, 이미지 센서(12)는 디지털 이미지를 캡쳐하고, 버퍼(30)에 디지털 이미지를 저장한다. 바코드 스캐너 모듈(18)은 버퍼(30)로부터 디지털 이미지를 수신하고, 자동적으로 디지털 이미지 내에 바코드를 검출하기 위하여 바코드 검출 모듈(34)을 이용한다. 상기 개시되는 바와 같이, 바코드 검출 모듈(34)은 디지털 이미지 내에 바코드를 자동적으로 검출할 수 있는 반면, 이미지 프로세서(14)는 디폴트 이미지 캡쳐 모드, 고 운동 모드, 저 운동 모드, 인간 대상 또는 얼굴 모드, 다크 모드, 브라이트 모드, 또는 바코드의 이미지들을 캡쳐하도록 특별히 설계되지 않는 임의의 다른 모드와 같은, 비-바코드 이미지 캡쳐 모드에 따라 작동한다. 대안적으로, 바코드 검출 기술들은 바코드들의 이미지들을 캡쳐하기 위하여 특별히 설계되는 바코드 이미지 캡쳐 모드에서 이용될 수 있다.
바코드 검출 모듈(34)은 형태학적 연산 기반 검출 기술을 사용하여 바코드 검출을 수행할 수 있다. 상기 개시되는 바와 같이, 형태학적 연산 기술은 바코드들이 특정한 구분되는 특징들을 갖는다는 사실에 기초하는데, 즉, 그들은 공간적으로 동시적인 저 강도 값들의 고농도 영역들 및 에지들의 고농도의 영역들을 갖는다. 하기에 상세히 설명되는 바와 같이, 바코드 검출 모듈(34)은 바코드일 수 있는 후보들로서 형태학적 연산들을 사용하여 동시적으로 에지들 및 낮은 광학적 강도를 포함하는 영역들을 식별하고, 후보 영역들이 고유한 바코드 피쳐들을 갖는지를 확인함으로써, 바코드들을 검출할 수 있다.
바코드 검출 모듈(34)은 이미지 버퍼(34)로부터 캡쳐된 디지털 이미지의 휘도 값들을 획득할 수 있다. 캡쳐된 이미지 정보가 Y-Cb-Cr(휘도, 블루 색차, 레드 색차) 도메인에 있을 대, 예를 들어, 바코드 검출 모듈(34)은 바코드 검출에서 사용하기 위한 Y-채널 값들을 리트리브할 수 있다. 이미지 정보가 다른 컬러 도메인에, 예를 들어, RGB(레드, 청색, 블루) 도메인에 있는 예시들에서, 바코드 검출 모듈(34)은 이미지를 그레이스케일로 변환할 수 있다. 몇몇 예시들에서, 휘도 정보는 바코드 검출을 돕기 위하여 예를 들어, 샤프닝 마스크(sharpening mask)를 사용하여 살짝 샤프닝될 수 있다.
바코드 검출 모듈(34)은 디지털 이미지 내에 에지들을 식별하기 위하여 이미지를 프로세싱한다. 에지들은 휘도 강도에서 높은 명암 전환들을 나타내는 디지털 이미지의 위치들이다. 예를 들어, 에지는 저 강도에서 고 강도로, 즉, 라이트에서 다크로, 또는 고 강도에서 저 강도로, 즉, 다크에서 라이트로의 천이를 정의할 수 있다. 바코드들의 성질, 즉, 블랙 및 화이트(또는 다른 다크 및 라이트) 패턴들로 인하여, 바코드들은 눈에 잘 띄는 쉽게 검출가능한 에지들을 생성한다. 디지털 이미지 내에 에지들을 식별하기 위하여, 바코드 검출 모듈(34)은 휘도 값들이 현저한 변화를 나타내는 위치들을 검출하기 위하여 이미지를 분석할 수 있다. 바코드 검출 모듈(34)은 종래의 에지 검출 기술들을 사용하여 이미지 내에 에지들을 식별할 수 있다. 예를 들어, 바코드 검출 모듈(34)은 에지들을 검출하기 위하여 디지털 이미지에 커널 매트릭스(예를 들어, 곱셈 인자들 또는 가중치들의 매트릭스)를 적용할 수 있다. 커널 매트릭스는 통상적으로 그것이 적용되는 실제 이미지보다 훨장면 더 작다. 3 픽셀 곱하게 3 픽셀(3×3) 커널 매트릭스가 예시를 목적으로 설명될 것이다. 그러나, 바코드 검출 모듈(34)은 다른 차원들의 커널 매트릭스를 사용할 수 있다.
특히, 바코드 검출 모듈(34)은 차례로 이미지의 각각의 픽셀상에 3×3 커널 매트릭스를 중앙에 두고, 가중된 픽셀 값들을 생성하기 위하여 커널 매트릭스의 대응 가중치들로 중앙 픽셀 근처의 3×3 영역의 픽셀 값들을 곱한다. 바코드 검출 모듈(34)은 중앙 픽셀의 1차 도함수(first order derivative)를 획득하기 위하여 가중된 픽셀 값들을 합산한다. 이미지 프로세서는 전환 임계 값에 중앙 픽셀의 1차 도함수를 비교하고, 1차 도함수가 천이 임계 값을 초과하거나 동일할 때 에지를 검출한다. 1차 도함수가 천이 임계 값을 초과하거나 동일하다면, 픽셀은 에지상에 위치되는 것으로 결정된다. 일 양상에서, 바코드 검출 모듈(34)은 에지에 위치되는 것으로 결정되는 픽셀들을 화이트 또는 블랙과 연관되는 강도 값으로 설정하고, 에지에 위치되지 않는 것으로 결정되는 픽셀들을 대조적 강도 값, 예를 들어, 블랙 또는 화이트로 설정할 수 있다. 따라서, 에지 검출의 결과는 식별된 에지들을 제외하고 최대한 상세히 원본 이미지를 나타내는 이진 이미지인 에지 맵일 수 있다. 이진 이미지는 에지들이 화이트이고 이미지의 나머지이거나, 또는 그 반대인, 즉, 에지들은 블랙이고 이미지의 나머지는 화이트인 블랙 앤 화이트 이미지일 수 있다. 바코드 검출 모듈(34)은 디지털 이미지의 1차 도함수를 사용하여 에지들을 검출하는 것으로 설멍되나, 디지털 이미지의 2차 도함수를 사용하는 것과 같이, 다른 에지 검출 기술들이 이미지 내에 에지들을 검출하는데 사용될 수 있다.
바코드 검출 모듈(34)은 또한 저 강도를 갖는 이미지의 영역들(본 명세서에서 "저 강도 영역들"로서 지칭되는)을 식별하기 위하여 이미지를 프로세싱한다. 저 강도 영역들은 이미지의 다크 부분들과 대응한다. 바코드 검출 모듈(34)은 쓰레숄딩(thresholding)을 통해 이미지의 저 강도 영역들을 식별할 수 있다. 특히, 바코드 검출 모듈(34)은 강도 임계치 값과 각각의 픽셀 강도 값들을 비교함으로써 이미지의 저 강도 영역들을 식별하고, 강도 임계치 값을 초과하거나 동일한 임의의 픽셀 값들을 필터링할 수 있다. 따라서, 저 강도 검출의 결과는 제거된 고 강도 영역들을 갖는 원본 이미지를 나타내는 이진 이미지인 저 강도 맵일 수 있다. 일 실시예에서, 바코드 검출 모듈(34)은 강도 임계 값 미만이거나 동일한 픽셀 강도 값들을 화이트로 설정하고, 강도 임계 값을 초과하거나 동일한 픽셀 강도 값들을 블랙으로 설정할 수 있다. 본 실시예에서, 이미지의 저 강도 영역들은 화이트 영역들로서 표현되고, 이미지의 비-저 강도 영역들은 블랙으로서 표현된다. 대안적으로, 저 강도 영역들은 블랙 영역들로서 표현될 수 있고, 다른 영역들은 화이트 영역들로서 표현된다. 몇몇 예시들에서, 바코드 검출 모듈(34)은 에지들 및 이미지의 저 강도 영역들을 동시에 식별하기 위하여 디지털 이미지를 프로세싱할 수 있다.
바코드 검출 모듈(34)은 에지들의 고농도를 보이는 이미지 내의 위치들을 식별하기 위하여 에지 맵상에 하나 이상의 형태학적 연산들을 수행한다. 유사하게, 바코드 검출 모듈(34)은 저 강도 값들의 고농도를 보이는 이미지 내의 위치들을 식별하기 위하여 저 강도 맵상에 하나 이상의 형태학적 연산들을 수행한다. 형태학적 연산들은 동시에(즉, 병렬적으로) 또는 연속하여 에지 맵 및 저 강도 맵상에서 수행될 수 있다. 형태학적 연산들은 팽창(dilation) 연산, 부식(erosion) 연산, 개방(opening) 연산, 폐쇄(closing) 연산, 또는 이와 유사한 종류의 다른 것들 중 하나 이상을 포함할 수 있다. 일 실시예에서, 바코드 검출 모듈(34)은 에지 맵 및 저 강도 맵상에 팽창을 수행할 수 있다. 팽창은 일반적으로 구멍(hole)들 및 울퉁불퉁한(broken) 영역들을 채우며, 팽창을 위해 사용되는 구조 엘리먼트의 크기보다 더 작은 공간들만큼 이격되는 영역들을 접속시킨다.
이진 이미지들에 대하여, 구조 엘리먼트, 예컨대, 3×3 구조 엘리먼트는 각각의 픽셀들상의 중심에 놓인다. 구조 엘리먼트 내의 픽셀들 중 임의의 것이 화이트라면, 구조 엘리먼트가 중심에 놓이는 픽셀 값은 화이트로 설정된다. 유사한 방식이 그레이스케일 이미지들에 대하여 수행될 수 있다. 그레이스케일 이미지들에서, 예를 들어, 각각의 픽셀 값들은 구조 엘리먼트 내에 픽셀 값들의 최대 픽셀 값과 동일한 픽셀 값을 설정함으로써, 구조 엘리먼트를 사용하여 재계산될 수 있다. 이러한 방식으로, 다크 영역들에 의하여 둘러싸이는 밝은 영역들은 크기가 자라고, 브라이트 영역들에 의하여 둘러싸이는 다크 영역들은 크기가 축소된다. 이미지들에서 작은 다크 점들은 그들이 주변의 강도 값으로 "채워짐"에 따라 사라질 것이다. 효과는 강도가 신속하게 변화하는 디지털 이미지의 장소들에서, 예를 들어, 바코드가 위치되는 영역들에서 가장 뚜렷하다.
바코드 검출 모듈(34)은 팽창된 저 강도 맵 및 팽창된 에지 맵을 결합한다. 바코드 검출 모듈(34)은 예를 들어, 팽창된 에지 맵 및 팽창된 저 강도 맵을 결합하기 위하여 "AND" 연산을 수행할 수 있다. 결함된 이미지는 에지 및 저 강도 영역으로서 식별되는 이미지의 부분들을 나타낸다. 다시 말해, 결합된 이미지는 에지들 및 저 강도 영역들이 공간적으로 동시적인 이미지의 부분들을 나타낸다.
바코드 검출 모듈(34)은 다시 결합된 이미지상에 하나 이상의 형태학적 연산들을 수행한다. 예를 들어, 바코드 검출 모듈(34)은 구멍들 및 울퉁불퉁한 영역들을 채우고, 팽창을 위해 사용되는 구조 엘리먼트의 크기보다 작은 공간들만큼 이격되는 영역들을 접속하기 위하여 결합된 이미지상에 다른 팽창 연산을 수행할 수 있다. 바코드 검출 모듈(34)은 결합된 팽창된 이미지의 영역들 내에 임의의 나머지 구멍들을 추가로 채우기 위하여 결합된 팽창된 이미지에 플러드 필(flood fill) 연산을 또한 수행할 수 있다. 플러드 필 연산은 물체 내부에 구멍들을 채운다. 몇몇 예시들에서, 바코드 검출 모듈(34)은 플러드 필 연산 대신에 폐쇄 연산을 수행할 수 있다. 폐쇄 연산은 필링(filling) 엘리먼트의 크기 내에 작은 구멍들을 폐쇄하는 반면, 플러드 필 연산은 구멍의 크기와 무관하게 대상 내에 모든 구멍들을 폐쇄한다. 이러한 방식으로, 결합된 이미지상에 수행되는 하나 이상의 형태학적 연산들은 에지들 및 저 강도 부분들이 중첩하는 영역들을 고른(solid) 또는 거의 고른 화이트 영역으로 만든다.
바코드 검출 모듈(34)은 실질적으로 바코드들인 디지털 이미지의 위치들을 식별하기 위하여 하나 이상의 형태학적 연산들 이후에, 결합된 이미지에 남아있는 위치들을 분석한다. 다시 말해, 바코드 검출 모듈(34)은 위치가 바코드일 수 있는 후보인지 여부를 결정한다. 바코드 검출 모듈(34)은 예를 들어, 결합된 이미지에 남아있는 위치들 각각을 위치가 바코드일 수 있는 후보인지 여부를 결정하기 위한 하나 이상의 바코드 기준과 비교할 수 있다. 바코드 검출 모듈(34)은 예를 들어, 위치가 바코드이기에 너무 작거나 너무 큰지 여부를 결정하기 위한 바코드 크기 기준에 위치의 크기를 비교할 수 있다. 위치의 크기가 임계치보다 더 작다면, 바코드 검출 모듈(34)은 위치가 바코드가 아닌 것으로 결정할 수 있다. 위치들이 바코드로서 검출되었더라도, 너무 작은 위치들은 바코드를 해상(resolve)하기에 충분히 상세하게 이미지 캡쳐 디바이스(10)의 렌즈 시스템에 의하여 캡쳐될 수 없다. 다른 실시예로서, 바코드 검출 모듈(34)은 예를 들어, 직사각형 또는 정사각형과 같이, 바코드의 형태와 실질적으로 유사하지 않은 위치들을 삭제하기 위하여 바코드 형태 기준에 위치의 형태를 비교할 수 있다. 또 다른 실시예에서, 바코드 검출 모듈(34)은 바코드 필링 인자 기준과 위치의 필링 인자를 비교할 수 있다. 특히, 정사각형 또는 직사각형은 얼마나 많은 픽셀들이 인근의 직사각형 영역과 비교하여 화이트가 아닌지 결정하기 위하여 위치 주변에 배치될 수 있다. 인근 직사각형 영역에 대하여 화이트가 아닌 픽셀들의 퍼센트가 임계 퍼센트를 초과한다면, 위치가 후보 위치들로부터 제거될 수 있다.
바코드 검출 모듈(34)은 그 후, 위치들에서 나머지 디지털 이미지가 고유 바코드 피쳐들을 갖는지 확인함으로써 나머지 위치들이 실제로 바코드들인지 여부를 결정할 수 있다. 몇몇 2D 바코드들의 경우에, 예를 들어, 바코드 검출 모듈(34)은 식별된 위치가 바코드 파인더 패턴을 포함하는지 여부를 결정하기 위하여 바코드일 수 있는 후보들로서 바코드 검출 모듈(34)에 의하여 식별된 이미지의 위치들을 분석할 수 있다. 2D 데이터 매트릭스 바코드의 경우에, 바코드 검출 모듈(34)은 예를 들어, 교대하는 블랙 및 화이트 정사각형 모듈들로 구성되는 2개의 수직 라인들과 같은, 위치 내에 고유 둘레 패턴을 찾을 수 있다. 2D QR 바코드의 경우에, 바코드 검출 모듈(34)은 식별된 위치의 3개 코너들에서 끼워넣어진(nested) 교대하는 다크 및 라이트 정사각형들의 파인더 패턴을 찾을 수 있다. 그러나, 바코드 검출 모듈(34)은 다른 고유 바코드 파인더 패턴들 또는 다른 바코드 기호학과 연관되는 다른 고유 피쳐들에 대한 식별된 위치들을 분석할 수 있다. 또한, 바코드 검출 모듈(34)은 디지털 이미지의 그레이스케일 버전, 고유 바코드 피쳐들 또는 패턴들에 대한 생성된 저 강도 맵 또는 생성된 에지 맵과 같은, 원본 이미지와 다른 이미지들을 분석할 수 있다.
상기 개시되는 바코드 검출 기술들은 다수의 장점들을 제공할 수 있다. 예를 들어, 바코드 검출 기술들은 이미지 내의 바코드 크기, 위치, 및 배향과 독립적일 수 있다. 또한, 본 명세서에 개시되는 바코드 검출 기술들에서 형태학적 연산들의 사용은 더 빠르고 보다 계산적으로 효율적인 바코드 검출을 초래한다. 또한, 바코드 검출 기술들은 더 낮은 계산 복잡성을 가질 수 있다.
바코드 검출 모듈(34)이 이미지 내에 바코드를 검출하지 않는다면, 이미지 프로세서(14)는 본 명세서에 개시되는 바코드 스캐닝 기술들을 추가로 수행하지 않고 이미지를 캡쳐하도록 이미지 센서(21)를 제어할 수 있다. 즉, 이미지 캡쳐 디바이스(10)는 예를 들어, 관심 장면 내에 광의 양에 기초하여 또는 관심 장면의 중앙에 초점 포인트를 이용하여, 종래의 이미지 캡쳐 기술들에 따라 이미지를 캡쳐할 수 있다. 사실상, 이미지 캡쳐 디바이스(10)의 사용자는 이미지 캡쳐 디바이스(10)가 관심 장면 내에 바코드를 검출하도록 시도한 것조차 모를 수 있다. 대신, 바코드 검출은 사용자를 연루시키지 않고 배경에서 수행될 수 있다.
프리뷰 이미지 내에 바코드를 검출시, 바코드 스캐너 모듈(18)은 이미지 내에 바코드의 검출을 표시하기 위하여 도 2의 뷰파인더(26)와 같은 뷰파인더와 상호작용할 수 있다. 몇몇 예시들에서, 바코드 스캐너 모듈(18)은 예컨대, 검출된 바코드 근처에 박스의 배치를 통해 사용자에게 이미지 내의 바코드의 위치를 추가로 표시할 수 있다. 바코드 스캐너 모듈(18)은 이미지 캡쳐 디바이스(10)의 사용자에게 사용자가 바코드를 캡쳐하고 추가로 바코드 디코딩 연산들을 수행하기를 원하는지, 또는 종래의 이미지 캡쳐 기술들에 따라 일반적인 관심 장면을 간단히 캡쳐하기를 원하는지를 결정하도록 프롬프트(prompt)할 수 있다. 이러한 방식으로, 사용자는 관심 장면 내에 바코드가 존재하나, 사용자의 의도가 바코드를 스캐닝하는 것이 아니었을 때, 종래의 방식으로 관심 장면을 캡쳐하는 옵션을 갖는다. 그러나, 다른 양상들에서, 이미지 캡쳐 디바이스(10)는 사용자를 프롬프트하지 않고, 대신에, 목적이 관심 장면 내의 바코드의 스캐닝인 것처럼, 본 명세서의 기술들에 따라 이미지를 간단히 캡쳐하고 프로세싱할 수 있다. 다양한 기술들 중 임의의 것은 목적이 관심 장면 내에 바코드의 스캐닝인 것처럼, 이미지를 캡쳐하고 프로세싱할지 여부를 결정하는데 사용될 수 있다. 예를 들어, 이미지 캡쳐 디바이스(10)는 예컨대 바코드가 이미지의 적어도 1/4를 차지할 때와 같이, 바코드가 임계 크기를 초과하거나 동일할 때, 목적이 관심 장면 내에 바코드의 스캐닝인 것처럼 이미지를 캡쳐하고 프로세싱할 수 있다.
바코드 프롬프트에 응답하여, 사용자가 추가적 바코드 디코딩 연산들이 수행되어야 하거나, 그러한 프롬프트가 제공되지 않는 것으로 응답한다면, 센서 구성 모듈(19)은 이미지 센서(12)가 개선된 품질로 바코드를 캡쳐할 수 있도록 이미지 센서(12)의 이미지 캡쳐 특성들(32)을 구성할 수 있다. 특히, 센서 구성 모듈(19)은 바코드를 포함하는 관심 장면의 영역 또는 영역들의 품질을 개선하기 위하여 이미지 센서(12)의 이미지 캡쳐 특성들(32)을 구성한다. 예를 들어, 센서 구성 모듈(19)은 이미지 센서(12)가 바코드를 갖는 관심 장면의 영역을 높은 품질로 캡쳐할 수 있도록, 노출 타이머(32A) 및/또는 포커스 제어(32B)를 구성할 수 있다. 즉, 이미지 내에 바코드의 위치가 주어지면, 센서 구성 모듈(19)은 바코드를 포함하는 관심 장면의 영역에 대한 최적 노출 시간을 계산하고, 종래의 노출 시간 알고리즘들을 사용하여 노출 타이머(32A)를 구성할 수 있다. 예를 들어, 센서 구성 모듈(19)은 바코드를 포함하는 관심 장면의 영역에 광 강도를 분석하고, 관심 장면의 특정 영역의 광 강도에 기초하여 노출 시간을 설정할 수 있다.
부가적으로, 또는 대안적으로, 관심 장면 내에 바코드의 위치가 주어지면, 센서 구성 모듈(19)은 바코드를 포함하는 관심 장면의 영역에 대한 최적 포커스 제어를 계산하고, 종래의 포커스 제어 알고리즘들을 사용하여 이미지 센서(12)의 초점으로서 바코드의 위치를 사용하도록 포커스 제어(32B)를 구성할 수 있다. 이미지 캡쳐 특성들(32)이 구성되면, 이미지 프로세서(14)는 이미지 센서(12)로 하여금 이미지 캡쳐 특성들(32)에 따라 이미지를 캡쳐하게 할 수 있다. 상기 개시되는 예시적인 실시예들에서 센서 구성 모듈(19)에 의하여 구성되는 이미지 캡쳐 특성들(32)은 노출 시간 및 포커스 제어를 포함하나, 다른 이미지 캡쳐 특성들은 노출 시간 및 포커스 제어 대신에 또는 그것에 추가로 구성될 수 있다. 예를 들어, 센서 구성 모듈(19)은 예를 들어, 이미지 센서(12)의 증폭기 이득과 같은 센서 이득을 구성할 수 있다.
몇몇 예시들에서, 이미지 캡쳐 디바이스(10)는 바코드 이미지 캡쳐 모드에서 작동할 수 있다. 이러한 경우에, 이미지 캡쳐 특성들(32)은 이미지 내에 바코드의 검출 이전에 구성될 수 있다. 바코드 검출 모듈(34)은 이미지 센서(12)의 이미지 캡쳐 특성들(32)을 구성하기 위한 목적으로 이미지 내에 바코드를 검출하는 대신, 바코드의 프로세싱을 목적으로 바코드의 프로세싱을 목적으로 이미지 내에 바코드를 검출할 수 있다.
이미지 캡쳐 특성들(32)에 따라 관심 장면의 이미지를 캡쳐한 이후에, 바코드 프로세싱 모듈(36)은 캡쳐된 이미지를 프로세싱할 수 있다. 바코드 프로세싱 모듈(36)은 예를 들어, 바코드를 포함하는 이미지의 영역만이 남아있도록 이미지를 크롭핑할 수 있다. 바코드 프로세싱 모듈(36)은 예를 들어, 바코드의 검출 동안에 바코드 검출 모듈(34)에 의하여 생성되는 바코드 위치 정보를 사용하여 이미지 내에 바코드 또는 바코드들만을 포함하도록 캡쳐된 이미지를 크롭핑할 수 있다. 대안적으로, 바코드 검출 모듈(34)은 디지털 이미지 내에 바코드의 위치를 식별하기 위하여 바코드 캡쳐 연산에서 이러한 포인트에서 바코드 검출을 수행할 수 있다. 이미지 내에 둘 이상의 바코드가 존재하는 예시들에서, 바코드 프로세싱 모듈(36)은 개별적으로 이미지로부터 바코드들 각각을 추출할 수 있다.
대안적으로, 또는 부가적으로, 바코드 프로세싱 모듈(36)은 후속 바코드 디코더 모듈들, 예를 들어, 도 2의 바코드 디코더 모듈(28)에 의한 사용을 위해 깨끗하고 균일한 바코드를 생성하기 위하여 왜곡을 제거하도록 캡쳐된 이미지를 추가로 프로세싱할 수 있다. 몇몇 예시들에서, 바코드 프로세싱 모듈(36)은 단지 바코드를 포함하는 이미지의 영역에서 왜곡을 교정할 수 있다. 대안적으로, 바코드 프로세싱 모듈(36)은 전체 이미지의 왜곡을 교정할 수 있다. 바코드 프로세싱 모듈(36)은 다양한 왜곡 문제들 중 임의의 것을 교정하기 위한 왜곡 교정 기술들을 수행할 수 있다. 예를 들어, 바코드 프로세싱 모듈(36)은 바코드가 정확하게 보여질 수 있도록, 이미지 내에 바코드를 지향시키기 위해 이미지를 회전시킬 수 있다.
다른 실시예로서, 바코드 프로세싱 모듈(36)은 바코드의 1-차원적 또는 다-차원적 패턴을 모호하게할 수 있는 광 또는 그림자에 의하여 야기되는 왜곡을 교정하도록 이미지를 프로세싱할 수 있다. 왜곡 교정 모듈(38)은 관점과 관련된 문제점들을 교정하도록 이미지를 추가로 프로세싱할 수 있다. 즉, 바코드는 사용자가 바코드의 이미지를 캡쳐한 관점으로 인하여 왜곡될 수 있다. 따라서, 바코드 프로세싱 모듈(36)은 왜곡된 바코드를 교정하도록 이미지를 프로세싱할 수 있다. 바코드 프로세싱 모듈(36)은 바코드가 비-평탄 아이템들 위에 배치될 때 발생하는 바코드들의 랩핑(wraping)을 또한 교정할 수 있다. 예를 들어, 바코드 프로세싱 모듈(36)은 알루미늄 캔 또는 유리병 위에 배치되는 바코드로 인하여 바코드의 랩핑을 교정할 수 있다.
이미지 프로세서(14)는 이미지 스토리지 모듈(16) 내에 캡쳐된 바코드 이미지를 저장할 수 있다. 이미지 캡쳐 디바이스(10)는 바코드의 페이로드를 추출하기 위하여 디코딩하기 위해 바코드 디코더 모듈(28)(도 2)에 캡쳐된 이미지를 제공할 수 있다. 이러한 방식으로, 바코드 스캐너 모듈(18)은 보다 신뢰성 있고 정확한 바코드 디코딩을 지원할 수 있는 개선된 이미지 품질로 바코드들이 캡쳐될 수 있는 일관적인 전단(front-end) 인터페이스를 제공할 수 있다. 비-바코드 이미지 캡쳐 모드에서 이미지 캡쳐 디바이스가 실행되는 바코드들의 자동적 검출은 특별한 바코드 카메라 모드의 선택 또는 특별한 바코드 캡쳐 애플리케이션의 실행과 같은, 관련 없는 사용자 상호작용을 제거하거나 감소시키는데 특히 효율적일 수 있다. 또한, 후-단(back-end)에서 이미지 개선 기술들을 수행하는 대신 이미지 센서(12)의 이미지 캡쳐 특성들을 구성하는 것은 바코드들의 더 높은 품질의 이미지들을 제공할 수 있다.
본 명세서에 개시되고 바코드 스캐너 모듈(18) 및 센서 구성 모듈(19)에 속하는 기능은 컴퓨터-판독가능 매체상에 저장되는 명령들을 실행하는 하나 이상의 프로그래밍가능한 프로세서들에 의하여 수행될 수 있으며, 여기서 명령들 및/또는 코드는 프로세서가 본 명세서에 개시되는 바와 같이 바코드 스캐닝을 수행하게 한다. 몇몇 경우들에 있어, 컴퓨터-판독가능 매체는 컴퓨터 프로그램 물건의 일부를 형성할 수 있으며, 이는 제조자에게 판매되고/판매되거나 디바이스에서 사용될 수 있다. 대안적으로, 본 명세서에 개시되고 바코드 스캐너 모듈(18) 및 센서 구성 모듈(19)에 속하는 기술들은 일반적으로 하드웨어에, 특히, 집적 회로 디바이스 내에 구현될 수 있다. 집적 회로 디바이스는 본 명세서에 개시되는 기능을 수행하도록 구성되는 하나 이상의 프로세서들을 포함한다.
도 4는 바코드 스캐닝을 수행하는, 도 3의 이미지 캡쳐 디바이스(10)와 같은 이미지 캡쳐 디바이스의 예시적인 연산을 예증하는 흐름도이다. 최초에, 사용자는 이미지 캡쳐를 개시하고, 이미지 센서(12)는 이미지 획득을 시작한다(42). 즉, 이미지 센서(12)는 이미지 정보를 캡쳐하여 이미지 버퍼(30)로 저장한다. 몇몇 예시들에서, 이미지 센서(12)는 이미지 프리뷰 동안에, 즉, 사용자가 관심 장면에서 이미지 캡쳐 디바이스를 가리키는 동안, 그러나, 사용자가 이미지를 캡쳐하기 위한 버튼을 작동시키 이전에, 이미지 정보를 캡쳐하여 이미지 버퍼(30)로 저장한다. 이미지 획득은 바코드 이미지 캡쳐 모드를 포함하는 이미지 캡쳐 모드들 중 임의의 것에서 시작할 수 있다.
바코드 검출 모듈(34)은 디지털 이미지를 수신하고, 관심 장면이 바코드(44)를 포함하는지 여부를 검출한다. 바코드 검출 모듈(34)은 에지들의 고농도 및 낮은 광학 강도를 갖는 픽셀들의 고농도를 동시에 나타내는 이미지의 위치들을 식별할 수 있다. 바코드 검출 모듈(34)은 위치들이 바코드 파인더 패턴들 또는 특정 바코드 기호학을 고유하게 식별하는 다른 피쳐들과 같은 고유 바코드 피쳐들을 갖는지 여부를 확인함으로써, 식별된 위치들이 실제로 바코드들인지 결정할 수 있다. 바코드 검출 기술은 도 5와 관련하여 보다 상세히 설명된다.
바코드 검출 모듈(34)이 관심 장면 내에 바코드를 검출하지 않는다면, 이미지 프로세서(14)는 몇몇 다른 기준(46)에 기초하여 결정되는 이미지 캡쳐 특성들에 따라 이미지를 캡쳐하도록 이미지 센서(12)를 제어할 수 있다. 예를 들어, 이미지 프로세서(14)는 바코드 검출 모듈(34)이 관심 장면 내에 바코드를 검출하지 않을 때, 관심 장면의 광의 양, 관심 장면 내의 운동량, 또는 장면의 다른 특징에 기초하여 결정되는 이미지 캡쳐 특성들에 따라 이미지를 캡쳐하도록 이미지 센서(12)를 제어할 수 있다.
바코드가 관심 장면 내에 검출된다면, 바코드 스캐너 모듈(18)은 사용자가 바코드를 캡쳐하고 추가적 바코드 디코딩 연산들을 수행하기를 원하는지, 또는 종래의 이미지 캡쳐 기술들에 따라 일반적 관심 장면을 간단히 캡쳐하기를 원하는지 여부를 결정하도록 사용자를 프롬프트할 수 있다(48, 50). 이러한 방식으로, 사용자는 관심 장면 내에 바코드가 존재하지만, 사용자의 의도는 바코드를 스캔하는 것이 아니었을 때, 종래의 방식으로 관심 장면을 캡쳐하는 옵션을 갖는다.
사용자가 검출된 바코드의 추가적 프로세싱에 선행하려는 의도를 시그널링함으로써 프롬프트에 응답한다면, 이미지 캡쳐 디바이스(10)는 종래의 이미지 캡쳐 특성들에 따라 이미지를 캡쳐한다(46). 몇몇 예시들에서, 본 명세서의 기술들에 따라 이미지를 간단히 캡쳐하고 프로세싱할 수 있는 대신, 즉, 목적이 관심 장면 내에 바코드의 스캐닝인 것처럼, 이미지 캡쳐 디바이스(10)는 사용자를 프롬프트하지 않을 수 있다. 그러한 경우, 바코드 캡쳐가 요구되고, 블록들(48 및 50)은 스킵될 수 있는 것으로 가정된다.
사용자 신호들이 검출된 바코드를 계속해서 프로세싱하려는 의도를 시그널링하거나, 또는 이미지 캡쳐 디바이스(10)가 그러한 프롬프트 피쳐를 포함하지 않는다면, 센서 구성 모듈(19)은 이미지 센서(12)의 하나 이상의 이미지 캡쳐 특성들을 구성한다(52). 센서 구성 모듈(19)은 예를 들어, 바코드를 포함하는 관심 장면의 영역이 개선된 품질로 캡쳐되도록, 상기 개시되는 방식으로 노출 시간(32A), 포커스 제어(32B), 또는 센서 이득(32C)을 구성할 수 있다.
이미지 프로세서(14)는 이미지 센서(12)가 구성된 이미지 캡쳐 특성들에 따라 관심 장면의 이미지를 캡쳐하게 한다(54). 바코드 프로세싱 모듈(36)은 바코드를 포함하는 이미지의 영역의 품질을 증가시키기 위하여 캡쳐된 이미지를 프로세싱한다(56). 바코드 프로세싱 모듈(36)은 예를 들어, 바코드를 포함하는 이미지의 영역만이 남아있도록 이미지를 크롭핑할 수 있다. 대안적으로, 또는 부가적으로, 바코드 프로세싱 모듈(36)은 후속 바코드 디코더 모듈들에 의한 사용을 위해 깨끗하고 균일한 바코드를 생성하기 위하여 왜곡을 감소시키도록 캡쳐된 이미지를 추가로 프로세싱할 수 있다. 바코드 프로세싱 모듈(36)은 회전, 조명, 관점 또는 왜곡과 관련되는 왜곡, 및 랩핑을 포함하는 다양한 왜곡 문제점들 중 임의의 것을 보정하기 위한 왜곡 보정 기술들을 수행할 수 있다.
바코드를 캡쳐하고 프로세싱한 이후, 바코드 스캐너 모듈(18)은 페이로드를 획득하기 위하여 디코딩하기 위한 바코드 디코더 모듈에 바코드를 제공할 수 있다(58). 바코드 디코더 모듈은 페이로드(59)를 획득하기 위해 바코드를 디코딩한다. 이러한 프로세스는 바코드를 이미지 스토리지 모듈(16)에 형식적으로 저장하지 않고 발생할 수 있다는 것을 유념해야 한다. 즉, 상기 프로세스는 실시간으로 또는 거의 실시간으로 발생할 수 있으며, 바코드는 이미지 스토리지 모듈(16)에 저장되지 않고 바코드 디코더 모듈에 제시될 수 있어, 이미지 스토리지 모듈(16) 내에 공간을 절약할 수 있다. 그러나, 몇몇 예시들에서, 바코드는 바코드 디코더 모듈에 바코드를 제공하기 이전에 저장될 수 있다.
도 5는 본 명세서에 개시되는 기술들에 따른 바코드 검출을 수행하는, 도 3의 이미지 캡쳐 디바이스(10)와 같은 이미지 캡쳐 디바이스의 예시적인 연산을 예증하는 흐름도이다. 처음에, 바코드 검출 모듈(34)은 이미지의 그레이스케일 버전을 획득할 수 있다(60). 캡쳐된 이미지 정보가 Y-Cb-Cr 도메인에 있을 때, 예를 들어, 바코드 검출 모듈(34)은 Y-채널 값들을 획득할 수 있다. 이미지 정보가 다른 컬러 도메인, 예를 들어, R-G-B 도메인에 있는 예시들에서, 바코드 검출 모듈(34)은 이미지를 그레이스케일로 변환할 수 있다.
바코드 검출 모듈(34)은 이미지 내에 식별된 에지들을 제외하고 제거된 이미지의 최대한 상세한 표현인 에지 맵을 생성한다(62). 상기 상세히 설명되는 바와 같이, 바코드 검출 모듈(34)은 픽셀 단위로 이미지에 에지 검출 커널을 적용함으로써 에지 맵을 생성할 수 있다. 일 실시예에서, 에지는 에지들은 화이트이고 이미지의 나머지는 블랙인 이진 이미지, 즉, 블랙 앤 화이트 이미지일 수 있다.
바코드 검출 모듈(34)은 또한 제거된 비-저 강도 영역들을 갖는 이미지의 표현인 저 강도 맵을 생성한다(64). 바코드 검출 모듈(34)은 강도 임계 값과 각각의 픽셀 강도 값들을 비교함으로써 이미지의 저 강도 영역들을 식별하고, 강도 임계 값을 초과하거나 동일한 임의의 픽셀 값들을 필터링할 수 있다. 일 실시예에서, 저 강도 맵은 저 강도 영역들은 화이트이고 이미지의 나머지는 블랙인 이진 이미지일 수 있다. 바코드 검출 모듈(34)은 에지들 및 저 강도 영역들을 동시에 식별하도록 디지털 이미지를 프로세싱할 수 있다. 대안적으로, 연산은 연속하여 수행될 수 있다.
도 5의 실시예에서, 바코드 검출 모듈(34)은 에지 맵상에 팽창을 수행한다(66). 바코드 검출 모듈(34)은 또한 저 강도 맵상에 팽창을 수행한다(68). 상기 개시되는 바와 같이, 팽창은 일반적으로 구멍들 및 울퉁불퉁한 영역들을 채우고, 팽창을 위해 사용되는 구조 엘리먼트의 크기보다 작은 공간들에 의하여 분리되는 영역들을 연결한다. 팽창은 크기가 성장되는 이미지의 브라이트 영역들 및 크기가 수축되는 다크 영역들을 초래한다.
바코드 검출 모듈(34)은 팽창된 에지 맵 및 팽창된 저 강도 맵을 결합한다(70). 바코드 검출 모듈(34)은 예를 들어, 팽창된 에지 맵 및 팽창된 저 강도 맵을 결합하기 위하여 "AND" 연산을 수행할 수 있다. 다시 말해, 결합된 이미지는 에지들 및 저 강도 영역들이 공간적으로 동시적인 이미지의 부분들을 나타낸다. 바코드 검출 모듈(34)은 결합된 이미지상에 팽창을 수행하고, 결합된 팽창 이미지의 임의의 구멍들을 플러드 필링한다.
바코드 검출 모듈(34)은 바코드들일 수 있는 후보들인 위치들을 식별하기 위하여 팽창 및 플러드-필링 이후에 결합된 이미지를 분석한다(74). 바코드 검출 모듈(34)은 위치가 바코드일 수 있는 후보인지 여부를 결정하기 위하여 하나 이상의 바코드 기준와 결합된 이미지의 각각의 위치들을 비교할 수 있다. 바코드 검출 모듈(34)은 예를 들어, 위치들의 크기, 위치들의 형태, 위치들의 필 팩터, 또는 다른 유사한 특징, 또는 바코드들일 수 있는 후보들인 위치들을 식별하기 위하여 결합된 이미지의 위치들의 특징들의 조합을 분석할 수 있다.
바코드 검출 모듈(34)은 후보 위치들이 실제로 바코드들인지 여부를 확인할 수 있다(76). 예를 들어, 바코드 검출 모듈(34)은 2D 데이터 매트릭스 바코드의 경우에 교대하는 블랙 앤 화이트 정사각형들의 2개의 수직 라인들, 또는 2D QR 바코드의 경우에 위치의 3개 코너들에 교대하는 블랙 앤 화이트 정사각형들의 끼워넣어진 패턴과 같은, 고유 바코드 파인더 패턴들에 대한 후보 위치들로서 식별되는 원본 이미지의 위치들을 분석할 수 있다. 다른 양상들에서, 바코드 검출 모듈(34)은 디지털 이미지의 그레이스케일 버전, 생성된 에지 맵, 또는 생성된 저 강도 맵과 같은, 원본 이미지가 아닌 이미지들을 분석할 수 있다. 바코드 검출 모듈(34)은 바코드들로서 확인된 위치들을 분류한다(78). 다시 말해, 바코드 검출 모듈(34)은 후보 위치가 고유 바코드 피쳐를 포함할 때, 바코드를 검출한다.
도 6a-6d는 본 명세서에 개시되는 바코드 스캐닝 기술들에 따라 이미지를 나타내는 예시적인 뷰파인더(80)의 예증들이다. 뷰파인더(80)는 도 2의 뷰파인더(26)와 실질적으로 유사할 수 있다. 도 6a에 도시되는 바와 같이, 뷰파인더(80)는 통상적으로 관심 장면의 실시간 이미지(82)를 나타낸다. 관심 장면은 백그라운드 또는 포어그라운드 중 하나에 다수의 대상들을 포함할 수 있으나, 예증을 용이하게 하기 위해 빈(blank) 장면으로서 예증될 수 있다. 이미지(82)는 바코드(86)가 첨부하는, 또는 적어도 첨부하는 것으로 보이는 아이템(84)을 포함한다. 아이템(84)은 박스들 또는 다른 제품 패키징, 캔(can)들, 잡지들 또는 다른 제품들, 거리 표지판들, 또는 다른 타입의 아이템과 같은 다수의 아이템들 중 임의의 것을 포함할 수 있다. 뷰파인더(80)는 도 3의 이미지 캡쳐 디바이스(10)와 같은 이미지 캡쳐 디바이스가 작동하는 모드를 보여주는 모드 표시자(88)를 이미지(82)에 덧씌울(overlay) 수 있다. 현재, 모드 표시자(88)는 이미지 캡쳐 디바이스(10)가 "디폴트 모드"에서 작동하는 것을 보여준다. 디폴트 이미지 캡쳐 모드에서 작동하는 것으로 도 6a-6d에 예증되고 설명되나, 본 명세서의 바코드 스캐닝 기술들은 고 운동 모드(또한 작동 모드로서 지칭되는), 저 운동(또한 씨닉 또는 풍경(landscape) 모드로서 지칭되는), 인간 대상 또는 얼굴 모드, 다크 모드, 브라이트 모드, 또는 바코드들의 이미지들을 캡쳐하도록 특별히 설계되지 않은 임의의 다른 모드와 같은, 임의의 비-바코드 이미지 캡쳐 모드에서 바코드들을 검출하는데 사용될 수 있다. 또한, 본 명세서의 기술들은 마찬가지로 바코드들의 이미지들을 캡쳐하도록 특별히 설계되는 바코드 이미지 캡쳐 모드에서 바코드들을 검출하는데 사용될 수 있다.
디폴트 모드에서 작동하면서, 바코드 스캐너 모듈(18)은 본 명세서에 개시되는 바코드 스캐닝 기술들을 수행한다. 바코드 검출 모듈(34)은 예를 들어, 도 5를 참고하여 상기 설명되는 방식으로 이미지(82) 내에 바코드(86)를 검출한다. 도 6b는 바코드(86)의 위치 및 검출을 반영하기 위하여 바코드 스캐너 모듈(18)이 뷰파인더(80)를 업데이트한 이후에 뷰파인더(80)를 보여준다. 특히, 뷰파인더(80)는 이제 바코드 시그널링 마크들(89A-89D)("마크들(89)")을 포함한다. 마크들(89)은 이미지(82) 내에 바코드(86)의 위치를 표시한다. 마크들(89)은 바코드(86)의 위치를 시그널링할 수 있는 임의의 시각적 표시자, 예를 들어, 화살표, 박스, 또는 다른 형태 또는 다른 타입의 표시자를 포함할 수 있다. 바코드 검출 모듈(34)은 뷰파인더(80) 내에 바코드(86)의 현재 외형에도 불구하고 바코드(86)의 위치를 찾아낼 수 있다는 것을 유념해야 한다. 이것은 예를 들어, 바코드(86)의 픽셀화된 그레이스케일 및 살짝 왜곡된 성질과 같이, 감소된 품질의 바코드(86)를 보여줌으로써 도 6a-6c에서 반영된다.
이미지(82) 내에 바코드(86)를 찾아낸 이후에, 몇몇 예시들에서 바코드 스캐너 모듈(18)은 계속해서 바코드(86)를 추가로 프로세싱하기 이전에 사용자에게 프롬프트할 수 있다. 도 6c는 이미지(82) 위에 덧씌워진 사용자 프롬프트(90)를 갖는 뷰파인더(80)를 보여준다. 사용자 프롬프트(90)는 단지 예시적인 사용자 프롬프트이며, 본 명세서에 개시되는 기술들은 사용자 프롬프트를 포함할 필요가 없고, 또는 완전히 상이한 사용자 프롬프트를 포함할 수 있다. 몇몇 양상들에서, 사용자 프롬프트는 사용자에 의한 사용자 선호도로서 설정될 수 있다. 사용자 프롬프트(90)는 사용자에게 바코드를 프로세싱하기 위해 OK를 누름" 및 "사진을 찍기 위해 Exit를 누름"을 프롬프트하여, 사용자가 계속해서 바코드를 프로세싱하기를 원한다면, 사용자가 "OK"로 라벨링되는 버튼을 눌러야 하고, 그렇지 않다면, "Exit"라고 라벨링된 버튼을 눌러야 함을 표시한다. "OK" 및 "Exit" 버튼들은 모두 단지 예시적인 것이며, 본 명세서에 개시되는 기술들은 이러한 좁은 문맥으로 제한되어서는 안 된다. 버튼들은 소프트 키들, 하드 키들, 터치 스크린 버튼 등을 포함할 수 있다. 사용자가 예시적인 "OK" 버튼을 누르는 것으로 가정하고, 도 6d는 바코드(86)의 결과 이미지(82)를 나타내는 뷰파인더(80)를 보여준다. 다수의 바코드들이 관심 신 내에 포함되는 예시들에서, 이미지 캡쳐 디바이스(10)는 사용자가 스캐닝하는데 관심 있는 바코드가 다수의 바코드들 중 어느 것인지를 선택하기 위하여 뷰파인더(80)를 통해 사용자에게 프롬프트할 수 있다.
도 6d에 도시되는 바와 같이, 이미지(82)는 왜곡, 예를 들어, 이전 도 6a-6c의 픽셀화되고 왜곡된 바코드(86)와 연관되는 명암 및 왜곡 문제들을 교정하기 위하여 크롭핑되고 프로세싱된 이미지를 나타내는 깨끗하고 왜곡되지 않은 바코드(86)를 포함할 수 있다. 도 6d의 바코드(86)는 블랙 앤 화이트 컬러들 사이에서 높은 명암을 갖고, 완벽하지 않다면, 거의 정사각형이다. 따라서, 도 6d의 바코드(86)는 바코드 디코더 모듈이 바코드(86)로 인코딩된 페이로드를 용이하게 추출할 수 있도록, 균일한 바코드를 나타낸다. 뷰파인더(80) 내에 나타나는 것으로 설명되나, 도 6d의 균일한 바코드(86)는 뷰파인더(80) 내에 제시되지 않을 수 있으며, 대신에 상기 논의되는 바코드 디코더에 즉시 송신될 수 있다.
도 7a-7g는 본 명세서에 개시되는 바코드 검출 프로세스의 다양한 스테이지들 동안에 바코드의 이미지의 예시적인 실례들이다. 도 7a는 예를 들어, 이미지 프리뷰 동안에 이미지 센서(12)에 의하여 최초에 획득되는 바와 같이 그레이스케일 이미지의 예시적인 예증을 보여준다. 상기 상세히 설명되는 바와 같이, 바코드 검출 모듈(34)은 이미지 내에 에지들을 식별하기 위하여 도 7a에 보여지는 그레이스케일 이미지를 프로세싱한다. 도 7b는 워본 그레이스케일 이미지 내에 식별된 에지들의 에지 맵의 예시적인 예증을 도시한다. 에지 맵은 식별된 에지들을 제외하고 삭제된 원본 이미지를 최대한 상세히 나타낸다. 도 7b에 예증되는 예시적인 에지 맵에서, 이미지 내에 검출된 에지들은 화이트인 반면, 이미지의 나머지는 블랙이다. 그러나, 다른 경우들에서, 이미지 내의 검출된 에지들은 블랙이고, 이미지의 나머지는 화이트일 수 있다.
바코드 검출 모듈(34)은 원본 그레이스케일 이미지 내에 저 강도 영역들을 식별하기 위하여 도 7a에 보여지는 그레이스케일 이미지를 부가적으로 프로세싱한다. 도 7c는 그레이스케일 이미지의 식별된 저 강도 영역들의 저 강도 맵의 예시적인 예증을 보여준다. 저 강도 맵은 제거된 비-저 강도 영역들을 갖는 원본 이미지를 나타낸다. 도 7c에 예증되는 예시적인 저 강도 맵에서, 저 강도 영역들은 화이트로서 도시되며, 다른 영역들은 블랙으로서 도시된다. 그러나, 다른 경우들에서, 이미지 내의 저 강도 영역들은 블랙일 수 있고, 이미지의 나머지는 화이트일 수 있다.
도 7d 및 7e는 각각 바코드 검출 모듈(34)이 팽창을 수행한 이후의 에지 맵 및 저 강도 맵의 예시적인 예증들이다. 도 7f는 팽창된 에지 맵과 팽창된 저 강도 맵을 결합하고, 결합된 이미지의 팽창을 수행하고, 팽창된 결합 이미지를 플러드 필링한 이후에, 바코드 검출 모듈(34)에 의하여 생성되는 이미지의 예시적인 예증이다. 도 7f의 예시적인 예증에 도시되는 바와 같이, 바코드들을 포함하는, 프로세싱 이후에 이미지 내에 다수의 위치들이 여전히 존재한다. 통상적인 관심 장면은 결합된 이미지에 남아있는 다수의 다른 위치들을 포함할 수 있다. 예를 들어, 통상적인 관심 장면의 다른 백그라운드 및 포어그라운드 대상들과의 결합된 이미지는 텍스트를 갖는 위치들, 관심 장면의 다른 비-바코드 대상들의 에지들을 포함하는 위치들, 또는 이와 유사한 종류의 다른 것들과 같은 나머지 위치들을 포함할 수 있다.
바코드 검출 모듈(34)은 잠재적으로 바코드들일 수 있는 위치들을 식별하기 위하여 남아있는 위치들을 분석한다. 바코드 검출 모듈(34)은 위치가 바코드일 수 있는 후보인지 여부를 결정하기 위하여 하나 이상의 바코드 기준, 예를 들어, 크기, 형태, 필 팩터, 또는 이와 유사한 종류의 다른 것들에 이미지의 위치들 각각을 비교할 수 있다. 도 7g는 바코드 모듈(34)이 후보 위치들을 선택하기 위하여 위치들을 분석한 이후에, 이미지의 예시적인 예증을 보여준다. 도 7g에 예증되는 이미지에 남아있는 후보 위치들은 2개의 정사각형 형태 위치들이며, 이는 도 7a의 원본 그레이스케일 이미지의 실제 바코드들에 대응한다.
본 명세서에 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 모듈들 또는 컴포넌트들로서 개시되는 임의의 피쳐들은 집적 로직 디바이스에 함께, 또는 별개이지만 상호 정보 교환이 가능한 로직 디바이스들로서 개별적으로 구현될 수 있다. 소프트웨어로 구현된다면, 기술들은 실행시 상기 개시되는 방법들 중 하나 이상을 수행하는 명령들을 포함하는 컴퓨터-판독가능 매체에 의하여 적어도 부분적으로 실현될 수 있다. 컴퓨터-판독가능 매체는 패키징 물질들을 포함할 수 있는 컴퓨터 프로그램 물건의 일부를 형성할 수 있다. 컴퓨터-판독가능 매체는 동기 동적 랜덤 액세스 메모리(SDRAM)와 같은 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 비휘발성 랜덤 액세스 메모리(NVRAM), 전기적으로 소거 가능한 프로그래밍 가능 판독 전용 메모리(EEPROM), FLASH 메모리, 자기 또는 광학 데이터 저장 매체 등을 포함할 수 있다. 기술들은 또한 적어도 부분적으로 명령들 또는 데이터 구조들의 형태로 코드를 전달 또는 통신하고 컴퓨터에 의하여 액세스, 판독 및/또는 실행될 수 있는 컴퓨터-판독가능 통신 매체에 의하여 실현될 수 있다.
코드는 하나 이상의 DSP들, 범용 마이크로프로세서들, ASIC들, 필드 프로그램가능 로직 어레이(FPGA)들, 또는 다른 등가 집적 또는 이산 로직 회로와 같은 하나 이상의 프로세서에 의해 실행될 수 있다. 따라서, 본 명세서에서 사용될 때 "프로세서"라는 용어는 전술한 구조들 중 임의의 것, 또는 본 명세서에 개시된 기술들의 구현에 적합한 임의의 다른 구조를 지칭할 수 있다. 또한, 본 명세서에 개시되는 기능은 인코딩 및 디코딩을 위해 구성된 전용 소프트웨어 모듈이나 하드웨어 모듈 내에 제공될 수도 있고, 또는 조합된 비디오 인코더-디코더(CODEC)에 통합될 수도 있다. 이런 이유로, 본 명세서는 또한 본 명세서에 개시되는 기술들 중 하나 이상을 구현하기 위한 회로를 포함하는 다양한 집적 회로 디바이스들 중 임의의 것을 고려한다. 그러한 회로는 하나의 집적 회로 칩 또는 다수의 공동 사용가능한 집적 회로 칩들에 제공될 수 있다.
다양한 양상들이 설명되었다. 이러한 그리고 다른 양상들은 하기의 청구항들의 범위 내에 존재한다.

Claims (38)

  1. 관심 장면(scene of interest)의 디지털 이미지 내에 에지들로서 강도 전환 임계치를 초과하는 강도의 전환들을 식별하는 단계;
    저 강도 영역들로서 강도 임계치 미만의 휘도 강도를 갖는 상기 디지털 이미지의 영역들을 식별하는 단계;
    저 강도 영역들의 고농도를 나타내는 상기 이미지 내의 저 강도 위치들을 식별하는 단계; 및
    상기 식별된 에지들 및 상기 식별된 저 강도 위치들에 기초하여 상기 디지털 이미지 내에 바코드를 검출하는 단계를 포함하는,
    이미지 프로세싱 방법.
  2. 제1항에 있어서,
    상기 디지털 이미지 내에 상기 바코드를 검출하는 단계는 공간적으로 동시에 상기 식별된 에지들 및 상기 식별된 저 강도 영역들을 포함하는 상기 디지털 이미지 내의 위치에서 상기 바코드를 검출하는 단계를 포함하는, 이미지 프로세싱 방법.
  3. 제2항에 있어서,
    상기 공간적으로 동시에 상기 식별된 에지들 및 상기 식별된 저 강도 영역들을 포함하는 상기 디지털 이미지 내의 위치에서 상기 바코드를 검출하는 단계는,
    적어도 하나의 형태학적 연산을 사용하여 상기 식별된 에지들의 고농도를 나타내는 상기 이미지 내의 위치들을 식별하는 단계;
    적어도 하나의 형태학적 연산을 사용하여 상기 저 강도 위치들을 식별하는 단계; 및
    상기 식별된 에지들의 고농도와 상기 저 강도 위치들 모두를 나타내는 상기 디지털 이미지 내의 위치에서 상기 바코드를 검출하는 단계를 더 포함하는,
    이미지 프로세싱 방법.
  4. 제3항에 있어서,
    상기 적어도 하나의 형태학적 연산은 팽창(dilation), 부식(erosion), 개방(opening) 및 폐쇄(closing) 중 적어도 하나를 포함하는, 이미지 프로세싱 방법.
  5. 제2항에 있어서,
    상기 디지털 이미지 내의 상기 식별된 에지들을 나타내는 에지 맵을 생성하는 단계;
    상기 디지털 이미지 내의 상기 식별된 저 강도 영역들을 나타내는 저 강도 맵을 생성하는 단계; 및
    결합된 이미지를 생성하기 위하여 상기 에지 맵 및 상기 저 강도 맵을 결합하는 단계
    를 더 포함하며, 상기 디지털 이미지 내에 상기 바코드를 검출하는 단계는 상기 결합된 이미지에 기초하여 상기 디지털 이미지 내에 상기 바코드를 검출하는 단계를 포함하는, 이미지 프로세싱 방법.
  6. 제5항에 있어서,
    공간적으로 동시에 상기 식별된 에지들 및 상기 식별된 저 강도 영역들을 포함하는 상기 이미지 내의 적어도 하나의 위치를 생성하기 위하여 상기 결합된 이미지상에 하나 이상의 형태학적 연산들을 수행하는 단계를 더 포함하는, 이미지 프로세싱 방법.
  7. 제1항에 있어서, 상기 이미지 내에 상기 바코드를 검출하는 단계는,
    공간적으로 동시에 상기 식별된 에지들 및 상기 식별된 저 강도 영역들을 포함하는 상기 이미지 내의 위치를 식별하는 단계;
    상기 위치가 하나 이상의 바코드 기준을 충족시킬 때, 상기 식별된 위치가 바코드일 수 있는 후보 위치인 것을 결정하는 단계; 및
    상기 식별된 위치에서 상기 관심 장면이 고유 바코드 피쳐(feature)를 포함할 때, 상기 식별된 위치는 바코드인 것을 결정하는 단계
    를 포함하는, 이미지 프로세싱 방법.
  8. 제7항에 있어서,
    상기 식별된 위치가 바코드일 수 있는 후보 위치인 것을 결정하는 단계는 상기 식별된 위치의 형태, 상기 식별된 위치의 크기, 및 상기 식별된 위치의 필 팩터(fill factor) 중 적어도 하나에 기초하여 상기 식별된 위치가 바코드일 수 있는 후보 위치인 것을 결정하는 단계를 포함하는, 이미지 프로세싱 방법.
  9. 제7항에 있어서,
    상기 식별된 위치에서 상기 관심 장면이 고유 바코드 피쳐를 포함할 때, 상기 식별된 위치는 바코드인 것을 결정하는 단계는 상기 식별된 위치에서 상기 관심 장면 내에 바코드 파인더(finder) 패턴을 검출시, 상기 식별된 위치가 바코드인 것을 결정하는 단계를 포함하는, 이미지 프로세싱 방법.
  10. 관심 장면의 디지털 이미지 내에 에지들로서 강도 전환 임계치를 초과하는 강도의 전환들을 식별하고, 저 강도 영역들로서 강도 임계치 미만의 휘도 강도를 갖는 상기 디지털 이미지의 영역들을 식별하며, 저 강도 영역들의 고농도를 나타내는 상기 이미지 내의 저 강도 위치들을 식별하고, 상기 식별된 에지들 및 상기 식별된 저 강도 위치들에 기초하여 상기 디지털 이미지 내에 바코드를 검출하는 바코드 검출 모듈을 포함하는 프로세서를 포함하는, 이미지 프로세싱 장치.
  11. 제10항에 있어서,
    상기 바코드 검출 모듈은 공간적으로 동시에 상기 식별된 에지들 및 상기 식별된 저 강도 영역들을 포함하는 상기 디지털 이미지 내의 위치에서 상기 바코드를 검출하는, 이미지 프로세싱 장치.
  12. 제11항에 있어서,
    상기 바코드 검출 모듈은, 적어도 하나의 형태학적 연산을 사용하여 상기 식별된 에지들의 고농도를 나타내는 상기 이미지 내의 위치들을 식별하고, 적어도 하나의 형태학적 연산을 사용하여 상기 저 강도 위치들을 식별하며, 상기 식별된 에지들의 고농도와 상기 저 강도 위치들 모두를 나타내는 상기 디지털 이미지 내의 위치에서 상기 바코드를 검출하는, 이미지 프로세싱 장치.
  13. 제12항에 있어서,
    상기 적어도 하나의 형태학적 연산은 팽창, 부식, 개방, 및 폐쇄 중 적어도 하나를 포함하는, 이미지 프로세싱 장치.
  14. 제11항에 있어서,
    상기 바코드 검출 모듈은, 상기 디지털 이미지 내의 상기 식별된 에지들을 나타내는 에지 맵을 생성하고, 상기 디지털 이미지 내의 상기 식별된 저 강도 영역들을 나타내는 저 강도 맵을 생성하고, 결합된 이미지를 생성하기 위하여 상기 에지 맵 및 상기 저 강도 맵을 결합하며, 상기 결합된 이미지에 기초하여 상기 디지털 이미지 내의 상기 바코드를 검출하는, 이미지 프로세싱 장치.
  15. 제14항에 있어서,
    상기 바코드 검출 모듈은 공간적으로 동시에 상기 식별된 에지들 및 상기 식별된 저 강도 영역들을 포함하는 상기 이미지 내의 적어도 하나의 위치를 생성하기 위하여 상기 결합된 이미지상에 하나 이상의 형태학적 연산들을 수행하는, 이미지 프로세싱 장치.
  16. 제10항에 있어서,
    상기 바코드 검출 모듈은, 공간적으로 동시에 상기 식별된 에지들 및 상기 식별된 저 강도 영역들을 포함하는 상기 이미지 내의 위치를 식별하고, 상기 위치가 하나 이상의 바코드 기준을 충족시킬 때, 상기 식별된 위치가 바코드일 수 있는 후보 위치인 것을 결정하며, 상기 식별된 위치에서 상기 관심 장면이 고유 바코드 피쳐를 포함할 때, 상기 식별된 위치는 바코드인 것을 결정하는, 이미지 프로세싱 장치.
  17. 제16항에 있어서,
    상기 바코드 검출 모듈은 상기 식별된 위치의 형태, 상기 식별된 위치의 크기, 및 상기 식별된 위치의 필 팩터 중 적어도 하나에 기초하여 상기 식별된 위치가 바코드일 수 있는 후보 위치인 것을 결정하는, 이미지 프로세싱 장치.
  18. 제16항에 있어서,
    상기 바코드 검출 모듈은 상기 식별된 위치에서 상기 관심 장면 내에 바코드 파인더 패턴을 검출시, 상기 식별된 위치가 바코드인 것을 결정하는, 이미지 프로세싱 장치.
  19. 제10항에 있어서,
    상기 장치는 무선 통신 장치를 포함하는, 이미지 프로세싱 장치.
  20. 제10항에 있어서,
    상기 장치는 집적 회로 장치를 포함하는, 이미지 프로세싱 장치.
  21. 이미지 프로세싱을 위한 컴퓨터-판독가능 매체로서,
    프로세서로 하여금,
    관심 장면의 디지털 이미지 내에 에지들로서 강도 전환 임계치를 초과하는 강도의 전환들을 식별하고;
    저 강도 영역들로서 강도 임계치 미만의 휘도 강도를 갖는 상기 디지털 이미지의 영역들을 식별하며;
    저 강도 영역들의 고농도를 나타내는 상기 이미지 내의 저 강도 위치들을 식별하고; 그리고
    상기 식별된 에지들 및 상기 식별된 저 강도 위치들에 기초하여 상기 디지털 이미지 내에 바코드를 검출하게
    하기 위한 명령들을 포함하는, 이미지 프로세싱을 위한 컴퓨터-판독가능 매체.
  22. 제21항에 있어서,
    상기 프로세서로 하여금 상기 디지털 이미지 내에 바코드를 검출하게 하기 위한 명령들은 상기 프로세서로 하여금 공간적으로 동시에 상기 식별된 에지들 및 상기 식별된 저 강도 영역들을 포함하는 상기 디지털 이미지 내의 위치에서 상기 바코드를 검출하게 하기 위한 명령들을 포함하는, 이미지 프로세싱을 위한 컴퓨터-판독가능 매체.
  23. 제22항에 있어서, 상기 프로세서로 하여금 공간적으로 동시에 상기 식별된 에지들 및 상기 식별된 저 강도 위치들을 포함하는 상기 디지털 이미지 내의 위치에서 상기 바코드를 검출하게 하기 위한 명령들은, 상기 프로세서로 하여금,
    적어도 하나의 형태학적 연산을 사용하여 상기 식별된 에지들의 고농도를 나타내는 상기 이미지 내의 위치들을 식별하고;
    적어도 하나의 형태학적 연산을 사용하여 상기 저 강도 위치들을 식별하며; 그리고
    상기 식별된 에지들의 고농도와 상기 식별된 저 강도 위치들의 고농도 모두를 나타내는 상기 디지털 이미지 내의 위치에서 상기 바코드를 검출하게
    하기 위한 명령들을 더 포함하는, 이미지 프로세싱을 위한 컴퓨터-판독가능 매체.
  24. 제23항에 있어서,
    상기 적어도 하나의 형태학적 연산은 팽창, 부식, 개방, 및 폐쇄 중 적어도 하나를 포함하는, 이미지 프로세싱을 위한 컴퓨터-판독가능 매체.
  25. 제22항에 있어서, 상기 프로세서로 하여금,
    상기 디지털 이미지 내의 상기 식별된 에지들을 나타내는 에지 맵을 생성하고;
    상기 디지털 이미지 내의 상기 식별된 저 강도 영역들을 나타내는 저 강도 맵을 생성하고;
    결합된 이미지를 생성하기 위하여 상기 에지 맵 및 상기 저 강도 맵을 결합하게
    하기 위한 명령들을 더 포함하며, 상기 프로세서로 하여금 상기 디지털 이미지 내의 상기 바코드를 검출하게 하기 위한 명령들은 상기 프로세서로 하여금 상기 결합된 이미지에 기초하여 상기 디지털 이미지 내의 상기 바코드를 검출하게 하기 위한 명령들을 포함하는, 이미지 프로세싱을 위한 컴퓨터-판독가능 매체.
  26. 제25항에 있어서,
    상기 프로세서로 하여금 상기 바코드 검출 모듈은 공간적으로 동시에 상기 식별된 에지들 및 상기 식별된 저 강도 영역들을 포함하는 상기 이미지 내의 적어도 하나의 위치를 생성하기 위하여 상기 결합된 이미지상에 하나 이상의 형태학적 연산들을 수행하게 하기 위한 명령들을 더 포함하는, 이미지 프로세싱을 위한 컴퓨터-판독가능 매체.
  27. 제21항에 있어서, 상기 프로세서로 하여금 상기 식별된 에지들 및 상기 식별된 저 강도 영역들에 기초하여 상기 디지털 이미지 내에 바코드를 검출하게 하기 위한 명령들은, 상기 프로세서로 하여금,
    공간적으로 동시에 상기 식별된 에지들 및 상기 식별된 저 강도 영역들을 포함하는 상기 이미지 내의 위치를 식별하고;
    상기 위치가 하나 이상의 바코드 기준을 충족시킬 때, 상기 식별된 위치가 바코드일 수 있는 후보 위치인 것을 결정하며; 그리고
    상기 식별된 위치에서 상기 관심 장면이 고유 바코드 피쳐를 포함할 때, 상기 식별된 위치는 바코드인 것을 결정하게
    하기 위한 명령들을 포함하는, 이미지 프로세싱을 위한 컴퓨터-판독가능 매체.
  28. 제27항에 있어서,
    상기 프로세서로 하여금 상기 식별된 위치가 바코드일 수 있는 후보 위치인 것을 결정하게 하기 위한 명령들은 상기 프로세서로 하여금 상기 바코드 검출 모듈은 상기 식별된 위치의 형태, 상기 식별된 위치의 크기, 및 상기 식별된 위치의 필 팩터 중 적어도 하나에 기초하여 상기 식별된 위치가 바코드일 수 있는 후보 위치인 것을 결정하게 하기 위한 명령들을 포함하는, 이미지 프로세싱을 위한 컴퓨터-판독가능 매체.
  29. 제27항에 있어서,
    상기 프로세서가 상기 식별된 위치에서 상기 관심 장면이 고유 바코드 피쳐를 포함할 때, 상기 식별된 위치는 바코드인 것을 결정하게 하기 위한 명령들은 상기 프로세서가 상기 바코드 검출 모듈은 상기 식별된 위치에서 상기 관심 장면 내에 바코드 파인더 패턴을 검출시, 상기 식별된 위치가 바코드인 것을 결정하게 하기 위한 명령들을 포함하는, 이미지 프로세싱을 위한 컴퓨터-판독가능 매체.
  30. 관심 장면의 디지털 이미지 내에 에지들로서 강도 전환 임계치를 초과하는 강도의 전환들을 식별하기 위한 수단;
    저 강도 영역들로서 강도 임계치 미만의 휘도 강도를 갖는 상기 디지털 이미지의 영역들을 식별하기 위한 수단;
    저 강도 영역들의 고농도를 나타내는 상기 이미지 내의 저 강도 위치들을 식별하기 위한 수단; 및
    상기 식별된 에지들 및 상기 식별된 저 강도 위치들에 기초하여 상기 디지털 이미지 내에 바코드를 검출하기 위한 수단
    을 포함하는, 이미지 프로세싱 장치.
  31. 제30항에 있어서,
    상기 검출 수단은 공간적으로 동시에 상기 식별된 에지들 및 상기 식별된 저 강도 영역들을 포함하는 상기 디지털 이미지 내의 위치에서 상기 바코드를 검출하는, 이미지 프로세싱 장치.
  32. 제31항에 있어서,
    적어도 하나의 형태학적 연산을 사용하여 상기 식별된 에지들의 고농도를 나타내는 상기 이미지 내의 위치들을 식별하기 위한 수단; 및
    적어도 하나의 형태학적 연산을 사용하여 상기 저 강도 위치들을 식별하기 위한 수단
    을 더 포함하며, 상기 검출 수단은 상기 식별된 에지들의 고농도와 상기 식별된 저 강도 위치들의 고농도 모두를 나타내는 상기 디지털 이미지 내의 위치에서 상기 바코드를 검출하는, 이미지 프로세싱 장치.
  33. 제32항에 있어서,
    상기 적어도 하나의 형태학적 연산은 팽창, 부식, 개방, 및 폐쇄 중 적어도 하나를 포함하는, 이미지 프로세싱 장치.
  34. 제31항에 있어서,
    상기 디지털 이미지 내의 상기 식별된 에지들을 나타내는 에지 맵을 생성하기 위한 수단;
    상기 디지털 이미지 내의 상기 식별된 저 강도 영역들을 나타내는 저 강도 맵을 생성하기 위한 수단; 및
    결합된 이미지를 생성하기 위하여 상기 에지 맵 및 상기 저 강도 맵을 결합하기 위한 수단
    을 더 포함하며, 상기 검출 수단은 상기 결합된 이미지에 기초하여 상기 디지털 이미지 내의 상기 바코드를 검출하는, 이미지 프로세싱 장치.
  35. 제34항에 있어서,
    공간적으로 동시에 상기 식별된 에지들 및 상기 식별된 저 강도 영역들을 포함하는 상기 이미지 내의 적어도 하나의 위치를 생성하기 위하여 상기 결합된 이미지상에 하나 이상의 형태학적 연산들을 수행하기 위한 수단을 더 포함하는, 이미지 프로세싱 장치.
  36. 제30항에 있어서,
    상기 검출 수단은, 공간적으로 동시에 상기 식별된 에지들 및 상기 식별된 저 강도 영역들을 포함하는 상기 이미지 내의 위치를 식별하고, 상기 위치가 하나 이상의 바코드 기준을 충족시킬 때, 상기 식별된 위치가 바코드일 수 있는 후보 위치인 것을 결정하며, 상기 식별된 위치에서 상기 관심 장면이 고유 바코드 피쳐를 포함할 때, 상기 식별된 위치는 바코드인 것을 결정하는, 이미지 프로세싱 장치.
  37. 제36항에 있어서,
    상기 검출 수단은 상기 식별된 위치의 형태, 상기 식별된 위치의 크기, 및 상기 식별된 위치의 필 팩터 중 적어도 하나에 기초하여 상기 식별된 위치가 바코드일 수 있는 후보 위치인 것을 결정하는, 이미지 프로세싱 장치.
  38. 제36항에 있어서,
    상기 검출 수단은 상기 식별된 위치에서 상기 관심 장면 내에 바코드 파인더 패턴을 검출시, 상기 식별된 위치가 바코드인 것을 결정하는, 이미지 프로세싱 장치.
KR1020107021320A 2008-02-22 2009-02-21 형태학적 연산들에 기초한 바코드 검출 KR101169872B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/035,653 US8366004B2 (en) 2008-02-22 2008-02-22 Barcode detection based on morphological operations
US12/035,653 2008-02-22
PCT/US2009/034799 WO2009105731A1 (en) 2008-02-22 2009-02-21 Barcode detection based on morphological operations

Publications (2)

Publication Number Publication Date
KR20100123739A KR20100123739A (ko) 2010-11-24
KR101169872B1 true KR101169872B1 (ko) 2012-07-31

Family

ID=40467305

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107021320A KR101169872B1 (ko) 2008-02-22 2009-02-21 형태학적 연산들에 기초한 바코드 검출

Country Status (7)

Country Link
US (1) US8366004B2 (ko)
EP (1) EP2093696B1 (ko)
JP (1) JP5265709B2 (ko)
KR (1) KR101169872B1 (ko)
CN (1) CN101911095B (ko)
TW (1) TW200943191A (ko)
WO (1) WO2009105731A1 (ko)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4442624B2 (ja) * 2006-06-22 2010-03-31 株式会社デンソーウェーブ 光学情報読取装置
US8570393B2 (en) * 2007-11-30 2013-10-29 Cognex Corporation System and method for processing image data relative to a focus of attention within the overall image
US8596541B2 (en) * 2008-02-22 2013-12-03 Qualcomm Incorporated Image capture device with integrated barcode scanning
US9189670B2 (en) * 2009-02-11 2015-11-17 Cognex Corporation System and method for capturing and detecting symbology features and parameters
US20110073657A1 (en) * 2009-09-30 2011-03-31 Miroslav Trajkovic Method and apparatus for detecting a barcode
TWI415017B (zh) * 2009-12-30 2013-11-11 Inventec Appliances Corp 銷售時點管理裝置
JP4724801B1 (ja) * 2010-07-30 2011-07-13 株式会社シフト 二次元コードリーダおよびプログラム
JP4724802B1 (ja) * 2010-07-30 2011-07-13 株式会社シフト 二次元コードリーダおよびプログラム
US9329966B2 (en) 2010-11-23 2016-05-03 Echostar Technologies L.L.C. Facilitating user support of electronic devices using matrix codes
US9792612B2 (en) 2010-11-23 2017-10-17 Echostar Technologies L.L.C. Facilitating user support of electronic devices using dynamic matrix code generation
US8386339B2 (en) 2010-11-23 2013-02-26 Echostar Technologies L.L.C. Ordering via dynamic matrix code generation
CA2818757C (en) 2010-11-24 2019-12-03 Echostar Technologies Llc Tracking user interaction from a receiving device
US8439257B2 (en) 2010-12-01 2013-05-14 Echostar Technologies L.L.C. User control of the display of matrix codes
US9280515B2 (en) 2010-12-03 2016-03-08 Echostar Technologies L.L.C. Provision of alternate content in response to QR code
US8886172B2 (en) 2010-12-06 2014-11-11 Echostar Technologies L.L.C. Providing location information using matrix code
US20120151293A1 (en) * 2010-12-09 2012-06-14 Echostar Technologies L.L.C. Sequenced Two-Dimensional Codes in Video
US8875173B2 (en) 2010-12-10 2014-10-28 Echostar Technologies L.L.C. Mining of advertisement viewer information using matrix code
US8640956B2 (en) 2010-12-17 2014-02-04 Echostar Technologies L.L.C. Accessing content via a matrix code
US9596500B2 (en) 2010-12-17 2017-03-14 Echostar Technologies L.L.C. Accessing content via a matrix code
US9148686B2 (en) 2010-12-20 2015-09-29 Echostar Technologies, Llc Matrix code-based user interface
US8856853B2 (en) 2010-12-29 2014-10-07 Echostar Technologies L.L.C. Network media device with code recognition
US8408466B2 (en) 2011-01-04 2013-04-02 Echostar Technologies L.L.C. Assisting matrix code capture by signaling matrix code readers
US8292166B2 (en) 2011-01-07 2012-10-23 Echostar Technologies L.L.C. Performing social networking functions using matrix codes
JP5750897B2 (ja) * 2011-01-14 2015-07-22 富士ゼロックス株式会社 電子筆記具及びプログラム
US8534540B2 (en) 2011-01-14 2013-09-17 Echostar Technologies L.L.C. 3-D matrix barcode presentation
US8786410B2 (en) 2011-01-20 2014-07-22 Echostar Technologies L.L.C. Configuring remote control devices utilizing matrix codes
US8553146B2 (en) 2011-01-26 2013-10-08 Echostar Technologies L.L.C. Visually imperceptible matrix codes utilizing interlacing
US8468610B2 (en) 2011-01-27 2013-06-18 Echostar Technologies L.L.C. Determining fraudulent use of electronic devices utilizing matrix codes
US8430302B2 (en) 2011-02-03 2013-04-30 Echostar Technologies L.L.C. Enabling interactive activities for content utilizing matrix codes
US9571888B2 (en) 2011-02-15 2017-02-14 Echostar Technologies L.L.C. Selection graphics overlay of matrix code
US8511540B2 (en) 2011-02-18 2013-08-20 Echostar Technologies L.L.C. Matrix code for use in verification of data card swap
US8931031B2 (en) 2011-02-24 2015-01-06 Echostar Technologies L.L.C. Matrix code-based accessibility
US9367669B2 (en) 2011-02-25 2016-06-14 Echostar Technologies L.L.C. Content source identification using matrix barcode
US9736469B2 (en) 2011-02-28 2017-08-15 Echostar Technologies L.L.C. Set top box health and configuration
US8443407B2 (en) 2011-02-28 2013-05-14 Echostar Technologies L.L.C. Facilitating placeshifting using matrix code
US8550334B2 (en) 2011-02-28 2013-10-08 Echostar Technologies L.L.C. Synching one or more matrix codes to content related to a multimedia presentation
US8833640B2 (en) 2011-02-28 2014-09-16 Echostar Technologies L.L.C. Utilizing matrix codes during installation of components of a distribution system
EP2525281B1 (en) 2011-05-20 2019-01-02 EchoStar Technologies L.L.C. Improved progress bar
US8596523B2 (en) * 2011-07-28 2013-12-03 Intellectual Ventures Fund 83 Llc Index print with machine-readable codes
US9111186B2 (en) 2011-10-12 2015-08-18 University Of Rochester Color barcodes for mobile applications: a per channel framework
CA2845498C (en) * 2011-10-19 2015-02-03 Knova Web Technologies Inc. Method for automatically tagging documents with matrix barcodes and providing access to a plurality of said document versions
US9262660B2 (en) * 2011-11-07 2016-02-16 Honeywell Scanning & Mobility Optical indicia reading terminal with color image sensor
KR102059359B1 (ko) * 2012-11-13 2019-12-26 삼성전자주식회사 디스플레이 장치, 디스플레이 장치의 동작 방법 및 제조 방법
KR101427715B1 (ko) * 2012-12-31 2014-08-07 아주대학교산학협력단 큐알 코드 인식 장치 및 방법
KR20140108749A (ko) * 2013-02-27 2014-09-15 한국전자통신연구원 프라이버시 보호형 문서 인증 정보 생성 장치 및 이를 이용한 프라이버시 보호형 문서 인증 방법
KR102209729B1 (ko) * 2014-04-04 2021-01-29 삼성전자주식회사 인식 영역에 기반하여 콘텐트를 검출하는 전자 장치 및 방법
WO2016114788A1 (en) * 2015-01-16 2016-07-21 Hewlett Packard Enterprise Development Lp Video encoder
KR101587501B1 (ko) * 2015-07-17 2016-01-22 주식회사 디지마크 식별 코드 이미지를 이용한 객체 진위 여부 확인 방법 및 이를 실행하는 장치
US10331928B2 (en) 2015-11-06 2019-06-25 International Business Machines Corporation Low-computation barcode detector for egocentric product recognition
NL2016099B1 (en) * 2016-01-14 2017-07-24 Opticon Sensors Europe B V Method and device for detecting an inventory in a storage space.
KR101997048B1 (ko) * 2017-04-17 2019-07-05 엔피씨(주) 물류 관리를 위한 원거리 다수의 코드 인식 방법 및 이를 이용한 코드 인식 장치
CN107679437B (zh) * 2017-09-26 2021-08-03 四川元匠科技有限公司 基于Zbar的条形码图像识别方法
CN107875638A (zh) * 2017-11-24 2018-04-06 宁波隆翔环保科技有限公司 一种游戏小汽车
CN108108646B (zh) * 2017-12-29 2022-04-22 Tcl王牌电器(惠州)有限公司 条码信息识别方法、终端和计算机可读存储介质
US11126808B1 (en) * 2019-05-30 2021-09-21 Owens-Brockway Glass Container Inc. Methods for dot code image processing on a glass container
WO2021044480A1 (ja) * 2019-09-02 2021-03-11 富士通フロンテック株式会社 印刷システム、印刷制御方法、情報処理装置及び印刷制御プログラム
WO2021086766A2 (en) 2019-11-01 2021-05-06 Corning Incorporated Prism-coupling systems and methods with improved intensity transition position detection and tilt compensation
KR102166301B1 (ko) * 2019-11-29 2020-10-15 서동환 객체 인식 방법 및 장치
CN111191480B (zh) * 2019-12-30 2023-08-29 广东旭龙物联科技股份有限公司 一种基于一阶差分的包络线搜索条码边界的方法及装置
CN111222356A (zh) * 2020-01-14 2020-06-02 河北省烟草公司沧州市公司 图像识别方法、扫码方法、扫码终端和商品销售管理系统
CN111241862B (zh) * 2020-01-21 2023-06-02 西安邮电大学 基于边缘特性的条形码定位方法
CN111797645A (zh) * 2020-07-08 2020-10-20 北京京东振世信息技术有限公司 用于识别条形码的方法和装置
DE102020130929A1 (de) 2020-07-31 2022-02-03 Technische Universität Dortmund Verfahren und Vorrichtung zur Auswertung von Matrixcodes
US11734531B2 (en) 2020-10-20 2023-08-22 Hand Held Products, Inc. Methods and systems of harvesting data for training machine learning (ML) model
TWI796822B (zh) * 2021-11-03 2023-03-21 宏碁股份有限公司 圖像顯示處理方法及圖像顯示處理系統

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4958064A (en) 1989-01-30 1990-09-18 Image Recognition Equipment Corporation Bar code locator for video scanner/reader system
US5120940A (en) * 1990-08-10 1992-06-09 The Boeing Company Detection of barcodes in binary images with arbitrary orientation
US5821523A (en) * 1992-03-12 1998-10-13 Bunte; Alan G. Combined code reader and digital camera using a common photodetector
JP3233981B2 (ja) * 1992-05-26 2001-12-04 オリンパス光学工業株式会社 シンボル情報読取装置
US5698833A (en) * 1996-04-15 1997-12-16 United Parcel Service Of America, Inc. Omnidirectional barcode locator
US6366696B1 (en) * 1996-12-20 2002-04-02 Ncr Corporation Visual bar code recognition method
US6173893B1 (en) * 1997-04-16 2001-01-16 Intermec Corporation Fast finding algorithm for two-dimensional symbologies
JPH11306344A (ja) * 1998-04-16 1999-11-05 Fuji Photo Film Co Ltd 画像処理方法および装置
US6585159B1 (en) * 1999-11-02 2003-07-01 Welch Allyn Data Collection, Inc. Indicia sensor system for optical reader
US6941026B1 (en) * 2000-06-13 2005-09-06 Cognex Corporation Method and apparatus using intensity gradients for visual identification of 2D matrix symbols
WO2002016185A1 (en) * 2000-08-18 2002-02-28 Magline, Inc. Rapidly demountable multiple platform utility cart assembly and methods of making and operating it
US7490774B2 (en) * 2003-11-13 2009-02-17 Metrologic Instruments, Inc. Hand-supportable imaging based bar code symbol reader employing automatic light exposure measurement and illumination control subsystem integrated therein
US6832729B1 (en) * 2001-03-23 2004-12-21 Zih Corp. Portable data collection device for reading fluorescent indicia
US7058233B2 (en) * 2001-05-30 2006-06-06 Mitutoyo Corporation Systems and methods for constructing an image having an extended depth of field
JP2003032541A (ja) * 2001-07-17 2003-01-31 Canon Inc 画像処理装置及びシステム
JP2003110832A (ja) * 2001-09-27 2003-04-11 Fuji Photo Film Co Ltd 画像合成方法および装置並びにプログラム
JP4163406B2 (ja) * 2001-09-28 2008-10-08 シャープ株式会社 バーコード認識装置
SE0103286L (sv) 2001-10-03 2003-04-04 Anoto Ab Optisk sensoranordning och förfarande för att reglera dess exponeringstid
US6708884B1 (en) * 2002-06-25 2004-03-23 The United States Of America As Represented By The Secretary Of The Army Method and apparatus for rapid and precision detection of omnidirectional postnet barcode location
JP4301775B2 (ja) 2002-07-18 2009-07-22 シャープ株式会社 2次元コード読み取り装置,2次元コード読み取り方法,2次元コード読み取りプログラム及び該プログラムの記録媒体
TW562376U (en) * 2002-10-21 2003-11-11 Etoms Electronics Corp A CMOS image sensor single chip integrated with RF transmitter
US7156311B2 (en) * 2003-07-16 2007-01-02 Scanbuy, Inc. System and method for decoding and analyzing barcodes using a mobile device
US7328847B1 (en) * 2003-07-30 2008-02-12 Hewlett-Packard Development Company, L.P. Barcode data communication methods, barcode embedding methods, and barcode systems
US20050203854A1 (en) * 2004-02-23 2005-09-15 Pitney Bowes Incorporated Method and system for using a camera cell phone in transactions
FI20040858A (fi) 2004-06-18 2005-12-19 Valtion Teknillinen Menetelmä koodin tunnistamiseksi matkaviestimen avulla ja matkaviestin
US7172124B2 (en) * 2005-03-10 2007-02-06 Microsoft Corporation Camera-based barcode recognition
US7273177B2 (en) * 2005-03-10 2007-09-25 Microsoft Corporation Camera-based barcode recognition
US7780089B2 (en) * 2005-06-03 2010-08-24 Hand Held Products, Inc. Digital picture taking optical reader having hybrid monochrome and color image sensor array
US7475823B2 (en) * 2006-05-26 2009-01-13 Symbol Technologies, Inc. Hand held bar code reader with improved image capture
US7784696B2 (en) * 2006-06-09 2010-08-31 Hand Held Products, Inc. Indicia reading apparatus having image sensing and processing circuit
US7780084B2 (en) * 2007-06-29 2010-08-24 Microsoft Corporation 2-D barcode recognition
US8596541B2 (en) * 2008-02-22 2013-12-03 Qualcomm Incorporated Image capture device with integrated barcode scanning

Also Published As

Publication number Publication date
JP2011518363A (ja) 2011-06-23
US20090212112A1 (en) 2009-08-27
US8366004B2 (en) 2013-02-05
CN101911095A (zh) 2010-12-08
TW200943191A (en) 2009-10-16
EP2093696A1 (en) 2009-08-26
KR20100123739A (ko) 2010-11-24
WO2009105731A1 (en) 2009-08-27
EP2093696B1 (en) 2017-07-12
JP5265709B2 (ja) 2013-08-14
CN101911095B (zh) 2014-04-23

Similar Documents

Publication Publication Date Title
KR101169872B1 (ko) 형태학적 연산들에 기초한 바코드 검출
KR101169882B1 (ko) 통합 바코드 스캐닝을 갖는 이미지 캡쳐 장치
US8079525B1 (en) System and method for decoding barcodes captured with a color image sensor
US8584953B2 (en) System and method for decoding barcodes not easily perceptible by human vision
US7245780B2 (en) Group average filter algorithm for digital image processing
US7764835B2 (en) Method and apparatus for recognizing code
CA2764190C (en) System and method for providing sufficient illumination quality for barcodes captured with a color image sensor
US7168621B2 (en) Section based algorithm for image enhancement
JP5254361B2 (ja) カーネル融合を使用するデジタル信号パターンの検出および分類
JP2003203198A (ja) 撮像装置、撮像方法、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム
JP2007257360A (ja) 2次元コード、2次元コード読み取り装置、及び、2次元コード読み取り用プログラム
WO2021070111A1 (en) Apparatus and methods for preprocessing images having elements of interest

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 7