Open CV is a cross-platform, free-for-use library that is primarily used for real-time Computer Vision and image processing. It is considered to be one of the best open source libraries that helps developers focus on constructing complete projects on image processing, motion detection, and image segmentation.Whether you are completely new to the concept of Computer Vision or have a basic understanding of it, this video will be your guide to understanding the basic OpenCV concepts and algorithms through amazing real-world examples and projects.
Starting from the installation of OpenCV on your system and understanding the basics of image processing, we swiftly move on to creating optical flow video analysis or text recognition in complex scenes, and will take you through the commonly-used Computer Vision techniques to build your own Open CV projects from scratch.By the end of this video, you will be familiar with the basics of Open CV such as matrix operations, filters, and histograms, as well as more advanced concepts such as segmentation, machine learning, complex video analysis, and text recognition
About The Author
David Millán Escrivá was eight years old when he wrote his first program on an8086 PC with BASIC language, which enabled the 2D plotting of BASIC equations. He started with his computer development relationship and created many applications and games.
In 2005, he completed his studies in IT from the Universitat Politécnica de Valencia with honors in human-computer interaction supported by Computer Vision with OpenCV (v0.96). He had a final project based on this subject and published it on HCI Spanish Congress. In 2014, he completed his Master's degree in artificial intelligence, computer graphics, and pattern recognition, focusing on pattern recognition and Computer Vision.
He participated in Blender source code, an open source and 3D-software project, andworked in his first commercial movie, Plumiferos—Aventuras voladoras, as a computer graphics software developer. David now has more than 13 years of experience in IT, with more than nine years of experience in Computer Vision, computer graphics, and pattern recognition, working on different projects and start-ups, applying his knowledge of Computer Vision, optical character recognition, and augmented reality.
He is the author of the DamilesBlog, where he publishes research articles and tutorials on OpenCV, Computer Vision in general, and optical character recognition algorithms. He is the co-author of Mastering OpenCV with Practical Computer Vision Projects Book and also the reviewer of GnuPlot Cookbook by Lee Phillips, OpenCV Computer Vision with Python by Joseph Howse, InstantOpenCV Starter by Jayneil Dalal and Sohil Patel, all published by Packt Publishing.
Prateek Joshi is an artificial intelligence researcher, published author of five books, and TEDx speaker. He is the founder of Pluto AI, a venture-funded Silicon Valley startup building an analytics platform for smart water management powered by deep learning. His work in this field has led to patents, tech demos, and research papers at major IEEE conferences. He has been an invited speaker at technology and entrepreneurship conferences including TEDx, AT&T Foundry, Silicon Valley Deep Learning, and Open Silicon Valley. Prateek has also been featured as a guest author in prominent tech magazines.
His tech blog has received more than 1.2 million page views from 200 over countries and has over 6,600+ followers. He frequently writes on topics such as artificial intelligence, Python programming, and abstract mathematics. He is an avid coder and has won many hackathons utilizing a wide variety of technologies. He graduated from University of Southern California with a master’s degree specializing in artificial intelligence. He has worked at companies such as Nvidia and Microsoft Research.
Vinícius Godoy is a computer graphics university professor at PUCPR. He started programming with C++ 18 years ago and ventured into the field of computer gaming and computer graphics 10 years ago. His former experience also includes working as an IT manager in document processing applications in Sinax, a company that focuses in BPM and ECM activities, building games and applications for Positivo Informática, including building an augmented reality educational game exposed at CEBIT and network libraries for Siemens Enterprise Communications (Unify).
As part of his Master's degree research, he used Kinect, OpenNI, and OpenCV to recognize Brazilian sign language gestures. He is currently working with medical imaging systems for his PhD thesis. He was also a reviewer of the OpenNI Cookbook, Packt Publishing.
He is also a game development fan, having a popular site entirely dedicated to the field called Ponto V. He is the cofounder of a startup company called Blackmuppet. His fields of interest includes image processing, Computer Vision, design patterns, and multithreaded applications.
Before we jump into OpenCV functionalities, we need to understand why those functions were built. Let’s understand how the human visual system works so that we can develop the right algorithms.
Real-life problems require us to use many blocks together to achieve the desired result. So, we need to know what modules and functions to use. Let's understand what OpenCV can do out of the box.
Now that we know what tasks we can do with OpenCV, Let’s see how to get OpenCVupandrunning on various operating systems, viz. Windows, Mac and Linux.
We are going to use CMake to configure and check all the required dependencies of our project. So, let’s learn basic CMake configuration files and creating a library.
CMake has the ability to search our dependencies and external libraries, giving us the facility to build complex projects depending on external components in our projects and by adding some requirements. One of the most important dependency is, of course, OpenCV. Let’s learn how to add it to our projects.
Now that we know managing dependencies, let’s take a look at a bit more complex script. This video we will show us a more complex script that includes subfolders, libraries, and executables, all in only two files and a few lines, as shown in the script.
The most important structure in computer vision is without any doubt the images. The image in computer vision is a representation of the physical world captured with a digital device. Let’s now learn about images and matrices.
After the introduction of matrix, we are ready to start with the basics of the OpenCV code. This video will guide us how to read and write images.
We now know how to read and write images but reading video can be a bit tricky. This video introduces us reading a video and camera with simple example.
We have learned about the Mat and Vec3b classes, but we need to learn about otherclasses as well. In this video, we will learn about the most basic object types required in most of the projects.
In many applications, such as calibration or machine learning, when we are done with the calculations, we need to save the results in order toretrieve them in the next executions. Before we finish this section, we will explore the OpenCV functions to storeand read our data.
OpenCV has its own cross-operating system user interface that allows developers to create their own applications without the need to learn complex libraries for theuser interface. This video will introduce the OpenCV user interface and help us creating a basic UI with OpenCV.
The QT user interface gives more control and options to work with images. Let’s explore the interface and learn how to use it.
Mouse events and slider controls are very useful in Computer Vision and OpenCV. Using these controls, users can interact directly with the interface and change the properties of their input images or variables. However, using these controls can be a bit tricky. Let’s see how to use them.
Now that we have learned how to create normal or QT interfaces and interact with them using a mouse and slider, let’s see how we can create different types of buttons to add more interactivity.
OpenCV includes OpenGL support which is a graphical library that is integrated in graphic cards as a standard. OpenGL allows us to draw from 2D to complex 3D scenes. This video shows us how to use OpenGL support.
Prepare a CMake script file that enables us to compile our project, structure, and executable.
The main graphical user interface can be used in the application to create single buttons.
Histogram is a statistical graphic representation of variable distribution that allows us to understand the density estimation and probability distribution of data.
Image equalization obtains a histogram with a uniform distribution of values.
Lomography is a photographic effect used in different mobile applications, such as Google Camera or Instagram.
The Cartoonize effect creates an image that looks like a cartoon
Create our new application.
Extract the information from image.
Extract each region of interest of our image where our target objects appear.
Pattern recognition and the learning theory in artificial intelligence and are related to computational statistics.
We will learn how to implement our own application that uses machine learning to classify objectsin a slide tape.
We will be able to recognize different objects to send notifications to a robot or put each one in different boxes.
To extract the features of each object
It is simply a concatenation of a set of weak classifiers that can be used to create a strong classifier.
You have to avoid huge redundancy during the area computation, to avoid this, we can use integral images
You have to load the cascade file and use it to detect the faces in an image.
You have to overlay sunglass on face.
You have to track nose, mouth and ears.
The background subtraction technique performs really well where we need to detect moving objects in a static scene.
We cannot keep a static background image that can be used to detectobjects.
Formulating and implementing a mixture of gaussians.
Morphological Image processing is used in processing the shapes of features in the image.
To apply various morphological operators on image.
Understand what characteristics can be used to make our tracking robust and accurate.
We want to randomly pick an object, learn the characteristics of the selected object and track it automatically.
Detect interest points in the image.
Improve the overall quality of image
Tracking individual feature points across successive frames in the video.
Classification results can be improved greatly if the input text is clear so Adjust the text.
Install Tesseract on Windows or Mac.
Studying tesserct API.
Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.
With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.
From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.
Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.