Video Processing dalam Computer Vision
🧠 Pengertian Video Processing dalam Computer Vision Apa itu Video...
Berikut adalah penjelasan step-by-step dari skrip Python yang kamu berikan untuk mendeteksi tingkat kematangan buah menggunakan analisis warna HSV:
import cv2
import numpy as np
import matplotlib.pyplot as pltcv2 (OpenCV): Digunakan untuk membaca gambar, mengubah ruang warna, melakukan masking, dan menambahkan teks pada gambar.numpy (np): Digunakan untuk memproses matriks piksel, khususnya menentukan batas warna dalam bentuk array.matplotlib.pyplot (plt): Digunakan untuk menampilkan hasil gambar akhir di lingkungan seperti Google Colab.def cek_kematangan_colab(image_path):
img = cv2.imread(image_path)
if img is None:
print("Gambar tidak ditemukan! Pastikan path file sudah benar di Google Colab.")
return
img_resized = cv2.resize(img, (500, 500))image_path. Jika file tidak ditemukan atau path salah, proses akan dihentikan.img_resized) agar ukuran data seragam dan proses komputasi lebih konsisten.hsv = cv2.cvtColor(img_resized, cv2.COLOR_BGR2HSV)lower_green = np.array([35, 40, 40])
upper_green = np.array([85, 255, 255])
lower_yellow = np.array([15, 40, 40])
upper_yellow = np.array([35, 255, 255])Di sini ditentukan batas bawah (lower) dan batas atas (upper) nilai HSV untuk dua kategori warna:
mask_green = cv2.inRange(hsv, lower_green, upper_green)
mask_yellow = cv2.inRange(hsv, lower_yellow, upper_yellow)
pixels_green = cv2.countNonZero(mask_green)
pixels_yellow = cv2.countNonZero(mask_yellow)
total_pixels = pixels_green + pixels_yellowcv2.inRange membuat gambar biner (mask). Piksel yang masuk dalam rentang warna akan diubah menjadi putih (255), dan yang di luar rentang menjadi hitam (0).cv2.countNonZero menghitung jumlah piksel yang berwarna putih pada masing-masing mask untuk mengetahui seberapa banyak warna hijau dan kuning yang terdeteksi.total_pixels adalah jumlah gabungan dari piksel hijau dan kuning yang ditemukan.if total_pixels == 0:
status = "Warna buah tidak dikenali (Bukan hijau/kuning)"
warna_teks = (255, 0, 0)
else:
persen_matang = (pixels_yellow / total_pixels) * 100
if persen_matang > 80:
status = f"Matang Sempurna ({persen_matang:.1f}%)"
warna_teks = (0, 255, 0)
elif persen_matang > 30:
status = f"Hampir Matang ({persen_matang:.1f}%)"
warna_teks = (255, 165, 0)
else:
status = f"Mentah ({persen_matang:.1f}%)"
warna_teks = (0, 0, 255)total_pixels == 0), sistem mengeluarkan status tidak dikenali.cv2.putText(img_resized, f"Status: {status}", (20, 40),
cv2.FONT_HERSHEY_SIMPLEX, 0.7, warna_teks, 2)Hasil klasifikasi berupa teks status dicetak langsung di atas gambar img_resized pada koordinat $(20, 40)$ dengan warna yang sesuai (warna_teks).
img_rgb = cv2.cvtColor(img_resized, cv2.COLOR_BGR2RGB)
plt.figure(figsize=(6, 6))
plt.imshow(img_rgb)
plt.axis('off')
plt.show()plt.imshow dan plt.show() digunakan untuk merender gambar tersebut langsung di dalam notebook Colab tanpa membuka jendela baru.if __name__ == "__main__":
cek_kematangan_colab("drive/MyDrive/AI/mentah.jpg")Bagian ini menjalankan fungsi utama dengan memasukkan jalur (path) gambar mentah yang tersimpan di Google Drive kamu sebagai target analisis.


Hasilnya bisa dilihat pada video berikut ini
Made with ❤ by Ardheefy