KuKuXia / OpenCV_for_Beginners

Some useful codes and notes for OpenCV.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OpenCV

OpenCV is an image processing library created by Intel and later supported by Willow Garage and now maintained by Itseez. It is available on Mac, Windows, Linux. Works in C, C++, and Python.

The most important thing is that it's Open Source and free.

For more image processing basics, please check my Image_Processing_100_Questions repository:

This repository contains some code files copied from some online courses and web tutorials. I modified these files so that it's more clear and easy for beginners to learn. The original links are listed below:

  1. OpenCV Python Tutorials

  2. OpenCV Python Tutorial For Beginners

  3. Pysource

  4. Learn OpenCV

Installation

  1. Download this repository and extract it:

    git clone git@github.com:KuKuXia/OpenCV_for_Beginners.git
  2. Download the anaconda and install it.

  3. Create a virtual environment:

    conda create -n CV python=3.6
  4. Install the packages:

    cd OpenCV_for_Beginners/
    pip install -r requirements.txt
  5. Open one file and enjoy your journey.

Note

  1. Python scalar operations are faster than Numpy scalar operations. So for operations including one or two elements, Python scalar is better than Numpy arrays. Numpy takes advantage when size of array is a little bit bigger.
  2. Normally, OpenCV functions are faster than Numpy functions. So for same operation, OpenCV functions are preferred. But, there can be exceptions, especially when Numpy works with views instead of copies.

Content

The fully documented files are listed below. I'm working on adding more comments to my codes.

Name Note
01_Basics_Read_and_Write_Image Read and write image
01_Color_Spaces_in_OpenCV Using RealSense to learn the color space
02_Read_and_Write_Images_from_Camera Read and write images from a camera
03_Draw_Geometric_Shapes_on_Image Draw draw geometric shapes on image
04_Read_Camera_Frame_Rate Read camera frame rate
04_Set_Camera_Properties Set the properties of the camera
05_Show_Date_and_Time_on_Videos Show date and time on videos
06_Show_Pixel_Details_using_Mouse Show pixel details by callback function
07_Draw_Lines_using_Mouse Draw lines using callback function
07_Draw_Shapes_using_Mouse Draw rectangle and circle using callback function
08_Basic_Properties_and_Operations Basic properties and operations on images
09_Arithmetic_Operations Arithmetic operation on images
10_Trackerbar_RGB_Chanels Learn RGB channels with trackerbar
10_Trackerbar_Switch_and_Text Trackerbar with switch and text
11_Object_Detection_and_Object_Tracking_using_RealSense Using RealSense to do real time object tracking and detection
12_Image_Global_Thresholding Image thresholding
12_Image_Thresholding_with_Matplotlib Image thresholding with matplotlib
13_Adaptive_thresholding Adaptive thresholding
14_Otsu's_Binarization Otsu's Binarization
31_Homography Homography between two images
31_Object_Tracking_Advanced Object tracking
31_Multi_Object_Tracking Multi object tracking
39_Shape_Matching Shape matching using Hu moments
42_Blob_Detection Blob detection
42_Find_the_Center(Centroid)_of_a_Blob Find the center(centroid) of a blob using moment
43_Seamless_Cloning Seamless cloning
43_Seamless_Cloning_with_Different_Clone_Mode Seamless cloning with different clone mode
44_Non_Photorealistic_Rendering Non-Photorealistic Rendering using domain transform for edge-aware filtering
45_ApplyColorMap_for_Pseudocoloring Apply color map for pseudo coloring
46_Filling_Holes_in_an_Image Filling holes in an image
47_Delaunay_Triangulation_and_Voronoi_Diagram Delaunay Triangulation and Voronoi Diagram
48_Image_Alignment_based_on_ORB_Features Image alignment based on ORB features
48_Image_Alignment_using_ECC_Euclidean Image alignment using ECC Maximization(Euclidean)
48_Image_Alignment_using_ECC_Homography Image alignment using ECC Maximization(Homography)
49_Warp_One_Triangle_to_Another Warp one triangle to another
50_Rotation_Matrix_to_Euler_Angles Rotation matrix to Euler angles
51_Select_ROI Select region of interest
52_Automatic_Red_Eye_Remover Automatic red Eye remover
53_Virtual_Keyboard RealSense virtual keyboard
54_Alpha_Blending Alpha blending
55_Selective_Search_for_Object_Detection Selective search for object detection
56_High_Dynamic_Range High dynamic range
57_Exposure_Fusion Exposure Fusion
58_OCR_using_tesseract OCR using tesseract
59_Convex_Hull Convex Hull
60_Heatmap_for_Logo_Detection Heatmap for logo detection

About

Some useful codes and notes for OpenCV.

License:GNU General Public License v3.0


Languages

Language:Jupyter Notebook 97.1%Language:Python 2.9%