Using OpenCV C++ with Development Boards

Using OpenCV C++ with Development Boards

Click the blue words above to follow us

WeChat Official Account:OpenCV Academy

Follow to get more knowledge on computer vision and deep learning

Content and Features of this Book

This book consists of three main parts, corresponding to three levels of OpenCV development:
(1) Basic section: Learn the fundamentals of OpenCV and how to use the API functions simply;
(2) Advanced section: Study the core APIs of OpenCV to proficiently solve common computer vision problems;
(3) Advanced practical section: Comprehensive use of OpenCV development knowledge to solve real-world problems.
The first part is aimed at beginners, introducing what OpenCV is, how to write the first line of OpenCV code, how images are loaded and displayed in OpenCV, basic API operations, Mat objects, and pixel operations.
The second part is aimed at intermediate readers, starting with image convolution, carefully studying OpenCV image processing, feature extraction, machine learning, and other core module knowledge, interspersed with numerous engineering cases and coding practices, from image convolution filtering to binary image analysis, image feature extraction, custom object detection, and a comprehensive systematic study of classic knowledge points and cases in traditional image processing using OpenCV. This truly solidifies the foundation and builds an intermediate level, enabling the solving of common computer vision problems.
The third part is aimed at advanced readers, which is the focus and difficulty of this book, mainly involving various methods and case studies for defect detection using traditional image processing and analysis in OpenCV, inference and acceleration of deep neural network models, YOLOv5 object detection, compression and optimization of deep neural network models, model conversion and accelerated inference, and the integration of OpenVINO and CUDA acceleration modules with OpenCV.
Through studying this book, readers will achieve a new height in understanding the entire framework of OpenCV and the application capabilities of related modules, enabling them to design complex algorithm processing flows based on OpenCV algorithm operators, solve practical problems using OpenCV, and combine deep learning model deployment and acceleration techniques to manifest their commercial value in company projects and help expand the application market of OpenCV and computer vision across various industries.

All source code in the book has been debugged with OpenCV4.8 + VS2017. To purchase this book, please scan the QR code (the link is currently discounted!)

Using OpenCV C++ with Development Boards

Table of Contents

Part One: Basics

Chapter 1: Introduction to OpenCV and Installation

1.1 Introduction to OpenCV

1.1.1 History of OpenCV

1.1.2 OpenCV Modules and Functions

1.1.3 Milestones of OpenCV4

1.1. Current Status and Development Trends of OpenCV Applications

1.2 OpenCV Source Code Project

1.3 Building OpenCV4 Development Environment

1.4 Your First OpenCV Development Program

1.5 Loading and Saving Images

1.5.1 Loading Images

1.5.2 Saving Images

1.6 Loading Videos

1.7 Summary

Chapter 2: Mat and Pixel Operations

2.1 Mat Objects

2.1.1 What is a Mat Object?

2.1.2 All Data is Mat

2.1.3 Mat Types and Depths

2.1.4 Creating Mat Objects

2.2 Pixel Access

2.2.1 Traversing Pixel Data in Mat

2.2.2 Pixel Arithmetic Operations

2.2.3 Bitwise Operations

2.2.4 Adjusting Image Brightness and Contrast

2.3 Image Types and Channels

2.3.1 Image Types

2.2.2 Image Channels

2.2.3 Channel Operations

Chapter 3: Color Space

3.1 RGB Color Space

3.2 HSV Color Space

3.3 Lab Color Space

3.4 Color Space Conversion and Applications

3.5 Summary

Chapter 4: Image Histogram

4.1 Pixel Statistical Information

4.2 Histogram and Plotting

4.3 Histogram Equalization

4.4 Histogram Comparison

4.5 Histogram Back Projection

4.6 Summary

Part Two: Advanced

Chapter 5: Convolution Operations

5.1 Concept of Convolution

5.2 Convolution Blur

5.3 Custom Filtering

5.4 Gradient Extraction

5.5 Edge Detection

5.6 Noise and Denoising

5.7 Edge Preserving Filtering

5.8 Sharpening Enhancement

5.9 Summary

Chapter 6: Binary Images

6.1 Image Thresholding Operations

6.2 Global Threshold Segmentation

6.3 Adaptive Threshold Segmentation

6.4 Denoising and Binarization

6.5 Summary

Chapter 7: Binary Analysis

7.1 Overview of Binary Image Analysis

7.2 Connected Component Labeling

7.3 Contour Detection

7.4 Contour Measurement

7.5 Fitting and Approximation

7.6 Contour Analysis

7.7 Line Detection

7.8 Circle Detection

7.9 Maximum Inscribed Circle and Minimum Circumscribed Circle

7.10 Contour Matching

7.11 Maximum Contour and Keypoint Encoding

7.12 Convex Hull Detection

7.13 Summary

Chapter 8: Morphological Analysis

8.1 Overview of Image Morphology

8.2 Erosion and Dilation

8.3 Opening and Closing Operations

8.4 Morphological Gradient

8.5 Top Hat and Black Hat

8.6 Hit or Miss

8.7 Structuring Elements

8.8 Distance Transform

8.9 Watershed Transform

8.10 Summary

Chapter 9: Feature Extraction

9.1 Image Pyramids

9.1.1 Gaussian Pyramid

9.1.2 Laplacian Pyramid

9.1.3 Pyramid Fusion

9.2 Harris Corner Detection

9.3 Shi-Tomasi Corner Detection

9.4 Subpixel Level Corner Detection

9.5 HOG Features and Usage

9.5.1 HOG Feature Description

9.5.2 Pedestrian Detection Based on HOG Features

9.6 ORB Feature Descriptor

9.6.1 Keypoint and Descriptor Extraction

9.6.2 Descriptor Matching

9.7 Feature-based Object Detection

9.7.1 Homography Transformation

9.7.2 Object Detection

9.8 Summary

Chapter 10: Video Analysis

10.1 Color-based Object Tracking

10.2 Video Background Analysis

10.3 Frame Difference Method Background Analysis

10.4 Sparse Optical Flow Analysis

10.5 Dense Optical Flow Analysis

10.6 Mean Shift Analysis

10.7 Summary

Chapter 11: Machine Learning

11.1 KMeans

11.1.1 KMeans Image Segmentation

11.1.2 KMeans Extracting Image Color Palette

11.2 KNN Classification

11.3 SVM Classification

11.4 HOG+SVM Custom Object Detection

11.5 Summary

Part Three: Advanced and Practical

Chapter 12: Deep Neural Networks

12.1 Overview of DNN

12.2 Image Classification

12.3 Object Detection

12.3.1 SSD Object Detection

12.3.2 Faster-RCNN Object Detection

12.3.3 YOLO Object Detection

12.4 ENet Image Segmentation

12.5 Style Transfer

12.6 Scene Text Detection

12.7 Face Detection

12.8 Summary

Chapter 13: Custom Object Detection with YOLOv5

13.1 Download and Install YOLOv5

13.2 Pre-trained YOLOv5 Model Object Detection

13.3 Custom Object Detection

13.3.1 OID Dataset Download and Preparation

13.3.2 Configuration File Modification and Training

13.3.3 Deploying Custom Object Detection Model

13.4 Summary

Chapter 14: Defect Detection

14.1 Defect Detection in Simple Backgrounds

14.1.1 Problem Description

14.1.2 Binary Analysis

14.1.3 Defect Analysis

14.2 Defect Detection in Complex Backgrounds

14.2.1 Frequency Domain Enhanced Defect Detection

14.2.2 Spatial Domain Enhanced Defect Detection

14.2.3 Summary

14.3 Case Study – Blade Defect Detection

14.4 Deep Learning-based Defect Detection

14.4.1 Classification-based Defect Detection

14.4.2 UNet-based Defect Detection

14.5 Summary

Chapter 15: OpenVINO Acceleration Support

15.1 Installing and Configuring OpenVINO Framework

15.1.1 OpenVINO Installation

15.1.2 Configuring C++ Development Support

15.2 OpenVINO 2022.x SDK Inference Demonstration

15.2.1 Inference SDK Introduction

15.2.2 Inference SDK Demonstration

15.3 OpenVINO Support for UNet Deployment

15.4 OpenVINO Support for YOLOv5 Deployment

15.5 Summary

Chapter 16: CUDA Acceleration Support

16.1 Compiling OpenCV CUDA Version

16.2 CUDA Accelerated Traditional Image Processing

16.2.1 Conversion between Mat and UMat

16.2.2 CUDA Accelerated Version of Video Background Analysis

16.3 CUDA Accelerated OpenCV DNN

16.4 Summary

Q&A and Services

The book contains a total of 16 chapters, focusing on detailed explanations of commonly used OpenCV development modules and engineering development practices, enhancing OpenCV application development capabilities, helping readers become OpenCV developers, and including knowledge on deep learning model training and deployment acceleration, further expanding the skill set needed for industrial project implementation. To purchase, please click the link:

https://item.jd.com/10092255924058.html

Using OpenCV C++ with Development Boards

The learning course has a dedicated Q&A group

Responsible for personalized Q&A

Exclusive QQ Group for Readers: 657875553

Group Entry Code: OpenCV4 Reader

Using OpenCV C++ with Development Boards

Leave a Comment