HELLO!
Teknik Informatika UIN MAULANA MALIK IBRAHIM MALANG|| Lalu Egiq Fahalik Anggara_220605110066 |kelas B
linier algebra by Prof. Dr. Suhartono, M.Kom
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
library(magick)
# Reading from a local computer.
inp_img <- image_read("https://th.bing.com/th/id/R.014fc07eaab4bd687ee7b629c8663272?rik=QVP%2bnFTzCI8H%2fQ&riu=http%3a%2f%2f2.bp.blogspot.com%2f_Cc3gulUhlvs%2fTOsoFb7qtAI%2fAAAAAAAACr0%2fDkQKKvMpbUU%2fw1200-h630-p-k-no-nu%2fgambar-binatang.jpg&ehk=k3g8Gan9C8wQbpXMkX9WxMDXq9JGLREez3owzASfzXg%3d&risl=&pid=ImgRaw&r=0")
#menapilkan spesifikasi gambar sesuai gambar yang di masukan
image_info(inp_img)
## format width height colorspace matte filesize density
## 1 JPEG 700 562 sRGB FALSE 64536 72x72
#menapilkan gambar yang dimasukan
plot(inp_img)
#mengganti kuliatas atau mengedit gambar sepeti brignest saturation dan juga hue
mod_img <- image_modulate(inp_img, brightness = 120, saturation = 700, hue = 20)
plot(mod_img)
mod_img <- image_modulate(inp_img, brightness = 190, saturation = 70, hue = 20)
plot(mod_img)
library(EBImage)
Image <- readImage("https://blog-images.reddoorz.com/uploads/image/file/3311/mount-rinjani.jpg")
print(Image)
## Image
## colorMode : Color
## storage.mode : double
## dim : 1200 844 3
## frames.total : 3
## frames.render: 1
##
## imageData(object)[1:5,1:6,1]
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.4039216 0.4156863 0.4156863 0.4078431 0.4039216 0.4039216
## [2,] 0.3960784 0.4078431 0.4117647 0.4000000 0.4000000 0.4039216
## [3,] 0.3882353 0.4000000 0.4000000 0.3960784 0.3960784 0.4078431
## [4,] 0.3843137 0.3921569 0.3960784 0.4000000 0.4039216 0.4039216
## [5,] 0.3882353 0.3882353 0.3921569 0.4078431 0.4117647 0.4039216
hist(Image)
menyesuaikan Kecerahan (Brightness) Pada code ini, saya mencoba untuk mengubah kecerahan gambar dengan menggunakan tanda (+) dan (-). Saya menambahkan 0.2 dan mengurangi 0.2 untuk intensitasnya. Lalu, plot disini, digunakan untuk menampilkan kedua gambar tersebut. dapat dilihat perbedaan gambarnya dibawah ini.
Image1 <- Image + 0.2
Image2 <- Image - 0.2
par(mfrow= c(1,2))
plot(Image1)
plot(Image2)
Menambahkan Kontras
Pada code ini, saya mencoba untuk menambahkan kontras pada gambar menggunakan perkalian. Berbeda dengan code sebelumnya yang menambahkan (+) dan (-). Untuk gambar pertama dikali dengan 0.5, dan gambar kedua dikali 2. terlihat perbedaannya pada gambar dibawah ini.
Image3 <- Image * 0.5
Image4 <- Image * 2
par(mfrow = c(1,2))
plot(Image3)
plot(Image4)
Koreksi Gamma
Perlu kita ketahui, Gamma adalah nama dari sebuah operasi nonlinier yang digunakan untuk code dan decode luminance atau tristimulus nilai-nilai dalam vidio atau sistem gambar. Pada gambar pertama menggunakan nilai 2 dan gambar kedua menggunakan nilai 0.7 dengan pengaplikasian simbol (^).
Image5 <- Image ^ 2
Image6 <- Image ^ 0.7
par(mfrow = c(1,2))
plot(Image5)
plot(Image6)
Memotong Gambar (Cropping)
Code dibawah ini digunakan untuk memotong gambar. Rentang gambar yang saya miliki adalah 800:533, sehingga tidsk boleh melebihi angka itu dalam menginputkan.
display(Image[189:500, 95:600,])
Transformasi Spasial
Code dibawah ini akan menampilkan output gambar yang miring. Maka, digunakan code rotate yang telah tersedia dari EBImage.
Imagetr <- translate(rotate(Image, 90), c(90, 0))
display(Imagetr)
Manajemen Warna Pada code ini, color mode yang terlihat pada output sebelumnya adalah ‘color’ akan berubah menjadi ‘grayscale’.
colorMode(Image) <- Grayscale
display(Image)
## Only the first frame of the image stack is displayed.
## To display all frames use 'all = TRUE'.
Image <- readImage("https://blog-images.reddoorz.com/uploads/image/file/3311/mount-rinjani.jpg")
print(Image)
## Image
## colorMode : Color
## storage.mode : double
## dim : 1200 844 3
## frames.total : 3
## frames.render: 1
##
## imageData(object)[1:5,1:6,1]
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.4039216 0.4156863 0.4156863 0.4078431 0.4039216 0.4039216
## [2,] 0.3960784 0.4078431 0.4117647 0.4000000 0.4000000 0.4039216
## [3,] 0.3882353 0.4000000 0.4000000 0.3960784 0.3960784 0.4078431
## [4,] 0.3843137 0.3921569 0.3960784 0.4000000 0.4039216 0.4039216
## [5,] 0.3882353 0.3882353 0.3921569 0.4078431 0.4117647 0.4039216
print(Image)
## Image
## colorMode : Color
## storage.mode : double
## dim : 1200 844 3
## frames.total : 3
## frames.render: 1
##
## imageData(object)[1:5,1:6,1]
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 0.4039216 0.4156863 0.4156863 0.4078431 0.4039216 0.4039216
## [2,] 0.3960784 0.4078431 0.4117647 0.4000000 0.4000000 0.4039216
## [3,] 0.3882353 0.4000000 0.4000000 0.3960784 0.3960784 0.4078431
## [4,] 0.3843137 0.3921569 0.3960784 0.4000000 0.4039216 0.4039216
## [5,] 0.3882353 0.3882353 0.3921569 0.4078431 0.4117647 0.4039216
colorMode(Image) <- Color
display(Image)
Filter
Code ini membuat gambar yang kita inputkan terlihat blur dengan menggunakan low-pass filter dan high-past filter. Code dibawah ini yang menggunakan LOW-PASS filter.
fLow <- makeBrush(21, shape= 'disc', step=FALSE)^2
fLow <- fLow/sum(fLow)
Image.fLow <- filter2(Image, fLow)
display(Image.fLow)