Anda di halaman 1dari 7

FM-UAD-PBM-04-16/R1

SOAL UJIAN TENGAH SEMESTER GANJIL TA. 2020/2021


PROGRAM PASCASARJANA UNIVERSITAS AHMAD DAHLAN
S2 Teknik
MATA KULIAH : Pengolahan Citra PRODI :
Informatika
Anton Yudhana, Ph.D
DOSEN : KELAS/SEM : A/3
Son Ali Akbar, M.Eng
HARI/TANGGAL : Rabu, 5 Mei 2021 RUANG : -
JAM MULAI / SIFAT
: /60 menit : Take Home
WAKTU UJIAN

PETUNJUK :

Kumpulkan tugas proyek Anda kepada via email dan jangan lupa berikan data diri
mahasiswa

Soal :

1. Siapkan data citra sesuai topik mini project masing-masing kemudian lakukan
pemrosesan citra dengan berbagai metode peningkatan kualitas citra (Image
Enhancement) dan segmentasi citra (Image Segmentation).
2. Hasil dari percobaan tersebut dilampirkan pada lembar jawab dan dikumpulkan
kepada pengawas ujian.

Diverifikasi oleh : Disusun oleh :

Ketua Program Studi Penanggungjawab Keilmuan Dosen Pengampu

Dr. Abdul Fadlil, M.T. Anton Yudhana, M.T., Ph.D


FM-UAD-PBM-04-16/R1

Lembar Jawab UTS


Nama : Arief Setyo Nugroho
NIM : 1908048023
Topik : Klasifikasi Botol Plastik

Jelaskan dengan lugas dan jelas hasil percobaan mini project masing-masing! Semua
hasil disimpan dengan format PDF

1. Data citra
a. Aqua

b. Coca-Cola

c. Fanta

d. Freshtea
FM-UAD-PBM-04-16/R1

e. Sprite

Data Citra menggunakan botol plastik dengan beberapa merek dan ukuran botol yang dipakai
adalah ukuran sedang. Citra diambil menggunakan kamera smartphone Android. Botol
plastik diatas dipilih karena memiliki bentuk yang hampir serupa. Begitu juga dengan warna
yang beberapa botol plastik hampir serupa.

2. Hasil peningkatan citra (Image Enhancement)


FM-UAD-PBM-04-16/R1

Beberapa metode pre-processing yang dilakukan pada project ini adalah:


a. Resize data citra menjadi 277x277 piksel
b. 2D Convolution
- Kelebihan: membuat citra menjadi tegak lurus
- Kekurangan: Masih terdapat sedikit noise
c. Gaussian Blur
- Kelebuhan: Membuat citra menjadi lebih halus
- Kekurangan: Cita menjadi sedikit lebih buram
d. Blur
- Kelebihan: Membuat citra menjadi buram
- Kekurangan: Karena buram citra menjadi sedikit tidak terlihat
e. Median Filtering
- Kelebihan: Meningkatkan kualitas citra dalam dominan spasial yang termasuk
dalam kategori metode non linear filtering
- Kekurangan: Citra masih sedikit noise
f. Bilateral Filtering
- Kelebihan: Noise menghilang
- Kekurangan: Citra menjadi kurang halus.

3. Hasil segmentasi citra (Image Segmentation)


FM-UAD-PBM-04-16/R1

Pada project kali ini proses segmentasi dilakukan dengan 3 percobaan yaitu dengan
menggunakan GracCut, Deteksi Tepi(Canny) dan Watershed.
a. Grabcut
FM-UAD-PBM-04-16/R1

- Kelebihan: Citra yang tersegmentasi hanya citra yang diinginkan (Botol Plastik)
menjadi yang paling dominan
- Kekurangan: Tidak semua citra dapat tersleksi dengan di beberapa percobaan masih
ada citra yang tidak telihat sempurna
b. Deteksi Tepi (Canny)
- Kelebihan: Sistem menyeleksi setiap objek yang terdeteksi didalam citra sehingga
membentuk objek yang diinginkan.
- Kekurangan: Objek lain masih dapat terdeteksi.
c. Watershed
- Kelebihan: Citra dirubah menjadi threshold dan memisahkan objek dengan
background.
- Kekurangan: Masih terdapat objek lain atau backgroun yang masih terthreshold

4. Coding

a. Library

import cv2
import numpy as np
from matplotlib import pyplot as plt

b. Pemanggilan citra dari folder, resize dan pengubahan warna

gambar = cv2.imread('D:/svm/1/Uji data/Sprite/Sprite (5).jpg')


gambar = cv2.resize(gambar, (277,277))
gambar = cv2.cvtColor(gambar,cv2.COLOR_BGR2RGB)

c. Pre-Processing

#2D Convolutional
kernel = np.ones((5,5),np.float32)/25
dst = cv2.filter2D(gambar,-1,kernel)

#Gausian Filter
gaussian = cv2.GaussianBlur(gambar,(5,5),0)

#blur
blur = cv2.blur(gambar,(5,5))

#Median Filtering
median = cv2.medianBlur(gambar,5)

#Bilateral Filtering
bilateral = cv2.bilateralFilter(gambar, 9, 75,75)
FM-UAD-PBM-04-16/R1

d. Segmentasi

#Segemntasi menggunakan fungsi grabCut OpenCV


mask = np.zeros(bilateral.shape[:2],np.uint8)
bgdModel = np.zeros((1,65),np.float64)
fgdModel = np.zeros((1,65),np.float64)
rect=(40,20,150,220)
cv2.grabCut(bilateral,mask,rect,bgdModel,fgdModel,5,cv2.GC_INIT_WITH
_RECT)
mask2 = np.where((mask==2)|(mask==0),0,1).astype('uint8')
img = bilateral*mask2[:,:,np.newaxis]

#Segmentasi menggunakan Deteksi Tepi


edges = cv2.Canny(bilateral, 100,200)

#Segmentasi menggunakan Watershed Segmentation


gray = cv2.cvtColor(bilateral, cv2.COLOR_BGR2GRAY)
a = ret, thresh =
cv2.threshold(gray,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)

e. Plotting Citra

plt.subplot(131),plt.imshow(img),plt.title("Hasil GrabCut")
plt.xticks([]), plt.yticks([])
plt.subplot(132),plt.imshow(edges),plt.title("Hasil Deteksi Tepi")
plt.xticks([]), plt.yticks([])
plt.subplot(133),plt.imshow(thresh, 'gray'),plt.title("Hasil Deteksi
Watershed")
plt.xticks([]), plt.yticks([])
plt.show()

Anda mungkin juga menyukai