Learn Practical Approach To Opencv Using Kotlin
Published 8/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 14.23 GB | Duration: 26h 29m
Published 8/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 14.23 GB | Duration: 26h 29m
Less theory but more code to build complex OpenCV applications
What you'll learn
Become proficient enough to do complex opencv operation on the image
Able to understand and use core API of the OpenCV library
Apply image processing concepts to create better image using OpenCV
Sharing OpenCV code across different platform as library dependency
Learn TDD and clean coding approach in OpenCV application
Applying design pattern to known coding problems while building apps
Practical examples of the commonly used features in popular apps mobile or desktop
Developing complex feature in Android app that uses OpenCV
Requirements
Object Oriented Programming knowledge
Understanding of Kotlin or Java program code
Laptop
Opencv library
Android phone (Optional) for some project
Basic knowledge of Algebra and Geometry
Description
OpenCV is a widely used library for developing complex applications on various devices like Mobile, Desktop, Raspberry Pi, backend applications, etc.There are many courses and books available that provide a good theoretical understanding of image processing concepts. If you are someone who has no understanding of image processing, I would suggest you take some basic level course or book to gain a high-level understanding to better understand this course.This course is primarily designed for someone who wants to see the power of the OpenCV library and also to learn by coding. In this course, we will first learn the basic concept and later implement the code to visually understand the same using code.If you are a beginner or intermediate-level learner, you will learn a lot for sure. There are many skills you will learn as you progress with the course. Skills like TDD, clean coding, identifying the problem, and using appropriate design patterns to simplify the code which is something many developers in big MNCs give very less emphasis on.If you are an expert-level learner, It will be a refreshing course for you.In this course, we have covered complex-level application that uses the advanced-level concept to achieve interesting results.Happy learning !!
Overview
Section 1: Introduction to the course
Lecture 1 Introduction to course - 1
Lecture 2 Introduction to course - 2
Lecture 3 Requirement to develop in this course
Section 2: Setup your machine for OpenCV
Lecture 4 Project: GitHub project link for the course
Lecture 5 Windows: OpenCV installation - 1
Lecture 6 Windows: OpenCV installation - 2
Lecture 7 Windows: OpenCV installation - 3
Lecture 8 Linux: OpenCV installation from official documentation
Lecture 9 Linux: OpenCV installation - 1
Lecture 10 Linux: OpenCV installation - 2
Lecture 11 Mac: OpenCV installation
Lecture 12 Project: Modification in build.gralde file of the project
Lecture 13 Project: Take checkout of the project and start playing on it
Section 3: Image Filters
Lecture 14 Introduction
Lecture 15 Negative: change image to negative image - 1
Lecture 16 Negative: change image to negative image - 2
Lecture 17 Negative: change image to negative image - 3
Lecture 18 Thresholding: Introduction of Threshold API
Lecture 19 Thresholding: Binary Thresholding (convert image to black and white)
Lecture 20 Thresholding: OTSU thresholding (convert image to black and white)
Lecture 21 Thresholding: Fixing image for thresholding
Lecture 22 Thresholding: trying different parameters and code refactoring
Lecture 23 Grayscale Filter
Lecture 24 Denoising: FastNL Mean Denoise API (remove noise from image) - 1
Lecture 25 Denoising: FastNL Mean Denoise API (remove noise from image) - 2
Lecture 26 Denoising: FastNL Mean Denoise API (remove noise from image) - 3
Lecture 27 Sharpening: difference between gaussian blur and Laplacian filter - 1
Lecture 28 Sharpening: implementation using Laplacian filter - 2
Lecture 29 Sharpening: sharpen color image using Laplacian and Gaussian in YUV - 3.1
Lecture 30 Sharpening: sharpen color image using Laplacian and Gaussian in YUV - 3.2
Lecture 31 Sharpening: Code refactoring - 5
Lecture 32 Smoothing: Introduction
Lecture 33 Smoothing: Gaussian filter implementation
Lecture 34 Smoothing: Bilateral filter implementation
Lecture 35 Smoothing: smoothing to specific region in the image
Lecture 36 Smoothing: Test code refactoring
Lecture 37 Crisper Image: Intro to unsharp masking
Lecture 38 Crisper Image: unsharp masking implementation
Lecture 39 Section Summary
Section 4: Image Transformations
Lecture 40 Introduction of Transformations
Lecture 41 Rotation: Introduction of rotation API
Lecture 42 Rotation: Implementation of rotation
Lecture 43 Rotation: Refactoring code
Lecture 44 Rotation: Understanding rotation matrix 2d and warp affine
Lecture 45 Rotation: Enhancement of rotation code for any angle rotation
Lecture 46 Scaling: Understanding scaling transformation
Lecture 47 Scaling: Scaleing up image using inter_linear and inter cubic
Lecture 48 Scaling: Scaling down
Lecture 49 Scaling: scaling differently in x and y direction
Lecture 50 Translation: Understanding translation
Lecture 51 Translation: Implementation of translation
Lecture 52 Perspective: Understanding perspective transformation
Lecture 53 Perspective: Implementation of perspective transformation
Lecture 54 Perspective: Refactoring and enhancing perspective transform
Lecture 55 Section Summary
Section 5: Contrast Enhancements
Lecture 56 Histogram: Introduction to histogram equalization
Lecture 57 Histogram: Histogram equalization for gray image
Lecture 58 Histogram: Histogram equalization for color image
Lecture 59 Gamma Correction: Introduction
Lecture 60 Gamma Correction: Gamma correction implementation grayscale image - 1
Lecture 61 Gamma Correction: Gamma correction implementation grayscale image - 2
Lecture 62 Gamma Correction: Gamma correction on color image
Lecture 63 Adaptive Histogram: Histogram CLAHE introduction
Lecture 64 Adaptive Histogram: Applying Histogram CLAHE on grayscale image
Lecture 65 Adaptive Histogram: Applying Histogram CLAHE on color image
Lecture 66 Saturation correction: Adjusting Contrast and brightness
Lecture 67 Saturation correction: Applying on gray and color image
Lecture 68 Comparison of different algorithms: Introduction
Lecture 69 Comparison of different algorithms with imadjust algorithm (from matlab)
Lecture 70 Custom enhancement: Introduction
Lecture 71 Custom enhancement: algorithm explaination
Lecture 72 Custom enhancement: imadjust for gray image implementation
Lecture 73 Custom enhancement: code refactoring
Lecture 74 Custom enhancement: Add test for color image before coding
Lecture 75 Custom enhancement: 4. run test 1 continue and implement for color image
Lecture 76 Custom enhancement: Refactoring and testing color image
Lecture 77 Section Summary
Section 6: Text and Complex Operations
Lecture 78 Introduction
Lecture 79 Text Operation: Add text task to do
Lecture 80 Text Operation: OpenCV documentation walkthrough
Lecture 81 Text Operation: add text to image
Lecture 82 Text Operation: add rectangle enclosing text
Lecture 83 Text Operation: add rotated text in image
Lecture 84 Text Operation: fix text intensity issue for rotated text added
Lecture 85 Advanced Text Operation: explanation of refactored code
Lecture 86 Advanced Text Operation: Implementation for add text with perspective transform
Lecture 87 Advanced Text Operation: refactoring code
Lecture 88 Section Summary
Section 7: [Advanced] Building image editor application using learnt concepts
Lecture 89 Intro
Lecture 90 design explanation
Lecture 91 Snapshot(memento design pattern)
Lecture 92 Command (command design pattern)
Lecture 93 Code refactoring
Lecture 94 Implementation - editor and state manager - 1
Lecture 95 Implementation - editor and state manager - 2
Lecture 96 Implementation - editor and state manager - 3
Lecture 97 Implementation - editor and state manager - 4
Lecture 98 Implementaion of snapshot class
Lecture 99 Implementation editor and backup manager - 1
Lecture 100 Implementation editor and backup manager - 2
Lecture 101 Implementation editor and backup manager - 3
Lecture 102 Implementation editor and backup manager - 4
Lecture 103 Implementation editor and client: Introduction
Lecture 104 Implementation editor and client: 1
Lecture 105 Implementation editor and client: 2
Lecture 106 Implementation editor and client: 3
Lecture 107 Implementation editor and client: 4
Lecture 108 Implementation editor and client: 5
Lecture 109 Refactoring code: 1
Lecture 110 Refactoring code: 2
Lecture 111 Refactoring code: 3
Lecture 112 Section Summary
Section 8: Publishing image editor code as library
Lecture 113 Introduction
Lecture 114 add publishing and publish manually
Lecture 115 fix publishing issue
Lecture 116 access the published library in different project
Lecture 117 recap of what done and how to test
Lecture 118 add GitHub action for publishing package - 1
Lecture 119 add GitHub action for publishing package - 2
Lecture 120 refactor Gradle build and library publish workflow
Lecture 121 fix workflow issue
Lecture 122 add caching 1
Lecture 123 add caching 2
Lecture 124 successful running of publish library workflow
Lecture 125 add CI test pipeline
Lecture 126 recap and summary
Section 9: [Advanced] Building document scanner app for Android using our library
Lecture 127 Android app introduction
Lecture 128 Android Project setup
Lecture 129 Steps to import OpenCV SDK
Lecture 130 Code review and fix dependency issue
Lecture 131 Code walkthrough
Lecture 132 summary
Section 10: [Advanced] [Extra] Automatic document detection in image
Lecture 133 Intro to auto detection feature
Lecture 134 Algorithm walkthrough
Lecture 135 Understanding each step using OpenCV API
Lecture 136 Detect region of interest code walkthrough
Lecture 137 summary
Section 11: Wrap up
Lecture 138 Ending note
Someone who has an interest in learning about Image processing.,Someone who wants to explore the power of the OpenCV library.,Someone who wants to learn and build OpenCV complex functions.