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)

Code dibawah ini yang menggunakan HIGH-PASS filter.

fHigh <- matrix(1, nc = 3, nr = 3)
fHigh[2, 2] <- -8
Image.fHigh <- filter2(Image, fHigh)
display(Image.fHigh)