From 468244c44de24348bded665a00a128f0fdefc3ed Mon Sep 17 00:00:00 2001 From: Sanyam <118151964+SanyamGarg12@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:35:06 +0530 Subject: [PATCH 01/10] Create setup.sh Alternate of Makefile to setup the project. --- setup.sh | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 setup.sh diff --git a/setup.sh b/setup.sh new file mode 100644 index 0000000..05ff23e --- /dev/null +++ b/setup.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# Check if OpenCV is installed +echo "Checking if OpenCV is installed..." +if pkg-config --exists opencv4 sdl2; then + echo "OpenCV is installed" +else + echo "OpenCV is not installed" + echo "Installing OpenCV..." + + # Detect OS and install dependencies accordingly + if grep -qi "debian" /etc/os-release; then + echo "Detected Debian-based system" + sudo apt-get update -y + sudo apt-get install libopencv-dev libsdl2-2.0-0 libsdl2-image-dev libsdl2-dev -y + elif [[ "$OSTYPE" == "darwin"* ]]; then + echo "Detected macOS" + brew install opencv sdl2 + elif grep -qi "arch" /etc/os-release; then + echo "Detected Arch Linux" + sudo pacman -Sy opencv hdf5 glew vtk fmt sdl2 + else + echo "Unknown OS, cannot install OpenCV" + exit 1 + fi +fi From 334a210e5445707a4ca742e9f21325e99758032d Mon Sep 17 00:00:00 2001 From: Sanyam <118151964+SanyamGarg12@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:37:51 +0530 Subject: [PATCH 02/10] Update README.md --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7da303e..a2a1a81 100644 --- a/README.md +++ b/README.md @@ -65,9 +65,13 @@ git clone https://github.com/SRA-VJTI/Pixels_Seminar.git cd Pixels_Seminar ``` * Run the installation script + --Option 1: ```sh make install ``` - +--Option 2: +```sh +./setup.sh +``` Installation is done successfully. From e0f83889392f0481275eb2af6721a4ebcf5db04d Mon Sep 17 00:00:00 2001 From: Sanyam <118151964+SanyamGarg12@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:42:17 +0530 Subject: [PATCH 03/10] Update README.md --- README.md | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index a2a1a81..a5c6ecb 100644 --- a/README.md +++ b/README.md @@ -54,24 +54,34 @@ This repository includes basics to : ## Installation Instructions OpenCV library and other dependency needs to be installed on your system, so follow these steps of installation: +I'll fix the Markdown formatting in your README.md file to make it clearer and more consistent. -* Clone SRA-VJTI's Pixel Repository on your system + + +# Installation Guide + +## Clone SRA-VJTI's Pixel Repository ```sh git clone https://github.com/SRA-VJTI/Pixels_Seminar.git -``` +``` -* Change terminal directory inside the cloned repository +## Change Directory ```sh cd Pixels_Seminar ``` -* Run the installation script - --Option 1: + +## Run Installation Script +Choose one of the following options: + +### Option 1 - using make command ```sh make install ``` ---Option 2: + +### Option 2 - using bash script ```sh ./setup.sh ``` -Installation is done successfully. + +After completing these steps, the installation should be successful. From c95bacf699d43e304cd010ea679793b9918b19e9 Mon Sep 17 00:00:00 2001 From: Sanyam <118151964+SanyamGarg12@users.noreply.github.com> Date: Wed, 30 Oct 2024 01:49:49 +0530 Subject: [PATCH 04/10] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index a5c6ecb..684d278 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,11 @@ make install ``` ### Option 2 - using bash script +- Giving permission to execute. +```sh +chmod +x setup.sh +``` +- Executing script ```sh ./setup.sh ``` From 06913ffa5f73f5f079bff2885aa7fcc2648f62fd Mon Sep 17 00:00:00 2001 From: Sanyam <118151964+SanyamGarg12@users.noreply.github.com> Date: Tue, 5 Nov 2024 02:16:56 +0530 Subject: [PATCH 05/10] Update README.md --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 684d278..951ef9e 100644 --- a/README.md +++ b/README.md @@ -54,9 +54,6 @@ This repository includes basics to : ## Installation Instructions OpenCV library and other dependency needs to be installed on your system, so follow these steps of installation: -I'll fix the Markdown formatting in your README.md file to make it clearer and more consistent. - - # Installation Guide From 537395b15f06ef56e6abd8c4980bcc969ebff497 Mon Sep 17 00:00:00 2001 From: Sanyam <118151964+SanyamGarg12@users.noreply.github.com> Date: Tue, 5 Nov 2024 02:17:55 +0530 Subject: [PATCH 06/10] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 951ef9e..4eeadd8 100644 --- a/README.md +++ b/README.md @@ -55,8 +55,6 @@ This repository includes basics to : OpenCV library and other dependency needs to be installed on your system, so follow these steps of installation: -# Installation Guide - ## Clone SRA-VJTI's Pixel Repository ```sh git clone https://github.com/SRA-VJTI/Pixels_Seminar.git From fbace336000827da460e31eec5b8d56f66f1ed1f Mon Sep 17 00:00:00 2001 From: Sanyam <118151964+SanyamGarg12@users.noreply.github.com> Date: Tue, 5 Nov 2024 02:22:17 +0530 Subject: [PATCH 07/10] Update README.md --- README.md | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/README.md b/README.md index 4eeadd8..b802327 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,91 @@ # PIXELS +`PIXELS` is an introduction to Computer Vision and Image Processing. Similar to a `pixel` which is the fundamental unit of any digital image, the objective is to emphasize the fundamental ideas of image and its algorithm in relation to contemporary technologies, such as the industry standard `OpenCV`. A thorough understanding of the fundamentals can aid in research and system redesign for domain-specific optimizations to meet the hardware needs of edge devices. + +Every program is written in `C++` to provide the flexibility required by programmers. It also includes principles of essential development tools such as `Make` and `Git`. + +## Demonstration +![Blob Detection Demo](./assets/images/blob_demo_2023.gif) + +This repository includes basics to: +1. [C++](./1_cpp_basics/README.md) +2. [Build Systems](./2_build_systems/README.md) +3. [Git and GitHub](./3_git_github/README.md) +4. [Computer Vision](./4_cv_basics) +5. [Assignments](./5_assignments) + +### The aim of this repository is to provide: +- A brief idea of algorithms involved in **Computer Vision**. +- Introduction to Version Control System: **Git** and **GitHub**. +- Computer Vision and Image Processing basics, idea of implementation of various algorithms involved from scratch (instead of any dedicated image processing library like OpenCV). +- Introduction to a commonly used Image Processing Library: **OpenCV**. +- Functionality of **Blob detection** using ROI (Region of Interest). + +## Table Of Contents +- [Table Of Contents](#table-of-contents) +- [C++ basics](./1_cpp_basics/README.md) + - [Typecasting](./1_cpp_basics/0_typecasting/explicit_typecasting.cpp) + - [Namespace](./1_cpp_basics/1_namespace/namespace.cpp) + - [Conditional Statements](./1_cpp_basics/2_conditional_statements/if.cpp) + - [Enumeration](./1_cpp_basics/3_enumeration/enumeration.cpp) + - [Functions](./1_cpp_basics/4_functions/function.cpp) + - [Classes and Objects](./1_cpp_basics/5_classes_and_objects/classes_and_objects.cpp) + - [Templates](./1_cpp_basics/6_templates/class_template.cpp) + - [Arrays](./1_cpp_basics/7_arrays/arrays2d.cpp) + - [Pointers](./1_cpp_basics/8_pointers/pointers.cpp) + - [Vectors](./1_cpp_basics/9_vectors/access_vector.cpp) +- [Build System](./2_build_systems/README.md) +- [Introduction to Git and GitHub](./3_git_github/README.md) + - [Intro to Git](./3_git_github/1_git_intro%20.md) + - [Git Workflow](./3_git_github/2_git_workflow.md) + - [Git commands](./3_git_github/3_git_commands.md) +- [Image Processing](./4_cv_basics) + - [Image Representation](./4_cv_basics/1_image_representation/README.md) + - [Playing with Images](./4_cv_basics/2_playing_with_images/README.md) + - [Interpolation](./4_cv_basics/3_interpolation/README.md) + - [Convolution](./4_cv_basics/4_convolutions_filtering/README.md) + - [Masking](./4_cv_basics/5_masking/README.md) + - [Morphology](./4_cv_basics/6_morphology/README.md) + - [OpenCV](./4_cv_basics/7_opencv_overview/README.md) + - [Blob Detection](./4_cv_basics/8_blob_detection/README.md) +- [Assignments](./5_assignments) +- [Installation Instructions](#installation-instructions) + +## Installation Instructions + +OpenCV library and other dependencies need to be installed on your system, so follow these steps of installation: + +### Clone SRA-VJTI's Pixel Repository +```sh +git clone https://github.com/SRA-VJTI/Pixels_Seminar.git +``` + +### Change Directory +```sh +cd Pixels_Seminar +``` + +### Run Installation Script +Choose one of the following options: + +#### Option 1 - using make command +```sh +make install +``` + +#### Option 2 - using bash script +- Giving permission to execute. +```sh +chmod +x setup.sh +``` +- Executing script +```sh +./setup.sh +``` + +After completing these steps, the installation should be successful. +# PIXELS + `PIXELS` is an introduction to Computer Vision and Image Processing. Similar to a `pixel` which is the fundamental unit of any digital image, the objective is to emphasise the fundamental ideas of image and its algorithm in relation to contemporary technologies, such as the industry standard `OpenCV`. A thorough understanding of the fundamentals can aid in research and system redesign for domain-specific optimisations to meet the hardware needs of edge devices. Every program is written in `C++` to provide the flexibility required by programmers. It also includes principles of essential development tools such as `Make` and `Git`. From da45fa5defac5150bda493f9de192e186739567a Mon Sep 17 00:00:00 2001 From: Sanyam <118151964+SanyamGarg12@users.noreply.github.com> Date: Tue, 5 Nov 2024 02:24:02 +0530 Subject: [PATCH 08/10] Update README.md --- README.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/README.md b/README.md index b802327..79779da 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,39 @@ This repository includes basics to: ## Installation Instructions +OpenCV library and other dependencies need to be installed on your system. Follow these steps for installation: + +### Clone SRA-VJTI's Pixel Repository +```sh +git clone https://github.com/SRA-VJTI/Pixels_Seminar.git +``` + +### Change Directory +```sh +cd Pixels_Seminar +``` + +### Run Installation Script +Choose one of the following options: + +#### Option 1 - Using Make Command +```sh +make install +``` + +#### Option 2 - Using Bash Script +1. Give permission to execute: + ```sh + chmod +x setup.sh + ``` +2. Execute the script: + ```sh + ./setup.sh + ``` + +After completing these steps, the installation should be successful. +## Installation Instructions + OpenCV library and other dependencies need to be installed on your system, so follow these steps of installation: ### Clone SRA-VJTI's Pixel Repository From 10227b918cd26b1887b8dd974244789ab6f4c74d Mon Sep 17 00:00:00 2001 From: Sanyam <118151964+SanyamGarg12@users.noreply.github.com> Date: Tue, 5 Nov 2024 02:30:57 +0530 Subject: [PATCH 09/10] Final README.md --- README.md | 138 +++--------------------------------------------------- 1 file changed, 6 insertions(+), 132 deletions(-) diff --git a/README.md b/README.md index 79779da..3c71d42 100644 --- a/README.md +++ b/README.md @@ -1,124 +1,5 @@ # PIXELS -`PIXELS` is an introduction to Computer Vision and Image Processing. Similar to a `pixel` which is the fundamental unit of any digital image, the objective is to emphasize the fundamental ideas of image and its algorithm in relation to contemporary technologies, such as the industry standard `OpenCV`. A thorough understanding of the fundamentals can aid in research and system redesign for domain-specific optimizations to meet the hardware needs of edge devices. - -Every program is written in `C++` to provide the flexibility required by programmers. It also includes principles of essential development tools such as `Make` and `Git`. - -## Demonstration -![Blob Detection Demo](./assets/images/blob_demo_2023.gif) - -This repository includes basics to: -1. [C++](./1_cpp_basics/README.md) -2. [Build Systems](./2_build_systems/README.md) -3. [Git and GitHub](./3_git_github/README.md) -4. [Computer Vision](./4_cv_basics) -5. [Assignments](./5_assignments) - -### The aim of this repository is to provide: -- A brief idea of algorithms involved in **Computer Vision**. -- Introduction to Version Control System: **Git** and **GitHub**. -- Computer Vision and Image Processing basics, idea of implementation of various algorithms involved from scratch (instead of any dedicated image processing library like OpenCV). -- Introduction to a commonly used Image Processing Library: **OpenCV**. -- Functionality of **Blob detection** using ROI (Region of Interest). - -## Table Of Contents -- [Table Of Contents](#table-of-contents) -- [C++ basics](./1_cpp_basics/README.md) - - [Typecasting](./1_cpp_basics/0_typecasting/explicit_typecasting.cpp) - - [Namespace](./1_cpp_basics/1_namespace/namespace.cpp) - - [Conditional Statements](./1_cpp_basics/2_conditional_statements/if.cpp) - - [Enumeration](./1_cpp_basics/3_enumeration/enumeration.cpp) - - [Functions](./1_cpp_basics/4_functions/function.cpp) - - [Classes and Objects](./1_cpp_basics/5_classes_and_objects/classes_and_objects.cpp) - - [Templates](./1_cpp_basics/6_templates/class_template.cpp) - - [Arrays](./1_cpp_basics/7_arrays/arrays2d.cpp) - - [Pointers](./1_cpp_basics/8_pointers/pointers.cpp) - - [Vectors](./1_cpp_basics/9_vectors/access_vector.cpp) -- [Build System](./2_build_systems/README.md) -- [Introduction to Git and GitHub](./3_git_github/README.md) - - [Intro to Git](./3_git_github/1_git_intro%20.md) - - [Git Workflow](./3_git_github/2_git_workflow.md) - - [Git commands](./3_git_github/3_git_commands.md) -- [Image Processing](./4_cv_basics) - - [Image Representation](./4_cv_basics/1_image_representation/README.md) - - [Playing with Images](./4_cv_basics/2_playing_with_images/README.md) - - [Interpolation](./4_cv_basics/3_interpolation/README.md) - - [Convolution](./4_cv_basics/4_convolutions_filtering/README.md) - - [Masking](./4_cv_basics/5_masking/README.md) - - [Morphology](./4_cv_basics/6_morphology/README.md) - - [OpenCV](./4_cv_basics/7_opencv_overview/README.md) - - [Blob Detection](./4_cv_basics/8_blob_detection/README.md) -- [Assignments](./5_assignments) -- [Installation Instructions](#installation-instructions) - -## Installation Instructions - -OpenCV library and other dependencies need to be installed on your system. Follow these steps for installation: - -### Clone SRA-VJTI's Pixel Repository -```sh -git clone https://github.com/SRA-VJTI/Pixels_Seminar.git -``` - -### Change Directory -```sh -cd Pixels_Seminar -``` - -### Run Installation Script -Choose one of the following options: - -#### Option 1 - Using Make Command -```sh -make install -``` - -#### Option 2 - Using Bash Script -1. Give permission to execute: - ```sh - chmod +x setup.sh - ``` -2. Execute the script: - ```sh - ./setup.sh - ``` - -After completing these steps, the installation should be successful. -## Installation Instructions - -OpenCV library and other dependencies need to be installed on your system, so follow these steps of installation: - -### Clone SRA-VJTI's Pixel Repository -```sh -git clone https://github.com/SRA-VJTI/Pixels_Seminar.git -``` - -### Change Directory -```sh -cd Pixels_Seminar -``` - -### Run Installation Script -Choose one of the following options: - -#### Option 1 - using make command -```sh -make install -``` - -#### Option 2 - using bash script -- Giving permission to execute. -```sh -chmod +x setup.sh -``` -- Executing script -```sh -./setup.sh -``` - -After completing these steps, the installation should be successful. -# PIXELS - `PIXELS` is an introduction to Computer Vision and Image Processing. Similar to a `pixel` which is the fundamental unit of any digital image, the objective is to emphasise the fundamental ideas of image and its algorithm in relation to contemporary technologies, such as the industry standard `OpenCV`. A thorough understanding of the fundamentals can aid in research and system redesign for domain-specific optimisations to meet the hardware needs of edge devices. Every program is written in `C++` to provide the flexibility required by programmers. It also includes principles of essential development tools such as `Make` and `Git`. @@ -174,33 +55,26 @@ This repository includes basics to : OpenCV library and other dependency needs to be installed on your system, so follow these steps of installation: -## Clone SRA-VJTI's Pixel Repository +* Clone SRA-VJTI's Pixel Repository on your system ```sh git clone https://github.com/SRA-VJTI/Pixels_Seminar.git -``` +``` -## Change Directory +* Change terminal directory inside the cloned repository ```sh cd Pixels_Seminar ``` -## Run Installation Script -Choose one of the following options: - -### Option 1 - using make command +* Run the installation script ```sh make install ``` -### Option 2 - using bash script -- Giving permission to execute. +* If unable to run above script, run this script ```sh chmod +x setup.sh -``` -- Executing script -```sh ./setup.sh ``` -After completing these steps, the installation should be successful. +Installation is done successfully. From e8f886c77636d9838ca10ad043d53d8ae3d49770 Mon Sep 17 00:00:00 2001 From: Sanyam <118151964+SanyamGarg12@users.noreply.github.com> Date: Tue, 5 Nov 2024 02:34:33 +0530 Subject: [PATCH 10/10] Adding Build Tools for OS Compatibility --- setup.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index 05ff23e..8d4c367 100644 --- a/setup.sh +++ b/setup.sh @@ -12,13 +12,13 @@ else if grep -qi "debian" /etc/os-release; then echo "Detected Debian-based system" sudo apt-get update -y - sudo apt-get install libopencv-dev libsdl2-2.0-0 libsdl2-image-dev libsdl2-dev -y + sudo apt-get install build-essential libopencv-dev libsdl2-2.0-0 libsdl2-image-dev libsdl2-dev -y elif [[ "$OSTYPE" == "darwin"* ]]; then echo "Detected macOS" brew install opencv sdl2 elif grep -qi "arch" /etc/os-release; then echo "Detected Arch Linux" - sudo pacman -Sy opencv hdf5 glew vtk fmt sdl2 + sudo pacman -Sy base-devel opencv hdf5 glew vtk fmt sdl2 else echo "Unknown OS, cannot install OpenCV" exit 1