Professional Documents
Culture Documents
LKP2 - Medina Fitri Maulida - G6401211096
LKP2 - Medina Fitri Maulida - G6401211096
LKP2 - Medina Fitri Maulida - G6401211096
G6401211096
Kelas Paralel P3
Program
import cv2
from google.colab.patches import cv2_imshow
# Menampilkan hasil
cv2_imshow(threshold_h)
cv2.waitKey(0)
cv2_imshow(threshold_s)
cv2.waitKey(0)
cv2_imshow(threshold_v)
cv2.waitKey(0)
citra_hsv_manual = citra.copy()
maxrgb = max(r, g, b)
minrgb = min(r, g, b)
# Value
v = maxrgb
# Saturation
if v == 0:
s = 0
else:
s = (v - minrgb) / v
# Hue
if v == minrgb:
h = 0
elif v == r:
h = int(60 * ((g - b) / (v - minrgb)))
elif v == g:
h = int(60 * (2 + ((b - r) / (v - minrgb))))
elif v == b:
h = int(60 * (4 + ((r - g) / (v - minrgb))))
if h < 0:
h += 360
h = h % 360
citra_hsv_manual[i, j, 0] = h
citra_hsv_manual[i, j, 1] = s * 255
citra_hsv_manual[i, j, 2] = v
# Menampilkan hasil
cv2_imshow(threshold_h)
cv2.waitKey(0)
cv2_imshow(threshold_s)
cv2.waitKey(0)
cv2_imshow(threshold_v)
cv2.waitKey(0)
Penjelasan Program
● Program dibuat sesuai dengan langkah-langkah yang diminta pada soal. Namun, pada
langkah kedua, digunakan dua metode berbeda untuk mengubah citra menjadi HSV
Color Space. Kode di bagian atas mengubahnya dengan fungsi cvtColor, sementara
kode di bagian bawah menggunakan rumus konversi secara manual.
● Rataan masing-masing hue, saturation, dan value dilakukan dengan menggunakan loop
for: menjumlahkan nilai di setiap koordinat piksel, lalu membaginya dengan jumlah piksel
yang ada.
● Thresholding juga dilakukan dengan menggunakan loop for terhadap masing-masing
koordinat piksel sesuai permintaan soal.
Ouput
Hasil antara konversi menggunakan fungsi cvtColor dan menggunakan rumus manual
menunjukkan perbedaan. Output yang yang menggunakan fungsi semuanya sesuai dengan
permintaan soal, sementara yang dilakukan secara manual memiliki perbedaan pada output
hue.