Skip to content
This repository has been archived by the owner on Nov 12, 2021. It is now read-only.

bimalka98/Computer-Vision-and-Image-Processing

Repository files navigation

License MIT

Notice: Following hyperlinks may not work sometimes due to error "Error 503 Backend is unhealthy" of nbviewer and I could not figure out a solution. Check the corresponding directories maually for the codes and pdfs.😅

Applications section includes only a selected set of algorithms developed by me. You may go through the other directories(if you wish) to find out what is there. Note that some of them may not complete. 😁

Contents❄

  1. Creating a virtual environment for Computer Vision
  2. Editor Configurations
  3. Applications
  4. Assignments
  5. References

Creating a virtual environment for Computer Vision

Complete guide can be found here

Following steps describe only the creation of virtual environments.

  1. Open command Prompt and follow the steps.

  2. Change the Directory to: C:\Python39

  3. Upgrade pip: python -m pip install --upgrade pip

  4. Install virtualenv package: python -m pip install virtualenv

  5. Create virtual environment: virtualenv cv

  6. Change the directory to: C:\Python39\cv\Scripts

  7. Activate the cv environment: activate cv

  8. Then install the required packages

pip install numpy
pip install matplotlib
pip install opencv-python
pip install jupyterlab

Editor Configurations

Using Jupyter Lab

Environment created above can be activated in any folder through GIT Bash using the following commands.

$ source /c/Python39/cv/Scripts/activate
$ jupyter lab

Using Visual Studio Code

Extensions to be installed

  • Jupyter Extension for Visual Studio Code
  • TabNine Autocomplete AI: JavaScript, Python, TypeScript, PHP, C/C++, HTML/CSS, Go, Java, Ruby, C#, Rust, SQL, Bash, Kotlin, Julia, Lua, OCaml, Perl, Haskell, React

Applications

Figure Desciption
Edge Detection- Laplacian of Gaussian kernel, Seperated Gradient(or Laplacian) and Gaussian Kerenels
Smoothed Sobel Gradient and Laplacian for greater Sharpening of images with sensitive features
Corner Detection Algorithm from Scratch: Using Scharr function for gradient and Corner Response function for detecting corners
Counting the rice grains in the rice image
Nearest Neighbor and Bi-linear Interpolation methods of Image Zooming
Normalized Direct Linear Transformation Method for Homography Calculation
Camera Calibration of a Huawei Y5-2017 Back Camera Using a checkerboard and Camera Calibrator app in MATLAB
CIFAR10 Image Classifiers - Linear Classifier / Two-layer fully connected network / CNN
Object Counting on a Convey Belt - a Classical Machine Vision approach

Assignments

This section contains my solutions for assignments of the EN2550 Fundamentals of Image Processing and Machine Vision, a course at University of Moratuwa taught by Dr Ranga Rodrigo.

  1. EN2550 Assignment 1 [PDF], [Code]
  2. EN2550 Assignment 2 [PDF], [Code]
  3. N/A
  4. EN2550 Assignment 4 [PDF], [Code]
  5. EN2550 Assignment 5 [PDF], [Code]

References 📌

  1. UOM's EN2550 Fundamentals of Image Processing and Machine Vision: Lecture Notes and Lecture Videos (on Youtube) by Dr Ranga Rodrigo
  2. Digital Image Processing(Third Edition) by Rafael C. Gonzalez and Richard E. Woods
  3. Computer Vision Algorithms and Applications by Richard Szeliski
  4. Multiple View Geometry in Computer Vision(Second Edition) by Richard Hartley and Andrew Zisserman
  5. MatPlotLib Cheat Sheet