Skip to content

loiht2/image-compression-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Image Compression App

An application wrote by Python language (using CustomTkinter library) to compress images.

Table of Contents:

Overview

In this project, I create an image compression application using the "customtkinter" library. I use four different image compression algorithms: PCA, FFT, Wavelet, and SVD. Since the image compression algorithms are still in the early stages of development, you are free to modify or manage them as you see fit. The only thing we need to worry about in this situation is how the app functions.

User manual :>

1. Applications and Packages that we use to run my project

  • Applications: Visual Studio Code used with Python 3.11 (3.11.7) installed from Microsoft Store.
  • Packages:
    1. CustomTkinter 5.2.1: pip install customtkinter==5.2.1
    2. Packaging 23.2: pip install packaging==23.2
    3. Pillow 10.1.0: pip install Pillow==10.1.0
    4. Numpy 1.26.2: pip uninstall numpy==1.26.2
    5. PyWavelet 1.5.0: pip install PyWavelets==1.5.0
    6. Sklearn 1.3.2: pip install scikit-learn==1.3.2
    7. Matplotlib 3.8.2: pip install matplotlib==3.8.2
    8. Scikit-image: pip install scikit-image==0.22.0

Use the following command to install all of the above packages if you haven't already. pip install -r requirements.txt

2. Test my project

This is application's interface: image

  1. Add an image: image

  2. Data input: SVD rank, FFT keep, Wavelet keep, PCA component: image

More detail:

  • I used to use .jpg or .png files.
  • Width and Height are the picture's dimensions on both sides.
  • Size on disk is the image's size as it is saved to a computer.
  • Compession Ratio is the ratio of the compressed image's size to its original size.
  • Compression Factor is the ratio of the image's size between its original and compressed sizes.
  • MSE stands for Mean Squared Error,the lower its value, the better the image quality and conversely, the higher its value, the poorer the image quality.
  • PSNR stands for Peak Signal-to-Noise Ratio, the higher its value, the better the image quality and conversely, the lower its value, the poorer the image quality.
  • Compression Time is the duration of image compression, the amount of time needed for the app to complete its full operation.

About

a Python app for compressing images

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages