Preface
Although iOS started as an operating system for a phone, it now fills a much broader role in a world of mobile and connected devices. Among their many functions, iOS devices act as smart cameras, offering a programmable imaging chain with a good set of features and optimizations in hardware and software. Moreover, iOS has great support for C and C++, which are the dominant languages of computer vision libraries. This point brings us to OpenCV, a cross-platform, open source, C++ library that provides optimized implementations of algorithms for computer vision, image processing, and machine learning. OpenCV has good iOS support, including functionality to bridge the differences between OpenCV's C++ types and iOS SDK's Objective-C types.
I began to work as an iOS and Android developer in 2010 and then as an OpenCV developer in 2012. The demand for these technologies has grown tremendously in just a few years. Ideas about low-cost smart cameras have captured the imagination of inventors and marketers, and OpenCV has proven to be a versatile library for rapidly prototyping these ideas. For me, this surge of interest in the field has provided opportunities to write technical books, found a business, and come in contact with fellow computer vision enthusiasts who live on every inhabited continent. People are building careers in computer vision everywhere—not just in the San Francisco Bay area but also in San Salvador, Kampala, Tehran, Bremen, and my home city of Halifax in Canada, to name just a few of the places where loyal readers live.
At the time of writing, this is the only book on OpenCV 3 for iOS, and it is much more extensive than any online tutorials on the subject. The book's code is tested with OpenCV 3.1, which offers many bug fixes and improvements compared to OpenCV 3.0. I hope this collection of sample applications and reference material makes the library more accessible to scholars, workers, and creators such as you!