Skip to main content

Simple Image Processing Application - A GUI-based image processing tool

Project description

SIPA - Simple Image Processing Application

A PyQt5-based GUI application for educational image processing operations. This package provides basic image processing functionality implemented from scratch using only NumPy (no advanced image processing libraries).

Features

Color Operations

  • RGB to Grayscale conversion
  • Binary thresholding (single and double)
  • RGB channel transformations
  • Contrast adjustment

Geometric Operations

  • 90-degree rotation
  • Image cropping
  • Zoom in/out functionality

Filtering Operations

  • Mean filter (blur)
  • Median filter (noise reduction)
  • Salt and pepper noise addition/removal
  • Unsharp masking (sharpening)
  • Prewitt edge detection

Morphological Operations

  • Erosion
  • Dilation
  • Opening
  • Closing

Histogram Operations

  • Histogram calculation (grayscale and RGB)
  • Histogram equalization
  • Histogram stretching
  • Histogram visualization

Arithmetic Operations

  • Weighted image addition
  • Image division

Installation

From PyPI

pip install sipa

From Source

git clone https://github.com/haydarkadioglu/simple-image-processing-application.git
cd simple-image-processing-application
pip install -e .

Usage

SIPA provides two ways to use the image processing functionality:

1. GUI Application

sipa  # Launch the graphical interface

2. Python Library

Modern Import Style

import sipa
import numpy as np

# Load your image as a numpy array (height, width, 3) for RGB
image = np.array(...)  

# Convert to grayscale
gray_image = sipa.Colors.convert_to_gray(image)

# Apply filters
filtered_image = sipa.Filters.mean_filter(gray_image, kernel_size=5)

# Detect edges
edges = sipa.Filters.detect_edge_prewitt(gray_image)

# Apply morphological operations
binary = sipa.Colors.convert_to_binary(gray_image, threshold=128)
eroded = sipa.Histogram.erode(binary, kernel_size=3)

Legacy Import Style (Backward Compatibility)

# For existing code using the old structure
from Functions import SIP as sip

gray_image = sip.Colors.convert_to_gray(image)
filtered_image = sip.Filters.mean_filter(gray_image, 5)

Quick Example

import sipa
import numpy as np

# Create test image
image = np.random.randint(0, 255, (100, 100, 3), dtype=np.uint8)

# Process image
gray = sipa.Colors.convert_to_gray(image)
binary = sipa.Colors.convert_to_binary(gray, 128)
edges = sipa.Filters.detect_edge_prewitt(gray)
hist = sipa.Histogram.calculate_gray_histogram(gray)

Requirements

  • Python >= 3.7
  • NumPy >= 1.19.0
  • PyQt5 >= 5.15.0
  • matplotlib >= 3.3.0
  • opencv-python >= 4.5.0

Development

Installing Development Dependencies

pip install -e ".[dev]"

Running Tests

pytest

Code Formatting

black sipa/

Linting

flake8 sipa/

Educational Purpose

This project was created for educational purposes to help people understand basic image processing concepts. All image processing operations are implemented from scratch using only NumPy, making it easy to understand the underlying algorithms.

Screenshots

Main Interface

Double Threshold

Filtering Operations

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Author

Haydar Kadıoğlu

Acknowledgments

  • This project is designed for educational purposes
  • All image processing algorithms are implemented from scratch for learning
  • Special thanks to the computer vision and image processing community

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sipa-0.2.0.tar.gz (30.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sipa-0.2.0-py3-none-any.whl (26.2 kB view details)

Uploaded Python 3

File details

Details for the file sipa-0.2.0.tar.gz.

File metadata

  • Download URL: sipa-0.2.0.tar.gz
  • Upload date:
  • Size: 30.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for sipa-0.2.0.tar.gz
Algorithm Hash digest
SHA256 066fb93293f06e5ec747fd5a87c14d81b01141526931075f1f15639fa7f0da4a
MD5 81800b9df6f8094081026ec5b719432d
BLAKE2b-256 68be9cf240856f9e9439c7b21a2e3c76b5ff80022cfe1862bc1881f2122f0ebb

See more details on using hashes here.

File details

Details for the file sipa-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: sipa-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 26.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for sipa-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a7dd63e358c3e9f4c4e1ab7777cfe76a89393b800007930184a49e9eaf09cac1
MD5 d7d63627be05ac4e6d2da52f663a52fc
BLAKE2b-256 e469687a51f12c7161bf343ad4822a678cfeca5593ca6054f89f72f58253d730

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page