https://github.com/vishwa-ud/image-understanding-and-processing
Image Understanding and Processing with OpenCV-Python.
https://github.com/vishwa-ud/image-understanding-and-processing
histogram-equalization imageenhancement iup jupyter-notebook matplotlib opencv-python python3
Last synced: 8 days ago
JSON representation
Image Understanding and Processing with OpenCV-Python.
- Host: GitHub
- URL: https://github.com/vishwa-ud/image-understanding-and-processing
- Owner: Vishwa-ud
- License: mit
- Created: 2025-02-16T04:53:09.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-30T18:00:37.000Z (12 months ago)
- Last Synced: 2025-04-30T19:22:01.405Z (12 months ago)
- Topics: histogram-equalization, imageenhancement, iup, jupyter-notebook, matplotlib, opencv-python, python3
- Language: Jupyter Notebook
- Homepage:
- Size: 73.4 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 📷 Image Understanding and Processing with OpenCV-Python
## 🚀 Introduction
This repository provides an introduction to image processing and understanding using **OpenCV** with **Python**. OpenCV is an open-source computer vision library that allows for real-time image and video processing, making it widely used in fields such as **robotics, AI, and medical imaging**.
## 🔧 Prerequisites
Ensure you have **Python** installed on your system before proceeding. It is recommended to use **Python 3.6 or later**.
---
### 🖼️ Image Processing Topics Covered
1. **Image Smoothing / Blurring Filters using OpenCV**
- Averaging (Lowpass) filter with `cv2.filter2D`
- Box filter with `cv2.boxFilter`
- Simple blur with `cv2.blur`
- Median filter with `cv2.medianBlur` (good for salt-and-pepper noise)
- Gaussian filter with `cv2.GaussianBlur`
2. **Noise Removal Techniques**
- Salt noise removal using Min Filter (PIL)
- Pepper noise removal using Max Filter (PIL)
- Both Salt & Pepper noise removal using Median Filter
3. **PIL-Based Image Processing**
- `ImageFilter.MinFilter` and `ImageFilter.MaxFilter`
- Grayscale conversion using `ImageOps.grayscale`
- Edge detection using `ImageFilter.FIND_EDGES`
4. **Edge Detection**
- Sobel operator using `cv2.Sobel` (X and Y derivatives)
- Laplacian operator using `cv2.Laplacian`
- Laplacian of Gaussian (LoG): combining Gaussian blur + Laplacian
5. **Histogram Equalization**
- Improve contrast of:
- Dark images
- Bright images
- Low contrast images
6. **Image Transformations**
- Negative Transformation (invert pixel values)
- Power-Law (Gamma) Transformation for brightness correction
---
## 📥 Installation
To set up your environment, install the required dependencies using **pip**:
```bash
pip install opencv-python
pip install matplotlib
python -m pip install jupyter
```
## ▶️ Running Jupyter Notebook
To start working with Jupyter Notebook, run the following command:
```bash
python -m notebook
```
This will open **Jupyter Notebook** in your web browser, allowing you to execute and visualize **OpenCV-based image processing** scripts.
## ⌨️ Jupyter Notebook Shortcuts
Here are some essential **Jupyter Notebook keyboard shortcuts** to improve efficiency:
### General Shortcuts
- `Shift + Enter` → Run the current cell and move to the next
- `Ctrl + Enter` → Run the current cell but stay on it
- `Alt + Enter` → Run the current cell and insert a new one below
- `Esc + A` → Insert a new cell **above**
- `Esc + B` → Insert a new cell **below**
- `Esc + D + D` → Delete the selected cell
- `Esc + M` → Convert cell to **Markdown**
- `Esc + Y` → Convert cell to **Code**
- `Esc + L` → Toggle **line numbers** in cell
- `Esc + H` → Show **help menu**
### Navigation
- `Up/Down Arrow` → Move **between cells**
- `Ctrl + Shift + -` → Split a cell at the cursor
- `Shift + Tab` → Show **tooltip** for functions
- `Ctrl + Shift + P` → Open **command palette**
## 🤝 Contributing
Contributions are welcome! Feel free to submit **issues** or **pull requests** to enhance this repository.
## 📜 License
This project is licensed under the **MIT License**. See the `LICENSE` file for more details.