This repository contains basic OpenCV tutorials for those who wants to get started with it.
- Clone or Download this repo.
Notes For References Computer Vision is a cutting edge field of Computer Science that aims to enable computers to understand what is being seen in an image.
-
Computer Vision is a Challenging!
-
Why is it so hard? So Many Reasons!
- Camera sensor & lens limitations
- Viewpoint variations
- Changing Lighting
- Scaling
- Non-rigid Deformations
- Occlusion
- Clutter
- Object class variations
- Ambiguous Images/Optical Illusions
-
Despite the difficulty, Computer Vision scientists have had many success stories!
- Robotic Navigation – Self Driving Cars
- Face Detection & Recognition
- Search Engine Image Search
- License Plate Reading
- Snapchat & Instagram Face Filters
- Object Recognition
- And Many more
So why OpenCV in Python?
- Python is one of the easiest languages for beginners.
- It is extremely powerful for data science and machine learning applications.
- It stores images in numpy arrays which allows us to do some very powerful operations quite easily.
What's in the Notebooks
- Basics of Computer Vision & OpenCV
- Image Manipulations
- Image Segmentation
- Object Detection
- Face, People & Car Detection
- Some Fun Projects
Prerequisites
- Basic programming is useful, but not needed I’ll walk you through most of the code. Exposure to Numpy would be helpful.
- High School Level Math
- Laptop Webcam
- Python 3.X
- OpenCV 3.4.X or 4.X
Python & OpenCV Windows Installation
- STEP 1 – Download & Install Anaconda Python Package Go to: https://www.anaconda.com/download
- Select appropriate version 3.6
- To Test – Go to windows command prompt and type: • jupyter notebook
- STEP 2 -OpenCV Installation
- Open command prompt and type: pip install opencv-python
Notebook Details
Basics of Computer Vision & OpenCV (Notebook 0-1.4)
- What are Images?
- Image formation
- Storing images on computers
- Getting Started with OpenCV: reading, writing and displaying images
- Gray scaling
- Color Spaces
- Histograms
- Drawing images
- Basics of Computer Vision & OpenCV (Notebook 0-1.4)
Image Manipulations (Notebook 2.0-2..4)
- Transformations, affine and non affine
- Translations
- Rotations
- Scaling, re-sizing and interpolations
- Image Pyramids
- Cropping
- Arithmetic Operations
- Bitwise Operations and Masking
- Convolutions & Blurring
- Sharpening
- Thresholding and Binarization
- Dilation, erosion, opening and closing
- Edge Detection & Image Gradients
- Perspective & Affine Transforms
- Fun Stuff : Live Webcam Sketch of yourself
Image Segmentation (Notebook 3.1-4.4)
- Understanding contours
- Sorting contours by size or left to right
- Approximating contours & finding their convex hull
- Matching Contour Shapes
- Fun Stuff – Identifying Shapes
- Line Detection
- Circle Detection
- Blob Detection
- Fun Stuff – Counting Circles and Ellipses
Object Detection (Notebook 5.1-5.5)
- Object Detection using Template Matching
- Fun Stuff – Finding Waldo
- Finding Corners
- SIFT, SURF, FAST, BREIF & ORB
- Fun Stuff – Object Detection using Features
- Histogram of Gradients (HoG) as a Descriptor
Face, People & Car Detection (Notebook 6.1-6.2)
- Understanding HAAR Cascade Classifiers
- Face & Eye Detection
- Fun Stuff - Car Detection & Pedestrian (Body) Detection