26
REAL-TIME BARCODE READER USING ACTIVE VISION USMAN ULLAH SHEIKH A dissertation submitted in partial fulfilment of the requirements for the award of the degree of Master of Engineering (Electrical-Electronics & Telecommunication) Faculty of Electrical Engineering Universiti Teknologi Malaysia OCTOBER, 2004

REAL-TIME BARCODE READER USING ACTIVE VISIONeprints.utm.my/id/eprint/3007/1/UsmanUllahSheikhMFKE2004.pdfMatlamat utama projek ini adalah untuk mengatasi masalah-masalah ini dengan

  • Upload
    buidat

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

REAL-TIME BARCODE READER USING ACTIVE VISION

USMAN ULLAH SHEIKH

A dissertation submitted in partial fulfilment

of the requirements for the award of the degree

of Master of Engineering

(Electrical-Electronics & Telecommunication)

Faculty of Electrical Engineering

Universiti Teknologi Malaysia

OCTOBER, 2004

iii

Specially dedicated to my family for their support and eternal love.

“If you can dream it,

you can do it”

iv

ACKNOWLEDGEMENTS

Praise to Allah, the Most Gracious and Most Merciful, Who has created the

mankind with knowledge, wisdom and power.

First of all, the author would like to express his deepest gratitude to Associate

Professor Dr. Syed Abd. Rahman Al-Attas for his continuous support, supervision

and encouragement during the course of this project. The author would not have

completed this project successfully without his assistance.

The author is thankful to Mr. Salman Ullah Sheikh, Mr. Anoop Sehgal, Mr.

Jayaseelan Marimuthu, Mr. Mohamad Nansah, Mr. Kamarul Hisham, Mr. Muftah

and Ms. Leow Pei Ling for their advice and helpful cooperation during the period of

this research. Appreciation is also acknowledged to those who have contributed

directly or indirectly in the completion of this project.

The author would also like to extend his appreciation to his family members,

for their support, patience and endless love.

v

ABSTRACT

Barcodes are commonly used with merchandise to speed up product checkout

at department stores and to keep inventory. A barcode is a machine readable code

consisting of a series of bars and spaces printed in defined ratios. The function of the

barcode scanner is to “read” the image presented by the bar code. Common handheld

scanning technologies include wands and lasers. They have some limitations such as

limited depth of field, limited life span due to mechanical wear and the barcodes

must reside on flat surfaces. Besides that, barcodes must be aligned in a proper way

for reading thus limiting the robustness of these readers. This project is aimed

towards improving these limitations, by using an active vision system. This project is

to decode the UPC-A and EAN-13 barcodes using an active vision system, consisting

of a camera and user-written software. The camera will feed the software with

continuous frames of images from the environment. These images are converted to

grayscale and some preprocessing is performed. Image is filtered (such as sharpening

and noise reduction) and converted to binary. An adaptive thresholding algorithm is

used to reduce the effects of uneven illumination. Image is then scanned horizontally,

vertically and diagonally for barcodes, thus enabling it to decode rotated barcodes.

Error correction and predictive decoding is implemented to improve the speed and

accuracy of the system. Overall system performance is benchmarked with existing

commercially available software.

vi

ABSTRAK

Kod bar digunakan secara meluas dalam urusan pembelian di pasar raya dan

juga digunakan untuk merekod inventori. Kod bar merupakan sejenis kod yang

terdiri daripada lajur and ruang dalam nisbah tertentu, dan kod ini boleh di baca oleh

mesin. Fungsi pembaca kod bar adalah untuk membaca imej kod bar yang terpapar.

Antara teknologi pembaca yang lazimnya ditemui adalah berasaskan laser dan

mempunyai beberapa kelemahan, seperti jarak pembacaan yang rendah, mudah

mengalami kerosakan mekanikal dan hanya boleh membaca pada permukaan yang

rata. Di samping itu, kod bar mestilah diaturkan dengan betul untuk tujuan

pembacaan. Matlamat utama projek ini adalah untuk mengatasi masalah-masalah ini

dengan menggunakan teknik penglihatan. Projek ini akan menguraikan kod-kod bar

UPC-A dan EAN-13 mengunakan teknik penglihatan yang mana sistem ini terdiri

daripada sebuah kamera dan aturcara. Kamera akan menghantar kerangka gambar

secara terus-menerus kepada aturcara. Gambar akan ditukar kepada skala kelabu dan

beberapa proses awalan akan dilakukan. Gambar akan ditapis untuk ditajamkan atau

untuk menghilangkan hingar dan kemudiannya ditukar kepada gambar hitam-putih.

Operasi ambang dengan penyesuaian sendiri digunakan untuk mengurangkan kesan

pencahayaan tidak sekata. Gambar kemudiannya dibaca melintang, menegak dan

menyerong supaya kod bar dalam pelbagai putaran dapat dibaca. Operasi pembetulan

kesalahan dan ramalan dalam penguraian dilaksanakan untuk meningkatkan kelajuan

dan ketepatan sistem. Prestasi keseluruhan sistem diuji dan dibandingkan dengan

aturcara-aturcara komersial.

vii

LIST OF CONTENTS

CHAPTER CONTENT PAGE

DECLARATION ii

DEDICATION iii

ACKNOWLEDGEMENTS iv

ABSTRACT v

ABSTRAK vi

LIST OF CONTENTS vii

LIST OF TABLES x

LIST OF FIGURES xi

LIST OF NOTATIONS xiv

LIST OF ABBREVIATIONS xv

LIST OF APPENDICES xvi

CHAPTER I INTRODUCTION 1

1.1 Introduction 1

1.2 Limitations of Conventional Barcode Readers 3

1.3 Objectives 5

1.4 Scope of Project 5

1.5 Project Outline 6

viii

CHAPTER II REVIEW OF LITERATURE STUDIES 8

2.1 Introduction 8

2.2 Barcode Readers 8

2.3 Vision Based Barcode Readers 10

2.3.1 Barcode Localization 10

2.3.2 Barcode Reading 12

2.4 The Anatomy of EAN-13 and UPC-A 13

2.4.1 Barcode Size and Color 15

2.4.2 Barcode Structure 16

2.4.3 Encoding 18

2.4.4 Check Digit Calculation 20

2.5.5 Decoding 21

CHAPTER II I THEORETICAL BACKGROUND 22

3.1 Introduction 22

3.2 Imaging Devices 22

3.2.1 Field of View & Angle of View 23

3.2.2 Resolution 28

3.2.3 Depth of View 29

3.2.4 Lighting 34

3.2.5 Distortion 37

3.2.5 Blurring & Motion Tearing 38

CHAPTER IV ALGORITHMS & IMPLEMENTATIONS 40

4.1 Introduction 40

4.2 Overall System Design 40

4.3 Preprocessing 41

4.3.1 Grayscaling 42

4.3.2 Filtering 43

ix

4.3.3 Thresholding 44

4.4 Decoding 48

4.4.1 Scanning 48

4.4.2 Barcode Identification & Extraction 50

4.4.3 Decoding 54

4.5 Height Extraction Algorithm 60

4.6 Program Architecture 62

CHAPTER V RESULT 75

5.1 Introduction 75

5.2 Uneven Illumination, Shadow and Glare 75

5.3 Barcode Orientation 78

5.4 Tests on Various Object Shapes 79

5.5 Multiple Barcodes in a Scene 82

5.6 Product Comparison 82

5.6.1 Recognition Rate/Accuracy 84

5.6.2 Performance Comparison 86

5.7 Discussion 88

CHAPTER VI CONCLUSION & SUMMARY 90

6.1 Summary 90

6.2 Conclusion 90

6.3 Recommendations for Future Work 91

REFERENCES 93

APPENDIX 97

x

LIST OF TABLES

TABLE TITLE PAGE

2.1 Specification for EAN-13 & UPC-A barcodes 15

2.2 Parity encoding table 20

2.3 Character encoding table 20

3.1 Approximation of FoV for various CCD sizes 27

3.2 Type of illumination for different application requirements 35

4.1 The normalization and rounding process 56

4.2 Normal barcode (left to right) 57

4.3 Flipped or mirrored barcode 57

4.4 Height extraction reference table 61

5.1 Feature comparison 83

5.2 Test of accuracy 84-85

xi

LIST OF FIGURES FIGURE TITLE PAGE

1.1 Common one-dimensional barcodes 2

1.2 Two-dimensional barcodes, (a) 3-DI and (b) Array Tag, (c)

PDF417, (d) Data Matrix, (e) MaxiCode and (f) Aztec Code

3

2.1 Shows different types of barcode readers, (a) a Pen-type reader,

(b) a Laser scanner and (c) a CCD scanner

9

2.2 (a) UPC-A barcode, (b) equivalent EAN-13 barcode, with the

first character set to zero, and (c) an EAN-13 with an additional

digit used

14

2.3 Actual sizes of EAN-13/UPC-A barcodes 16

2.4 Encoding the number ‘5’ 19

3.1 Comparison of AoV between a 25mm and a 35mm camera lens 24

3.2 Projection of AoV and FoV in the horizontal and vertical

directions

24

3.3 Projection of FoV at a distance of do 25

3.4 FoV for a (a) 35mm lens, (b) 25mm lens shows the amount of

information can be captured

26

3.5 Aspect ratio of various industry standard CCD sensors 27

3.6 Nothing smaller than the physical size of two pixels can be

resolved.

30

3.7 DoV is larger when the aperture opening is small (large f-stop) 31

3.8 DoV can be increased by adjusting the aperture 32

3.9 Insufficient DoV will cause barcodes with odd placement

unreadable

33

3.10 DoV at various object-to-lens distances for 35mm and 25mm

camera lens at f/1.3, f/2 and f/4

34

xii

3.11 Barcode inspection under (a) highly directional light source and

(b) diffuse lighting [20]

36

3.12 (a) Directional lighting, (b) diffuse lighting, (c) ring guide and

(d) diffuse axial lighting

37

3.13 Radial distortion on the KPC-S38CZV camera 38

3.14 Motion tear 39

4.1 Block diagram of project 41

4.2 Spatial filters (a) Gaussian Blur, (b)Laplacian (c) Sharpen (d)

Unsharpen Mask

43

4.3 (a) Global, (b) segmented, (c) local (Chow & Kanenko), (d) and

(e) algorithmic adaptive thresholding based on variance [23]

45

4.4 (a) Actual gray-level image, (b) manually selected global

threshold of 114, (c) global heuristic threshold, (d) local

neighborhood of 5x5 with max-min threshold (e) local

neighborhood (max-min) of 5x5 and Tg=3, (f) segment

(heuristic) of 10x10 (g) segment (heuristic) of 10x10 with

Tg=12 (h) algorithmic adaptive thresholding based on variance

47

4.5 Execution time of different thresholding methods on a 512x512

gray-level image

48

4.6 Scan directions implemented 49

4.7 Skewed barcodes at different angles, where it is picked up by

several scan lines (a) horizontal and diagonal, (b) diagonal (c)

vertical scan lines.

50

4.8 Steps to identify and extract the UPC-A and EAN-13 barcodes 51

4.9 Predictive decoding tree for character determination 59

4.10 Predictive tree to determine the symbology and the 1st character 59

4.11 Performance comparison between predictive and exhaustive

decoding

60

4.12 Height extraction state machine 61

4.13 Comparison between SISD and SIMD (MMX) architectures 63

4.14 Program screenshot 64

4.15 Program flowchart 66

4.16 Barcode detection process 67

xiii

4.17 Scanning algorithm 68

4.18 Quiet zone detection algorithm 69

4.19 Algorithm for guard bars detection 70

4.20 Checking the equality of the guard bars 71

4.21 Algorithm for obtaining the height and width of a bar 71

4.22 Algorithm for obtaining all the remaining bars of the EAN-13

and UPC-A symbologies

72

4.23 The normalization process 73

4.24 The error detection and correction process 74

5.1 Shows how adaptive local thresholding is capable of

successfully thresholding an image which is affected by severe

uneven illumination; (a) actual image affected by uneven

illumination, (b) global thresholding, (c) local thresholding

76

5.2 Glare and shadowing on a specular surface 77

5.3 Elimination of glare through local thresholding; (a) glare

affected region of a barcode, (b) missing bars due to global

thresholding, (c) local thresholding able to recover missing bars

(d) successful decoding process

78

5.4 Barcodes at different orientation (angle) 79

5.5 Barcode orientation on (a) flat surfaces, (b) along the

circumference of a cylinder or curved object, (c) along the axis

of a cylinder, and (d) on irregular surfaces

80

5.6 Barcodes on flat surfaces 80

5.7 Barcodes on the circumference of cylinders 81

5.8 Barcodes along the axis of cylinders 81

5.9 Barcodes on irregular surfaces 81

5.10 Successful detection of multiple barcodes in one scene 82

5.11 Recognition accuracy 86

5.12 Decoding time for a 512x512px color image 87

5.13 The importance of optimal thresholding 89

xiv

LIST OF NOTATIONS

a Lens aperture (f-stop)

c Diameter of circle of confusion.

di Distance from the image plane to the optical center of the lens

do Distance from the object plane to the optical center of the lens

f Focal length

H Hyperfocal distance

hccd Height of CCD in pixels

hi Height of image in millimeters

ho Height of object in millimeters

T Threshold value

Tg Global threshold value

To Threshold Convergence factor

wccd Width of CCD in pixels

wi Width of image in millimeters

wo Width of the object in millimeters

θh Vertical angle of view

θw Horizontal angle of view

xv

LIST OF ABREVIATIONS

AoV Angle of View

BMP Windows Bitmap

BPNN Back Propagation Neural Network

CCD Charge-Coupled Device

CMOS Complementary Metal Oxide Semi-Conductor

CoC Circle of Confusion

DoV Depth of View

EAN European Article Number

FF Far-Field

FoV Field of View

FPS Frames per Second

ISBN International Standard Book Number

LUT Look-up Table

MLP Multi Layer Perceptron

MMX MultiMedia eXtension

NF Near-Field

PCI Peripheral Component Interface

PDA Personal Digital Assistant

px Pixel

RBF Radial Basis Function

RGBA Red-Green- Blue-Alpha

SIMD Single Instruction Multiple Data

SSE Streaming SIMD Extensions

UPC Universal Product Code

xvi

LIST OF APPENDICES

APPENDIX TITLE PAGE

A System Specification 97

B Scan Profiles 99

C C++ Class Declaration 100

D Test Images 110

E Results 112

F Screenshots of Commercial Test Programs 117

CHAPTER I

INTRODUCTION

1.1 Introduction

Barcodes are machine readable symbols made of patterns and bars. Barcodes

are used for automatic identification and usually are used in conjunction with

databases. It is widely used in the retail industry, military, health industry, document

imaging environments, automatic storage and retrieval systems [1] and on the factory

floor. Barcodes were first introduced about 34 years ago [2]. The main intention is to

encode information in a tight place. It is also a very simple method of data entry and

data collection and is used for supply monitoring, job control and batch separation

[3]. Barcodes are very cost-effective, accurate and can pack great amount of

information [2]. The cost of printing and reading is minimal [4] and moreover, the

actual labor cost for data entry is reduced.

Different bar and space patterns are used to represent different characters.

Sets of these patterns are grouped together to form a “symbology”. There are

numerous types of barcode symbologies each having their own unique characteristics

and features. A majority of symbologies were designed to meet the needs of specific

applications or industry. For example the Universal Product Code (UPC) symbology

was designed for identifying retail and grocery items, while PostNET was designed

to encode postcodes for the US Postal Service. Generally, barcodes can be

categorized into two distinct categories;

2

a. One-Dimensional (1-D) barcodes

These barcodes encode information along one dimension with intervals of

alternating black and white color. Information is encoded in bars which

represents the barcode. The term bar refers to the rectangles with the

foreground color while spaces denote the intervals between the bars. Example

of 1-D barcodes are like the Codabar, Code 25, European Article Number

(EAN-8, EAN-13), UPC-A and PharmaCODE which are shown in Figure

1.1. 1-D barcodes differ from one another by the way the information in

encoded. Some symbologies allow encoding of both numeric and

alphanumeric characters.

24531237$23123+- 1235

Codabar

452136782

Code 25

< 1 2 4 5 6 7 8 9 >59

EAN-8

1 2 3 4 5 6 7 8 9 6 4 5 8 >

PostNET

4 35 1 2 3 3 7 8 9 5 4

EAN-13 UPC-A PharmaCODE

123456

Figure 1.1: Common one-dimensional barcodes

b. Two-Dimensional (2-D) barcodes

2-D barcodes can represent more information per area and was developed to

overcome the restricted amount of information that can be packed in 1-D

barcodes [5, 6]. 2-D barcodes represent information in two axes, creating an

area of barcode. Examples of 2-D barcodes are such as 3-DI, Array Tag [7,

8], PDF417 [6], Data Matrix, MaxiCode and Aztec Code and are shown in

Figure 1.2. Besides that, 2-D barcodes are smaller and have a lower error rate

compared to their 1-D counterpart. For instance, the PDF417 barcode has a

worst case error rate of 1 error for 10.5M characters, compared to UPC-A

which has a higher error rate of 1 error for every 394k characters. However,

3

2-D barcode requires sophisticated readers making them more costly and

unpopular in the retail industry.

(a) (b) (c) (d) (e) (f)

Figure 1.2: Two-dimensional barcodes, (a) 3-DI and (b) Array Tag, (c) PDF417, (d)

Data Matrix, (e) MaxiCode and (f) Aztec Code

1.2 Limitations of Conventional Barcode Readers

Barcodes are used extensively in many areas especially in the retail industry.

Although barcodes provide a fast and accurate method of data entry, the readers used

for this purpose have some shortcomings. Laser scanners are far the most commonly

used 1-D barcode reader. Laser scanners look at the pattern of dark and light bars and

decode a barcode, returning the string contained in them. This string is then used to

obtain additional information from a database. Several limitations of conventional

scanners are;

a. Limited depth of field

Barcodes must be placed very close to the reader for a successful reading.

This is true especially for pen type and laser readers.

b. Limited life span due to mechanical wear

Due to close contact between the reader and the barcode, the barcode reader

is likely to have a limited life span due to mechanical wear. This is also due

to the way the reader is handled by humans.

4

c. Barcodes must reside on flat surfaces

One of the biggest limitations is that most readers can only operate with

barcodes that reside on flat surfaces. Barcodes placed on curved or irregular

surfaces such as on cylinders are difficult to read.

d. Barcode alignment

Conventional barcode readers require that the barcodes are placed in a proper

alignment prior to reading. Barcodes cannot be rotated or flipped. The

success in reading a barcode depends greatly on how the barcode is aligned.

In actual application environment, proper alignment of barcodes means

human intervention, thus a fully automated system in not feasible.

e. Cost

Although there are variety of barcode readers available, models that do

provide high-end features such as low error rate and high robustness, are

often expensive.

f. Laser hazard

Because the eye focuses laser light just as it does other light, the chief danger

in working with lasers is eye damage. Therefore, laser light should not be

viewed either directly or reflected. Direct exposure to laser light should be

avoided. Laser scanners present danger if accidentally pointed into the eye.

The application of vision in many areas is much sought after due to several

advantages. Vision based barcode readers can be used when the object is far away or

when human intervention is difficult or hazardous such as in the handling of

radioactive materials. Vision systems can perform multiple things at the same time,

without changing the hardware but just by modifying the software to suit a particular

operation. In industries, vision is used to detect production defects, detect missing

components and also to obtain barcodes. All of this is performed with one vision

without the need for a dedicated hardware for every operation. Besides that, the

sources of vision such as digital cameras are becoming more common and

5

economical. With the sudden growth in consumer based digital cameras (such as in

mobile phones and Personal Digital Assistants (PDAs)), it becomes even clearer that

vision will be available to the masses in the near future, thus there is a strong

motivation to develop vision based applications.

1.3 Objectives

The main objective of this project is to develop a system comprising of a

camera and software for the purpose of capturing 1-D barcodes and decoding them in

real-time. Suitable image processing techniques must be implemented in the software

to accommodate inaccuracies or environmental changes during the acquiring process.

The project is also aimed at addressing the issues with conventional readers. Lastly,

the objective of this project is to compare the performance and robustness of the final

system with currently available vision based barcode reader technologies.

1.4 Scope of Project

The project is focused on developing a Windows based software using

Microsoft Visual C++ 6 that will perform the image processing and decoding. The

scope of the project will cover the following areas;

1. The program obtains images or frames from offline Windows

Bitmap (BMP) files or in real-time from a camera or framegrabber

that is interfaced to the system.

2. The program developed must be able to decode two 1-D

symbologies, the UPC-A and EAN-13.

3. It is also the aim of the project that the program is able to decode

barcodes in various alignments, on different surfaces and in various

environment conditions.

6

4. Finally, the algorithms must be fast and efficient so that it can be

applied in real-time applications. It is the target of the project that

the final program is able to perform detection at a rate of 20 frames

per second (FPS).

1.5 Project Outline

The project is organized into six chapters. The outline is as follows;

Chapter 1-Introduction

This chapter discusses the objectives and scope of the project and gives a

general introduction to barcode technology.

Chapter 2-Review of Literature Studies

This chapter reviews the relevant literature and previous work regarding

vision based barcode readers. In addition to that, the anatomy of EAN-13 and

UPC-A symbologies are given.

Chapter 3-Theoritical Background

Chapter 3 elaborates on the principles behind good quality image acquisition

and the factors that must be taken into consideration to obtain readable

barcodes. This includes lens selection, determination of field of view, and

depth of view.

Chapter 4- Algorithms & Implementation

All the preprocessing executed prior to detection is explained in this chapter.

The algorithms to initiate barcode detection and decoding are also described

and justified in this chapter.

7

Chapter 5-Result

The final results of this project are shown and discussed in this chapter.

Chapter 6-Conclusion

Chapter 6 consists of conclusion and suggestions for future improvement.

REFERENCES

1. Thota Sriram, K. Vishwanata Rao, S. Biswas and Basheer Ahmed. Application of

Barcode Technology in Automated Storage and Retrieval Systems. Industrial

Electronics, Control, and Instrumentation, 1996., Proceedings of the 1996 IEEE

IECON: IEEE, 1996. 641-646.

2. Theo Pavlidis, Jerome Swartz and Ynjiun P. Wang. Fundamentals of Bar Code

Information Technology. IEEE (Computer): IEEE, 1990. 74-86

3. Larry Krummel. Bar Codes in Document Imaging 3rd Edition. Seaport Imaging

Inc. 1996.

4. Jonathan Cohen. Automatic Identification and Data Collection Systems. UK.:

McGraw Hill International. 1994.

5. Wil. J. Van Gis. Two Dimensional Dot Codes for Product Indentification. IEEE

Transaction on Information Theory, Vol. IT-33, No.5.Sept 1986. 620-631.

6. E. Ottaviani, A. Pavan, M. Bottazi, E. Brunelli, F. Casseli and M.Guerrero. A

Common Image Processing Framework for 2D Barcode Reading. Image Processing

and Its Applications, Seventh International Conference, No. 465.1999. 652-655.

7. Choe Kok Heng. Development of PC Based Barcode Recognition. Undergraduate

Thesis. Universiti Teknologi Malaysia. 2001.

8. Hasimi bin. Sallehudin. Designing a Real-Time Visual Based Barcode System.

Undergraduate Thesis. Universiti Teknologi Malaysia. 2002.

94

9. S.Arnould, G. J. Awcock and R. Thomas. Remote Barcode Localization using

Mathematical Morphology. Image Processing and Its Applications, 1999. Seventh

International Conference, No. 645: IEEE, 1999. 642-646.

10. Shigeru Ando and Hidekata Hontani. Automatic Visual Searching and Reading

of Barcodes in a 3-D Scene. Vehicle Electronics Conference, 2001. IVEC 2001.

Proceedings of the IEEE International: IEEE, 2001. 49-54.

11. R. J. Howlett, S.Berthier and G. J. Awcock. Determining the Location of

Industrial Barcodes using Neural Networks. Image Processing and Its Applications,

1997., Sixth International Conference: IPA97-IEE, 1997. 511-515.

12. Anil K. Jain and Yao Chen. Bar code localization using texture analysis.

Document Analysis and Recognition, 1993.: IEEE, 1993. 41-44.

13. Christian Viard-Gaudin, Nicolas Normand and Dominique Barba. A Barcode

Localization Algoritm using a Two-Dimensional Algorithm. Document Analysis and

Recognition, 1993.: IEEE, 1993. 45-48.

14. Rubin Muniz, Luis Junco and Adolfo Otero. A Robust Software Barcode Reader

using Hough Transform. IEEE, 1999. 313-319.

15. Shu-Jen Liu, Hong-Yuan Liao, Liang-Hua Chen, Hsia-Rong Tyan and Jun-Wei

Hsieh. Camera-Based Bar Code Recognition System using Neural Network. Neural

Networks, 1993., Proceedings of 1993 International Joint Conference on Neural

Network.: IJCNN '93-Nagoya. 1301-1305.

16. N. Normand and C. Viard-Gaudin. A Two-Dimensional Barcode Reader. Pattern

Recognition, 1994. Vol. 3 - Conference C: Computer Vision & Image Processing.,

Proceedings.: IEEE, 1994. 201-203.

17. Mikio Kuroki, Takayuki Yoneoka, Tetsua Satou, Yoichi Takagi, Tadaaki

Kitamura and Noriaki Kayamori. Barcode Recognition System using Image

95

Processing. Emerging Technologies and Factory Automation Proceedings, 1997.:

ETFA '97. 568-572.

18. Michael W. Burke. Image Acquisition: Handbook of Machine Vision Engineering

Volume 1. London: Chapman & Hall Ltd. 1996.

19. Pulnix. CCD Performance and Pixel Size. Technical Note. 1998.

20. National Instruments. IMAQ Vision Concepts Manual. Manual. 2003.

21. Gernot Hoffmann. Luminance Models for the Grayscale Conversion. Technical

Note. 2003.

22. Andrew K. C. Wong, P. K. Sahoo. A Gray-Level Threshold Selection Method

Based on Maximum Entropy Principle. IEEE Transaction on Systems, Man and

Cybernetics Vol. 19, August 1989: IEEE,1989. 866-871.

23. Rafael C. Gonzalez and Richard E. Woods. Digital Image Processing 2nd Edition.

New Jersey, USA: Prentice Hall Inc. 2002.

24. Nir Milstein. Image Segmentation by Adaptive Thresholding. Technion – Israel

Institute of Technology, The Faculty for Computer Sciences. 2004.

25. Mahboob H. Chowdury and Warren D. Little. Image Thresholding Techniques.

Communications, Computers, and Signal Processing, 1995. Proceedings., IEEE

Pacific Rim Conference.: IEEE, 1995. 585-589.

26. Milan Sonka, Vaclav Hlavac and Roger Boyle. Image Processing Analysis and

Machine Vision. USA: PWS Publishing. 1999.

27. Haim Barad, Benny Eitan, Koby Gottlieb, Mickey Gutman, Nathaniel Hoffman,

Oded Lempel, Alex Peleg and Uri Weser. Intel’s Multimedia Architecture Extension.

Electrical and Electronics Engineers in Israel, 1996., Nineteenth Convention.: IEEE,

1996. 148-151.

96

28. Oded Lempel, Alex Peleg and Uri Weser. Intel’s MMX Technology-A New

Instruction Set Extension. Compcon '97. Proceedings.: IEEE, 1997. 255-259.

29. Alex Peleg and Uri Weser. MMX Technology Extension to The Intel

Architecture. IEEE Micro.: IEEE, 1996. 42-50.

30. Edward R. Dougherty and Philip A. Laplante. Introduction to Real-Time

Imaging. New York: SPIE Optical Engineering Press & IEEE Press. 1995.

31. David Bistry and Carole Delong. The Complete Guide to MMX Technology. New

York: Intel Corporation, McGraw Hill, Inc. 1997.

32. Ravi Bhargava, Lizy K. John, Brian L. Evans and Ramesh Radhakrishnan.

Evaluating MMX Technology Using DSP and Multimedia Applications. IEEE, 1998.

1-10.

33. G. Conte, S. Tommesani and F. Zanichell. The Long and Winding Road to High

Performance Image Processing with MMX/SSE. Computer Architectures for

Machine Perception, 2000. Proceedings.: IEEE, 2000. 302-310.

34. Jeff Prosise. Programming Windows with MFC. Redmond, Washington:

Microsoft Press. 1999.

35. Gail Marshall. Choosing A Frame Grabber for Performance & Profitability.

USA: Imagenation Corporation. 1997.