OpenCV (The Open Computer Vision Library) is an industrial-grade suite of over 2500 routines for vision, image processing, and machine learning. Its algorithms provide methods for tracking and identifying objects (including humans), image alignment/registration, tracking camera motion, 3D model reconstruction, imaged-based searching, and much more, with applications in manufacturing, scientific research, security, medicine and beyond. As implied by the name, it is open-source, and it is free to use for any purpose. Moreover, OpenCV is multiplatform, supporting Windows, Mac OS, Linux, Android, and iOS. Though it is natively in C++, robust interfaces have been developed for Python, Java, Matlab, and other common languages.
This course will provide a pragmatic, hands-on introduction to OpenCV suitable for any engineers or scientists who work with images and/or videos and wish to add a variety of classical and state-of-the-art vision algorithms to their toolbox. Topics will include but are not limited to: installation and getting started with OpenCV, essential Python and NumPy (used in the course), loading/filtering/displaying/saving images, GUI features, morphological operations, feature finding, image transforms/registration, video analysis and object tracking, and basic machine learning for handwritten digit recognition and human face detection.