/ImageCompression

A CLI program that use Singular Value Decomposition algorithm to do image compression

Primary LanguagePython

Image Compression with SVD

Tugas CaIRK 2019

Memanfaatkan algoritma Singular Value Decomposition untuk kompresi gambar

General Description

Algoritma SVD merupakan salah satu metode dalam aljabar linier untuk memfaktorisasi suatu matriks A berukuran mxn menjadi tiga buah matriks: matriks ortogonal U dan V, serta matriks diagonal S sesuai persamaan berikut.

a=usv

Algoritma SVD ini sangats sering digunakan dalam bidang data science dan pengolahan citra. Melalui tugas ini, kita dapat mengetahui bagaimana algoritma SVD dimanfaatkan untuk melakukan image compression. Dari ketiga matriks hasil SVD, kita dapat melakukan aproksimasi suatu gambar yang mampu memakan ukuran lebih sedikit dari file gambar original.

Matrix U, S, dan V

Matriks U dan V terdiri atas eigenvector matriks dari ATA dan AAT berurutan. Diagonal pada matriks S terdiri atas akar dari eigenvalue matriks ATA atau AAT (kedua matriks ini memiliki eigenvalue yang sama)

Pemanfaatan Rank dalam Kualitas Kompresi Gambar

Rank dapat digunakan untuk menentukan kualitas kompresi gambar. Algoritma SVD melakukan aproksimasi berdasarkan matrix yang telah direduksi menjadi low-rank matrix dengan rank yang digunakan adalah rank terkecil yang paling bisa memberikan hasil terbaik untuk kompresi gambar.

Cara Menggunakan Program

  1. Masuk ke folder src
  2. Jalankan python main.py
  3. Pilih nomor menu yang diinginkan
  4. Masukkan path dari file secara lengkap. Contoh: D:\chair.jpg
  5. Jika memilih kompresi menggunakan SVD, pilih tingkat kompresi sesuai dengan rentang yang diberikan
  6. Image yang dikompresi akan disimpan pada folder out dengan format nama namafile_algoritma

Teknologi

Bahasa:

  • Python3

Library yang digunakan:

  • PIL, imageio, numpy, scipy

Referensi

  1. https://www.frankcleary.com/svdimage/
  2. https://github.com/JoshuaEbenezer/huffman_encoding
  3. https://github.com/williammfu/svd-image-compression
  4. http://www.acme.byu.edu/wp-content/uploads/2017/08/SVD_ImageCompression.pdf
  5. https://cmdlinetips.com/2020/01/image-reconstruction-using-singular-value-decomposition-svd-in-python/