Tugas CaIRK 2019
Memanfaatkan algoritma Singular Value Decomposition untuk kompresi gambar
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.
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.
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)
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.
- Masuk ke folder
src
- Jalankan
python main.py
- Pilih nomor menu yang diinginkan
- Masukkan path dari file secara lengkap. Contoh:
D:\chair.jpg
- Jika memilih kompresi menggunakan SVD, pilih tingkat kompresi sesuai dengan rentang yang diberikan
- Image yang dikompresi akan disimpan pada folder
out
dengan format namanamafile_algoritma
Bahasa:
- Python3
Library yang digunakan:
- PIL, imageio, numpy, scipy
- https://www.frankcleary.com/svdimage/
- https://github.com/JoshuaEbenezer/huffman_encoding
- https://github.com/williammfu/svd-image-compression
- http://www.acme.byu.edu/wp-content/uploads/2017/08/SVD_ImageCompression.pdf
- https://cmdlinetips.com/2020/01/image-reconstruction-using-singular-value-decomposition-svd-in-python/