Langkah Awal Menuju Computer Vision!
Di materi sebelumnya, kita mengecek isi peta menggunakan koordinat manual seperti peta[1][1].
Bayangkan ini: Kamera HP modern memiliki 12 Juta Piksel (12 Megapixel). Apakah kamu mau menulis kode peta[y][x] sebanyak 12 juta kali? Tentu tidak! 😱
Solusinya adalah membuat Mesin Scanner Otomatis. Mesin ini akan membaca gambar dari kiri ke kanan, lalu turun ke bawah, secara otomatis sampai selesai!
Berbeda dengan while True yang berputar tanpa henti, for digunakan untuk berputar sesuai jumlah barang yang ada di dalam keranjang (List).
Logikanya: "Untuk setiap item di dalam list, lakukan sesuatu."
baris_piksel = [0, 1, 0, 1]
for piksel in baris_piksel:
print("Komputer melihat angka:", piksel)
Kode di atas akan mencetak 4 baris teks secara otomatis karena ada 4 angka di dalam list!
Misi: Lengkapi kode di bawah ini agar komputer bisa menghitung ada berapa angka 1 (cahaya) di dalam sebuah baris piksel.
baris = [0, 0, 1, 1, 0, 1]
jumlah_cahaya = 0
# Buat mesin scanner membaca 'baris'
for nilai ____ baris:
# Jika nilai yang dibaca adalah 1
if nilai ____ 1:
# Tambahkan jumlah_cahaya dengan 1
jumlah_cahaya = jumlah_cahaya + ____
print("Total piksel bercahaya:", jumlah_cahaya)
Gambar yang sesungguhnya (2D List) memiliki Banyak Baris, dan di setiap baris ada Banyak Piksel.
Untuk memprosesnya, kita butuh Nested Loop (Perulangan Bersarang)! Loop pertama untuk membaca baris (Sumbu Y), loop kedua untuk membaca piksel di dalam baris tersebut (Sumbu X).
for baris in gambar:
for piksel in baris:
# Lakukan sesuatu pada piksel di sini!
Salin kode ini! Kita akan membuat program Computer Vision super sederhana. Program ini akan melakukan scanning gambar 3x3 dan mengubah angka 1 menjadi gambar Bintang (⭐).
gambar = [
[0, 1, 0],
[1, 1, 1],
[0, 1, 0]
]
print("=== HASIL SCANNER KAMERA ===")
# Loop Pertama: Mengambil satu baris (Y)
for baris in gambar:
hasil_scan = ""
# Loop Kedua: Mengambil tiap angka di baris tersebut (X)
for piksel in baris:
if piksel == 1:
hasil_scan += "⭐ " # Terang
else:
hasil_scan += "⬛ " # Gelap
# Cetak baris yang sudah diubah jadi gambar visual
print(hasil_scan)