Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer Vision Chapter 1 Introduction.  The goal of computer vision is to make useful decisions about real physical objects and scenes based on sensed.

Similar presentations


Presentation on theme: "Computer Vision Chapter 1 Introduction.  The goal of computer vision is to make useful decisions about real physical objects and scenes based on sensed."— Presentation transcript:

1 Computer Vision Chapter 1 Introduction

2  The goal of computer vision is to make useful decisions about real physical objects and scenes based on sensed images.

3 Applications areas  Industrial inspection  Medical imaging  Image database and query  Satellite & surveillance imagery  Entertainment  Handwriting and printed character recognition

4 Image dimensionality  1D – audio (sound)  2D – digital camera picture, chest x-ray, ultrasound  3D –Video sequence of 2D images –Multispectral 2D images –Volumetric medical imagery (CT, MRI)  4D –PET-CT –MRI

5 Image types  Binary  Grayscale  Color  Multispectral

6 Operations on images  Neighborhood (local) operations  Enhancing the entire image  Combining multiple images –Ex. Differences, noise reduction, blending  Feature extraction –Ex. Area, centroid (center of mass), orientation, lines –invariants

7 Extracting features

8 Example features

9 General hardware discussion  General purpose vs. special purpose (DSP, GPU)  Uniprocessors vs. parallel processors (COWs, multiprocessors)  Sensors (discussed later)

10 General software discussion  Java vs. C++ –use JBuilder, Visual C++, or other professional IDE (not Ready) –JImageViewer and ImageViewer starter apps  doxygen or JavaDoc for code documentation  Code format  Java audio (1D mono and stereo) start app

11 Getting started with doxygen  Download from doxy  Download from doxygen.org   Do this only once in directory (folder) containing your source code: doxygen –g   This creates a doxygen configuration file called Doxyfile which you may edit to change default options.   Edit Doxyfile and make sure all EXTRACTs are YES   Then whenever you change your code and wish to update the documentation: doxygen   which updates all documentation in html subdirectory

12 Getting started with doxygen //---------------------------------------------------------------------- /** \brief JImageViewer class. * * Longer description goes here. */ public class JImageViewer extends JFrame implements ActionListener {.

13 Getting started with doxygen //---------------------------------------------------------------------- /** \brief Main application entry point. * * \param args Each image file name in args will cause that image * to be displayed in a window. */ public static void main ( String[] args ) { if (args.length==0) { new JImageViewer(); } else { for (int i = 0; i < args.length; i++) new JImageViewer(args[i]); }

14 doxygen //---------------------------------------------------------------------- int mW; ///< image width int mH; ///< image height int mMin; ///< min image value int mMax; ///< max image value int[] mImage; ///< actual image data //----------------------------------------------------------------------

15

16

17

18 The good, the bad, and the ugly.  Success is usually hard won!  Problems: –Matching models to reality –Lighting variation –Sensor noise –Occlusion & rotation/translation/scale –Limited resolution  An image is a discrete model of an underlying continuous function  Spatial discretization  Sensed values quantization –Levels of detail (LOD)

19 Example application: counting bolt holes  Missing bolt hole is a very costly defect during assembly.

20 Counting bolt holes  Pixel = ?  Dark = 1 = no light = no hole  Light = 0 = light = part of hole  Hole = (ext - int) / 4  External corner = 2x2 neighborhood of exactly 3-1’s (and 1-0)  Internal corner = exactly 3-0’s

21 Counting bolt holes  External corner = 2x2 neighborhood of exactly 3-1’s (and 1-0)  Internal corner = exactly 3-0’s  How many possible combinations?

22 Counting bolt holes  Ex. 3 objects row 0 (y’s) column 5 (x’s) (x,y)=(c,r)=(0,0) [r][c]=[0][0] (x,y)=(c,r)=(Cols-1,Rows-1) [r][c]=[Rows-1][Cols-1] adjacent in memory (in C++)

23 Algorithm for counting holes in a binary image Input: a binary image, M, of R rows and C cols (indexed as M[r][c]) Output: number of holes M contains int external=0, internal=0; for (int r=0; r<R-1; r++) { for (int c=0; c<C-1; c++) { if (isExternal(M,r,c)) external++; else if (isInternal(M,r,c)) internal++; }} return (external-internal)/4;

24 Hole counting assumptions  All image border pixels must be 1s.  Each region of 0s (holes) must be 4- connected.  Holes must also be simply connected (not contain any object).

25 Counting bolt holes  Ex. 3 objects –External –Internal

26 Problems for discussion  Ex. 1.5  First part of 1.6  1.9, 1.11, 1.12, 1.14


Download ppt "Computer Vision Chapter 1 Introduction.  The goal of computer vision is to make useful decisions about real physical objects and scenes based on sensed."

Similar presentations


Ads by Google