
Building Computer Vision Projects with OpenCV 4 and C++
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
All prices
More details
Other editions
Additional editions

Content
- Cover
- Title Page
- Copyright and Credits
- About Packt
- Contributors
- Table of Contents
- Preface
- Chapter 1: Getting Started with OpenCV
- Understanding the human visual system
- How do humans understand image content?
- Why is it difficult for machines to understand image content?
- What can you do with OpenCV?
- Inbuilt data structures and input/output
- Image processing operations
- GUI
- Video analysis
- 3D reconstruction
- Feature extraction
- Object detection
- Machine learning
- Computational photography
- Shape analysis
- Optical flow algorithms
- Face and object recognition
- Surface matching
- Text detection and recognition
- Deep learning
- Installing OpenCV
- Windows
- Mac OS X
- Linux
- Summary
- Chapter 2: An Introduction to the Basics of OpenCV
- Technical requirements
- Basic CMake configuration file
- Creating a library
- Managing dependencies
- Making the script more complex
- Images and matrices
- Reading/writing images
- Reading videos and cameras
- Other basic object types
- Vec object type
- Scalar object type
- Point object type
- Size object type
- Rect object type
- RotatedRect object type
- Basic matrix operations
- Basic data persistence and storage
- Writing to FileStorage
- Summary
- Chapter 3: Learning Graphical User Interfaces
- Technical requirements
- Introducing the OpenCV user interface
- Basic graphical user interface with OpenCV
- Adding slider and mouse events to our interfaces
- Graphic user interface with Qt
- Adding buttons to the user interface
- OpenGL support
- Summary
- Chapter 4: Delving into Histogram and Filters
- Technical requirements
- Generating a CMake script file
- Creating the graphical user interface
- Drawing a histogram
- Image color equalization
- Lomography effect
- Cartoonize effect
- Summary
- Chapter 5: Automated Optical Inspection, Object Segmentation, and Detection
- Technical requirements
- Isolating objects in a scene
- Creating an application for AOI
- Preprocessing the input image
- Noise removal
- Removing the background using the light pattern for segmentation
- Thresholding
- Segmenting our input image
- The connected components algorithm
- The findContours algorithm
- Summary
- Chapter 6: Learning Object Classification
- Technical requirements
- Introducing machine learning concepts
- OpenCV machine learning algorithms
- Computer vision and the machine learning workflow
- Automatic object inspection classification example
- Feature extraction
- Training an SVM model
- Input image prediction
- Summary
- Chapter 7: Detecting Face Parts and Overlaying Masks
- Technical requirements
- Understanding Haar cascades
- What are integral images?
- Overlaying a face mask in a live video
- What happened in the code?
- Get your sunglasses on
- Looking inside the code
- Tracking the nose, mouth, and ears
- Summary
- Chapter 8: Video Surveillance, Background Modeling, and Morphological Operations
- Technical requirements
- Understanding background subtraction
- Naive background subtraction
- Does it work well?
- Frame differencing
- How well does it work?
- The Mixture of Gaussians approach
- What happened in the code?
- Morphological image processing
- What's the underlying principle?
- Slimming the shapes
- Thickening the shapes
- Other morphological operators
- Morphological opening
- Morphological closing
- Drawing the boundary
- Top Hat transform
- Black Hat transform
- Summary
- Chapter 9: Learning Object Tracking
- Technical requirements
- Tracking objects of a specific color
- Building an interactive object tracker
- Detecting points using the Harris corner detector
- Good features to track
- Feature-based tracking
- Lucas-Kanade method
- Farneback algorithm
- Summary
- Chapter 10: Developing Segmentation Algorithms for Text Recognition
- Technical requirements
- Introducing optical character recognition
- Preprocessing stage
- Thresholding the image
- Text segmentation
- Creating connected areas
- Identifying paragraph blocks
- Text extraction and skewing adjustment
- Installing Tesseract OCR on your operating system
- Installing Tesseract on Windows
- Building the latest library
- Setting up Tesseract in Visual Studio
- Static linking
- Installing Tesseract on Mac
- Using the Tesseract OCR library
- Creating an OCR function
- Sending the output to a file
- Summary
- Chapter 11: Text Recognition with Tesseract
- Technical requirements
- How the text API works
- The scene detection problem
- Extremal regions
- Extremal region filtering
- Using the text API
- Text detection
- Text extraction
- Text recognition
- Summary
- Chapter 12: Deep Learning with OpenCV
- Technical requirements
- Introduction to deep learning
- What is a neural network and how can we learn from data?
- Convolutional neural networks
- Deep learning in OpenCV
- YOLO - real-time object detection
- YOLO v3 deep learning model architecture
- The YOLO dataset, vocabulary, and model
- Importing YOLO into OpenCV
- Face detection with SSD
- SSD model architecture
- Importing SSD face detection into OpenCV
- Summary
- Chapter 13: Cartoonifier and Skin Color Analysis on the RaspberryPi
- Accessing the webcam
- Main camera processing loop for a desktop app
- Generating a black and white sketch
- Generating a color painting and a cartoon
- Generating an evil mode using edge filters
- Generating an alien mode using skin detection
- Skin detection algorithm
- Showing the user where to put their face
- Implementation of the skin color changer
- Reducing the random pepper noise from the sketch image
- Porting from desktop to an embedded device
- Equipment setup to develop code for an embedded device
- Configuring a new Raspberry Pi
- Installing OpenCV on an embedded device
- Using the Raspberry Pi Camera Module
- Installing the Raspberry Pi Camera Module driver
- Making Cartoonifier run in fullscreen
- Hiding the mouse cursor
- Running Cartoonifier automatically after bootup
- Speed comparison of Cartoonifier on desktop versus embedded
- Changing the camera and camera resolution
- Power draw of Cartoonifier running on desktop versus embedded system
- Streaming video from Raspberry Pi to a powerful computer
- Customizing your embedded system!
- Summary
- Chapter 14: Explore Structure from Motion with the SfM Module
- Technical requirements
- Core concepts of SfM
- Calibrated cameras and epipolar geometry
- Stereo reconstruction and SfM
- Implementing SfM in OpenCV
- Image feature matching
- Finding feature tracks
- 3D reconstruction and visualization
- MVS for dense reconstruction
- Summary
- Chapter 15: Face Landmark and Pose with the Face Module
- Technical requirements
- Theory and context
- Active appearance models and constrained local models
- Regression methods
- Facial landmark detection in OpenCV
- Measuring error
- Estimating face direction from landmarks
- Estimated pose calculation
- Projecting the pose on the image
- Summary
- Chapter 16: Number Plate Recognition with Deep Convolutional Networks
- Introduction to ANPR
- ANPR algorithm
- Plate detection
- Segmentation
- Classification
- Plate recognition
- OCR segmentation
- Character classification using a convolutional neural network
- Creating and training a convolutional neural network with TensorFlow
- Preparing the data
- Creating a TensorFlow model
- Preparing a model for OpenCV
- Import and use model in OpenCV C++ code
- Summary
- Chapter 17: Face Detection and Recognition with the DNN Module
- Introduction to face detection and face recognition
- Face detection
- Implementing face detection using OpenCV cascade classifiers
- Loading a Haar or LBP detector for object or face detection
- Accessing the webcam
- Detecting an object using the Haar or LBP classifier
- Detecting the face
- Implementing face detection using the OpenCV deep learning module
- Face preprocessing
- Eye detection
- Eye search regions
- Geometrical transformation
- Separate histogram equalization for left and right sides
- Smoothing
- Elliptical mask
- Collecting faces and learning from them
- Collecting preprocessed faces for training
- Training the face recognition system from collected faces
- Viewing the learned knowledge
- Average face
- Eigenvalues, Eigenfaces, and Fisherfaces
- Face recognition
- Face identification - recognizing people from their faces
- Face verification-validating that it is the claimed person
- Finishing touches-saving and loading files
- Finishing touches-making a nice and interactive GUI
- Drawing the GUI elements
- Startup mode
- Detection mode
- Collection mode
- Training mode
- Recognition mode
- Checking and handling mouse clicks
- Summary
- References
- Chapter 18: Android Camera Calibration and AR Using the ArUco Module
- Technical requirements
- Augmented reality and pose estimation
- Camera calibration
- Augmented reality markers for planar reconstruction
- Camera access in Android OS
- Finding and opening the camera
- Camera calibration with ArUco
- Augmented reality with jMonkeyEngine
- Summary
- Chapter 19: iOS Panoramas with the Stitching Module
- Technical requirements
- Panoramic image stitching methods
- Feature extraction and robust matching for panoramas
- Affine constraint
- Random sample consensus (RANSAC)
- Homography constraint
- Bundle Adjustment
- Warping images for panorama creation
- Project overview
- Setting up an iOS OpenCV project with CocoaPods
- iOS UI for panorama capture
- OpenCV stitching in an Objective-C++ wrapper
- Summary
- Further reading
- Chapter 20: Finding the Best OpenCV Algorithm for the Job
- Technical requirements
- Is it covered in OpenCV?
- Algorithm options in OpenCV
- Which algorithm is best?
- Example comparative performance test of algorithms
- Summary
- Chapter 21: Avoiding Common Pitfalls in OpenCV
- History of OpenCV from v1 to v4
- OpenCV and the data revolution in computer vision
- Historic algorithms in OpenCV
- How to check when an algorithm was added to OpenCV
- Common pitfalls and suggested solutions
- Summary
- Further reading
- Other Books You May Enjoy
- Index
System requirements
File format: PDF
Copy-Protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our eBook Help page.
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.