Lompat ke konten utama
←

Mengolah Citra dengan Python

Pelajaran 1 dari 16

Citra sebagai larik

Piksel, dimensi, dan uint8

Setelah pelajaran ini kamu bisa membaca shape dan dtype larik citra, mengambil nilai satu piksel, dan menghitung ukuran memori citra tanpa kompresi.

±14 menitDiperiksa 28 Sep 2026

Materi

Citra digital adalah kisi titik kecil bernama piksel. Bagi numpy, Pillow, dan scikit-image, citra hanyalah larik angka: citra abu-abu berbentuk (tinggi, lebar), citra berwarna berbentuk (tinggi, lebar, kanal). Panduan scikit-image menegaskan urutannya: dimensi pertama adalah baris, dimensi kedua kolom, dan titik asal [0, 0] ada di pojok kiri atas. Jadi citra[2, 3] berarti baris ke-2 dari atas, kolom ke-3 dari kiri, dan citra[2, 3, 2] adalah kanal ketiga (biru) piksel itu.

Pillow memakai urutan sebaliknya untuk ukuran: atribut size berisi (lebar, tinggi), dan koordinat ditulis (x, y). Keduanya sama benarnya; yang penting sadar sedang memakai yang mana.

Handbook Pillow mendefinisikan mode "L" sebagai piksel 8 bit abu-abu dan "RGB" sebagai 3 × 8 bit. Di numpy keduanya ber-dtype uint8, bilangan bulat tanpa tanda dengan rentang 0 sampai 255: 0 gelap penuh, 255 terang penuh. Satu nilai uint8 memakan 1 byte, sehingga citra tanpa kompresi memakan tinggi × lebar × kanal byte, dan numpy melaporkannya lewat atribut nbytes. Angka ini menjelaskan kenapa foto kamera memakan puluhan megabyte begitu dibuka, walau berkas JPEG-nya kecil.

import numpy as np
from PIL import Image

bendera = np.zeros((2, 3, 3), dtype=np.uint8)   # 2 baris, 3 kolom, RGB
bendera[0] = [255, 0, 0]                          # baris atas merah
bendera[1] = [255, 255, 255]                      # baris bawah putih
print(bendera.shape, bendera.dtype, bendera.nbytes)   # (2, 3, 3) uint8 18

im = Image.fromarray(bendera)
print(im.mode, im.size)                           # RGB (3, 2)  <- (lebar, tinggi)

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 2 dari 3

Sebuah foto 1280 × 720 piksel RGB disimpan di numpy sebagai uint8 tanpa kompresi. Berapa byte memori yang dipakainya? Tulis angkanya saja.

Latihan 3 dari 3

Sebuah larik citra memiliki shape (480, 640, 3). Pernyataan mana yang benar menurut konvensi numpy dan Pillow?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke