Lompat ke konten utama
←

Mengolah Citra dengan Python

Pelajaran 10 dari 16

Filter dan tepi

Penajaman dan tepi Sobel

Setelah pelajaran ini kamu bisa menajamkan citra dengan kernel penajam dan menghitung besar gradien Sobel untuk menemukan tepi.

±13 menitDiperiksa 28 Sep 2026

Materi

Kernel penajam [[0, −1, 0], [−1, 5, −1], [0, −1, 0]] mengambil lima kali piksel tengah dikurangi empat tetangganya. Jumlah bobotnya 1, sehingga daerah rata tidak berubah; di tepi, selisih dengan tetangga diperbesar sehingga batas tampak lebih tegas. Hasilnya bisa di bawah 0 atau di atas 255, jadi konvolusi dikerjakan di float lalu dipotong dengan np.clip sebelum kembali ke uint8.

Tepi adalah tempat kecerahan berubah tajam, yaitu gradien yang besar. Galeri scikit-image menjelaskan bahwa operator tepi seperti Sobel, Prewitt, dan Scharr menghitung hampiran beda hingga dari gradien. scipy.ndimage.sobel(input, axis) menghitung gradien Sobel di satu sumbu. Dokumentasinya menyebut tepi horizontal ditonjolkan oleh axis=0 dan tepi vertikal oleh axis=1, dan keduanya bisa digabung menjadi besar gradien. Besar gradien adalah √(gx² + gy²), yang dihitung np.hypot(gx, gy) per elemen.

Setelah besar gradien diketahui, tepi dipilih dengan ambang: piksel yang gradiennya melewati ambang dianggap tepi.

import numpy as np
from scipy import ndimage

cakrawala = np.array([[50] * 4, [50] * 4, [150] * 4], dtype=float)  # tepi mendatar
gy = ndimage.sobel(cakrawala, axis=0)
gx = ndimage.sobel(cakrawala, axis=1)
print(gy[1], gx[1])      # gy besar, gx nol: tepinya horizontal

Latihan

0/3 lulus

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

Latihan 3 dari 3

Kamu ingin menonjolkan garis cakrawala (tepi mendatar) di sebuah foto. Menurut dokumentasi scipy.ndimage.sobel, sumbu mana yang dipakai?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke