Eigen Values and Eigen Vectors

Eigen Value dan Vektor Eigen dari suatu matriks adalah alat yang sangat berguna dalam berbagai bidang, seperti ilmu data, statistika, probabilitas, fisika, dan teori graf, dll. Untuk Contoh Pendahuluan dalam bab ini, kita akan membahas kompresi gambar menggunakan analisis komponen utama (PCA) dalam R.

Introductory Example from Data Science: Image Compression (Kompresi Gambar)

Untuk memproses gambar untuk permainan video, menganalisis data, kamera keamanan, dll., penting untuk dapat mengompresi gambar dengan efisien karena gambar dapat memakan banyak memori. Jika kita tidak mengompresi gambar dengan efisien, kita mungkin kehilangan terlalu banyak informasi sehingga tidak dapat memulihkan gambar asli, atau jika kita tidak mengompresi cukup, kita mungkin tidak dapat memproses gambar tersebut. Dalam contoh ini, kita akan membahas bagaimana kita mengompresi gambar menggunakan PCA. Dalam proses PCA, kita menghitung nilai-nilai eigen dan vektor eigen dari matriks yang dihasilkan dari gambar input.

Kita akan menggunakan gambar kucing yang ditampilkan pada Gambar 6.1: Gambar ini disimpan dalam format file jpeg dan memiliki ukuran sekitar 1,8MB. Untuk membaca file jpeg tersebut, kita akan menggunakan fungsi readJPEG() dari paket jpeg di R.

Sebelum kalian mencoba, mari kita install package “jpeg” terlebih dahulu.

Langkahnya adalah sebagai berikut:

## libraryneedtoopenajpgfile
library(jpeg)

Setelah memuat package “jpeg”, langkah selanjutnya adalah:

## Downloadfromtheauthor'swebsite
myurl <-"http://polytopes.net/Tora_Sleeping.JPG"
z <-tempfile()
download.file(myurl,z,mode="wb")
Kitty <-readJPEG(z)
## dimension
d <-dim(Kitty)
d
## [1] 2340 4160    3

Argumen dari fungsi readJPEG() adalah nama file. Fungsi dim() akan mengembalikan dimensi matriks “Kitty”.

library(magick)
## Linking to ImageMagick 6.9.12.3
## Enabled features: cairo, freetype, fftw, ghostscript, heic, lcms, pango, raw, rsvg, webp
## Disabled features: fontconfig, x11
inp_img <- image_read("gambar6.1.png")
plot(inp_img)

Gambar 6.1

Sebuah gambar kucing untuk contoh pengantar. Ini adalah file jpeg dengan ukuran 1,8MB. Kami akan mengompres gambar menggunakan PCA.

d
## [1] 2340 4160    3

Ini memiliki dimensi 2340 × 4160 × 3. Lapisan pertama dari matriks 2340 × 4160 dari “Kitty” menyimpan semua skor warna merah. Lapisan kedua dari matriks 2340 × 4160 dari “Kitty” menyimpan semua skor warna hijau, dan lapisan ketiga dari matriks 2340 × 4160 dari “Kitty” menyimpan semua skor warna biru. Jadi kita memisahkan mereka sebagai tiga matriks:

r <-Kitty[,,1]
g <-Kitty[,,2]
b <-Kitty[,,3]