The aim of this course is to provide the attendee with an overview of the fundamentals of image processing and computer vision software techniques as a precursor to further research, study and development within this domain. The course is themed around the development of image processing from a software development perspective and includes practical lab sessions on image processing software development using a C/C++ software environment in addition to lecture/tutorial type sessions.
The most powerful method of sensing available to humans is vision. In computing visual information is represented as a digital image. In order to process visual information in computer systems we need to know about processing digital images. Here we focus upon the task of low-level visual processing in the digital form and how to implement such techniques in software.
The course will be delivered as a series of short lectures, tutorials and practical lab sessions in which students will develop a range of practical image processing algorithms using the C/C++ software environment. Presented lecture content is supported by "live" in-lecture image processing demos, the program source code for which is made available to delegates to form part of the practical lab sessions. Lab sessions are PC based using C/C++ programming to perform image processing from images, videos and PC connected cameras.
On successful completion of this module, the attendee will be able to:
- understand digital image representations
- understand and implement a range of image transforms
- understand and implement image processing in the frequency domain
- implement basic feature extraction and matching
- understand the effects of noise on all aspects of digital imaging and implement a range of noise reduction filtering approaches
- understand and appreciate the broader application implications of a given image processing solution for a particular industrial application.
Programming (in C/C++ with Open CV)
- image loading and display
- applying image transforms
- image manipulation
- writing images and videos
- live image processing from a connected camera
Image geometry and locality
Operations upon images
Mathematical Background: Camera projection/convolution
- arithmetic/logical operations
- thresholding/Fourier Transform
- image convolution/correlation matching/de-convolution
- using image histograms for comparison
- high pass filtering/low pass filtering/band-pass filtering
- colour transforms - RGB and HSV colour spaces
- logarithmic and exponential transforms/gamma correction
- histogram transforms: contrast stretch/equalisation/matching
- homomorphic filtering
- edge enhancement
- noise characteristics and noise reduction filtering
Who should attend?
The course will be of interest to those in the following job roles:
- imaging engineer
- vision processing engineer
- software engineer
- vision or image processing scientist
- medical imaging professional
- embedded engineer
- embedded software engineer.
A working knowledge of C/C++ programming is assumed for course attendees.
Previous delegates have come from various industries including:
- industrial inspection/manufacturing
- security/defence/transport imaging
- weather and environmental monitoring (remote sensing)
- medical imaging.