real-time barcode reader using active...
TRANSCRIPT
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.