Anda di halaman 1dari 17

LAPORAN PRAKTIKUM PENGOLAHAN CITRA DIGITAL

PERTEMUAN 2

NAMA : Luthfi Ardyansyah.


NRP 152019110
KELAS : IF-CC
TANGGAL PENUGASAN : Sabtu 6 Maret 2021
TANGGAL PENYERAHAN : Senin 8 Maret 2021

LABORATORIUM MULTIMEDIA
PROGRAM STUDI INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
INSTITUT TEKNOLOGI NASIONAL
BANDUNG
2021
PRAKTEK A9- HISTOGRAM CITRA GRAYSCALE
1. Analisis hasil proses histogram dari 5 buah citra keabuan yang berbeda tingkat
kecerahan dan kontrasnya

Gambar 1

Gambar 2
Gambar 3
Gambar 4
2. Jelaskan library matplotlib pada python

Matplotlib adalah library Python yang fokus pada visualisasi data seperti
membuat plot grafik, Visualisasi dari matplotlib adalah sebuah gambar grafik yang
terdapat satu sumbu atau lebih. Setiap sumbu memiliki sumbu horizontal (x) dan sumbu
vertikal (y), dan data yang direpresentasikan menjadi warna
dan glyphs seperti marker (contohnya bentuk lingkaran) atau lines (garis) atau poligon.

3. Jelaskan fungsi dari plt.hist(img.ravel(),255,[0,255])

Berfungsi untuk membuat histogram yang diambil dari gambarnya yang memiliki
nilai maksimus 255.

Judul PRAKTEK A10- HISTOGRAM CITRA RGB


1. Analisis hasil histogram untuk 5 buah citra RGB dengan komposisi warna yang
beragam, serta tingkat kecerahan dan kontras yang berbeda

Gambar 1
Gambar 2
Gambar 3
Gambar 4

Gambar 5

2. Berdasarkan listing program yang diberikan jelaskan masing-masing baris

3. color = ('b', 'g', 'r')


for i, col in enumerate(color):
histo = cv2.calcHist([self.Image], [i], None, [256], [0, 256])
plt.plot(histo, color=col)
plt.xlim([0, 256])
self.displayImage(2)
plt.show()
self.displayImage(2)

 color = ('b', 'g', 'r') 


Adalah tuple, tupe adalah koleksi yang disimpan dan tidak dapat dirubah

 for i, col in enumerate(color): 


Membuat perulangan berdasarkan warna

 histo = cv2.calcHist([self.Image], [i], None, [256], [0, 256]) 


Untuk menghitung histogram dari sekumpulan koleksi/array
 plt.plot(histo, color=col) 
Melakukan Plotting kepada Histogram

 plt.xlim([0, 256]) 
Mengatur kelas sumbu x
 self.displayImage(2) 
Menampilkan image di windows ke 2

 plt.show() 
Melakukan Visualisasi dari hasil Histogram

3. Jelaskan fungsi calcHist


Agar Histogram dapat mengolah data tersebut

PRAKTEK A11- HISTOGRAM EQUALIZATION


1. Jelaskan fungsi dari masing-masing baris

2. hist, bins = np.histogram(self.image.flatten(), 256, [0, 256])


cdf = hist.cumsum()
cdf_normalized = cdf * hist.max() / cdf.max()
cdf_m = np.ma.masked_equal(cdf, 0)
cdf_m = (cdf_m - cdf_m.min()) * 255 / (cdf_m.max() -
cdf_m.min())
cdf = np.ma.filled(cdf_m, 0).astype('uint8')
self.image = cdf[self.image]
self.displayImage(2)

plt.plot(cdf_normalized, color='b')
plt.hist(self.image.flatten(), 256, [0, 256], color='r')
plt.xlim([0, 256])
plt.legend(('cdf', 'histogram'), loc='upper left')
plt.show()

 hist, bins = np.histogram(self.image.flatten(), 256, [0, 256])


untuk mengubah Array menjadi 1 dimennsi dan untk menghitung histogram dari
gambar tersebut

 cdf = hist.cumsum()
unuk menghitung jumlah komulatif elemen array pada sumbu teertentu
 cdf_normalized = cdf * hist.max() / cdf.max()
untuk melakukan normalisasi
 cdf_m = np.ma.masked_equal(cdf, 0)
memasking array yang sama dengan nilai yang diberikan
 cdf_m = (cdf_m - cdf_m.min()) * 255 / (cdf_m.max() -
perhitungan
 cdf = np.ma.filled(cdf_m, 0).astype('uint8')
untuk mengisi nilai Array dengan nilai Skalar
 self.image = cdf[self.image]
mengganti Nilai Array Image menjadi nilai komulatif
 self.displayImage(2)
Menampilkan image di windows ke 2
 plt.plot(cdf_normalized, color='b')
untuk melakukan floating sesuai Normalisasi
 plt.hist(self.image.flatten(), 256, [0, 256], color='r')
untuk membuat histogram dengan Array gambar tersebut
 plt.xlim([0, 256])
mengatus batas sumbu x
 plt.legend(('cdf', 'histogram'), loc='upper left')
membuat teks di Histogram yang terletak diatas kiri
 plt.show()
menampilkan histogram tersebut

3. Analisis perubahan histogram dari citra yang telah disediakan sebelumnya

PRAKTEK B1- TRANSLASI CITRA


1. Lakukan analisis citra dengan mengubah nilai pada fungsi
quarter_h,quarter_w=h/4,w/4
2. Apakah terjadi perubahan nilai piksel setelah dilakukan proses ini? Analisis citra
dimanakan perubahan terjadi dari !jelaskan!
PRAKTEK B2- ROTASI CITRA DAN TRANSPOSE
Tambahkan menu Rotasi dan buatlah sub menu yaitu


-45 Derajat

 45 Derajat
 -90 Derajat
 90 Derajat

 180 Derajat

1. Tambahkan event untuk setiap sub menu di menu rotasi dengan memanggil fungsi
pada listing program diatas
2. Jelaskan mengenai fungsi getRotationMatrix2D dan warpAffine
cv2.getRotationMatrix2D
Agar gambar dapat berputar sesuai dengan apa yang kita inginkan melalui perintah
program tersebut, dan untuk mencari matrix transformasi dirotasi 2D

cv2.warpAffine
Pada affine semua garis akan sejajar pada citra asli akan sejajar juga pada citra
keluaraannya

3. Tambahkan menu Transpose pada GUI QT Designer, gunakan fungsi cv2.transpose


untuk membuat prosedur transpose image
def geometryTranspose(self):
src = cv2.imread("E30.jpg")
image = cv2.transpose(src)
self.Image = image
self.displayImage(2)
PRAKTEK B3- RESIZE
 Menambahkan menu Resize dan sub menu yaitu Zoom In, Zoom out dan Skewed Image
(mengatur image berdasarkan dimensi yang ditentukan)
 Pada pembuatan fungsi ini agar citra keluaran ditampilkan menggunakan cv2.imshow atau
menampilkan windows baru (tidak ditampilkan di img label hasil proses )

1. Ubah tampilan sistem agar pada menu zoom in dapat memperbesar dengan skala 2x,
3x, 4x dan buatkan event untuk dapat menampilkan citra sesuai skala
self.action2x.triggered.connect(self.ZoomIn2x)
self.action3x.triggered.connect(self.ZoomIn3x())
self.action4x.triggered.connect(self.ZoomIn4x())

2. Ubah tampilan sistem agar pada menu zoom out dapat memperbesar dengan skala 1/2,
1/4, 3/4 dan buatkan event untuk dapat menampilkan citra sesuai skala
self.action0_25.triggered.connect(self.ZoomOutsetengah)
self.action0_50.triggered.connect(self.ZoomOutsatuperempat)
self.action0_75.triggered.connect(self.ZoomOuttigaperempat)

PRAKTEK B4- CROP IMAGE


1. Buatkan flowchart dari algoritma di atas!
2. Buatkan program crop image berdasarkan flowchart yang dibuat
def Crop(self):
h, w = self.Image.shape[:2]
# get the strating point of pixel coord(top left)
start_row, start_col = int(h * .1), int(w * .1)
# get the ending point coord (botoom right)
end_row, end_col = int(h * .5), int(w * .5)
crop = self.Image[start_row:end_row, start_col:end_col]
cv2.imshow('Original', self.Image)
cv2.imshow('Crop Image', crop)

3. Analisis citra untuk beberapa kasus pemotongan citra

Anda mungkin juga menyukai