Nama : Ahmad Ghiffari Fadhil Saputra
NIM : 220605110067
Kelas : A
Mata Kuliah : Linear Algebra
Dosen Pengampuh : Prof. Dr. Suhartono, M.Kom
Jurusan : Teknik Informatika
Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang
=========================================================================================
fungsi transformasi mengambil geometry parameter yang memerlukan sintaks khusus dari bentuk AxB+C+Ddi mana setiap elemen bersifat opsional. Beberapa contoh:
library(magick)
## Warning: package 'magick' was built under R version 4.2.3
## Linking to ImageMagick 6.9.12.3
## Enabled features: cairo, freetype, fftw, ghostscript, heic, lcms, pango, raw, rsvg, webp
## Disabled features: fontconfig, x11
# Example image
kucing <- image_read("kucing.png")
plot(kucing)
# Add 20px left/right and 10px top/bottom
image_border(image_background(kucing, "green"), "#000080", "20x10")
# Trim margins
image_trim(kucing)
# Resize
image_scale(kucing, "300") # width: 300px
image_scale(kucing, "x300") # height: 300px
# Rotate or mirror
image_rotate(kucing, 45)
image_flip(kucing)
image_flop(kucing)
# Brightness, Saturation, Hue
image_modulate(kucing, brightness = 80, saturation = 120, hue = 90)
# Paint the shirt orange
image_fill(kucing, "orange", point = "+100+200", fuzz = 20)
Dengan image_fill kita dapat mengisi mulai dari piksel point. Parameter
fuzz memungkinkan isian menyilang untuk piksel yang berdekatan dengan
warna serupa. Nilainya harus antara 0 dan 256^2 menentukan jarak
geometris maksimal antara warna yang dianggap sama.
Filter dan Efek
ImageMagick juga memiliki banyak efek standar :
# Add randomness
image_blur(kucing, 10, 5)
image_noise(kucing)
# Silly filters
image_charcoal(kucing)
image_oilpaint(kucing)
image_negate(kucing)
Konvolusi Kernel
Fungsi image_convolve() menerapkan kernel di atas gambar. Konvolusi kernel berarti bahwa setiap nilai piksel dihitung ulang menggunakan jumlah lingkungan berbobot yang ditentukan dalam matriks kernel. Sebagai contoh mari kita lihat kernel sederhana ini:
kern <- matrix(0, ncol = 3, nrow = 3)
kern[1, 2] <- 0.25
kern[2, c(1, 3)] <- 0.25
kern[3, 2] <- 0.25
kern
## [,1] [,2] [,3]
## [1,] 0.00 0.25 0.00
## [2,] 0.25 0.00 0.25
## [3,] 0.00 0.25 0.00
Kernel ini mengubah setiap piksel menjadi rata-rata piksel tetangga horizontal dan vertikalnya, yang menghasilkan sedikit efek buram pada gambar sebelah kanan di bawah ini:
img <- image_resize(logo, "300x300")
img_blurred <- image_convolve(img, kern)
image_append(c(img, img_blurred))
atau menggunakan salah satu kernel standar :
img %>% image_convolve('Sobel') %>% image_negate()
img %>% image_convolve('DoG:0,0,2') %>% image_negate()
Anotasi Teks
Akhirnya berguna untuk mencetak beberapa teks di atas gambar:
# Add some text
image_annotate(kucing, "kucing oyen", size = 70, gravity = "southwest", color = "white")
# Customize text
image_annotate(kucing, "OYEN", size = 100, color = "black", boxcolor = "red",
degrees = 70, location = "+250+100")
# Fonts may require ImageMagick has fontconfig
image_annotate(kucing, "kucing oyen", font = 'Comic Sans', size = 70)
Font yang didukung pada sebagian besar platform meliputi “sans”, “mono”,
“serif”, “Times”, “Helvetica”, “Trebuchet”, “Georgia”, “Palatino”atau
“Comic Sans”.
Menggabungkan dengan Pipa
Setiap fungsi transformasi gambar mengembalikan salinan yang dimodifikasi dari gambar asli. Itu tidak mempengaruhi gambar asli.
kucing <- image_read("kucing.png")
kucing2 <- image_scale(kucing, "100")
image_info(kucing)
## format width height colorspace matte filesize density
## 1 JPEG 152 124 sRGB FALSE 4224 72x72
image_info(kucing2)
## format width height colorspace matte filesize density
## 1 JPEG 100 82 sRGB FALSE 0 72x72
Karenanya untuk menggabungkan transformasi, Anda perlu merantainya:
test <- image_rotate(kucing, 90)
test <- image_background(test, "yellow", flatten = TRUE)
test <- image_border(test, "orange", "10x10")
test <- image_annotate(test, "This is how we combine transformations", color = "black", size = 30)
print(test)
## format width height colorspace matte filesize density
## 1 JPEG 144 172 sRGB TRUE 0 72x72
Menggunakan magrittr sintaks pipa membuatnya sedikit lebih mudah
dibaca
image_read("kucing.png") %>%
image_rotate(270) %>%
image_background("yellow", flatten = TRUE) %>%
image_border("orange", "10x10") %>%
image_annotate("The same thing with pipes", color = "black", size = 30)