Artikel Lainnya

Thresholding (Binerisasi) dengan Python

🧠 Pengertian Thresholding dalam Computer Vision

Apa itu Binerisasi Gambar

Thresholding atau binerisasi adalah teknik dalam computer vision untuk mengubah gambar grayscale menjadi gambar biner (hitam dan putih). Setiap piksel akan dikonversi menjadi dua nilai: 0 (hitam) atau 255 (putih).

Perbedaan Grayscale dan Binary Image

  • Grayscale: memiliki banyak tingkat intensitas (0–255)
  • Binary: hanya dua nilai (0 dan 255)

⚡ Mengapa Thresholding Penting

Segmentasi Gambar

Thresholding membantu memisahkan objek dari background, sehingga memudahkan analisis lanjutan.

Penyederhanaan Data

Dengan hanya dua nilai piksel, komputasi menjadi jauh lebih cepat dan efisien.

🔍 Jenis-Jenis Thresholding

Thresholding Global

Menggunakan satu nilai threshold untuk seluruh gambar.

Thresholding Adaptive

Nilai threshold ditentukan berdasarkan area lokal gambar.

Otsu Thresholding

Metode otomatis untuk menentukan threshold terbaik berdasarkan histogram.


🛠️ Cara Kerja Thresholding (Binerisasi) dengan Python

Instalasi OpenCV

pip install opencv-python

Contoh Kode Thresholding Global

import cv2

image = cv2.imread('gambar.jpg', 0)

# Thresholding global
_, thresh = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)

cv2.imwrite('binary.jpg', thresh)

⚙️ Implementasi Adaptive Thresholding

Mean Thresholding

thresh_mean = cv2.adaptiveThreshold(
    image, 255,
    cv2.ADAPTIVE_THRESH_MEAN_C,
    cv2.THRESH_BINARY,
    11, 2
)

Gaussian Thresholding

thresh_gaussian = cv2.adaptiveThreshold(
    image, 255,
    cv2.ADAPTIVE_THRESH_GAUSSIAN_C,
    cv2.THRESH_BINARY,
    11, 2
)

🧪 Otsu Thresholding dalam Python

Konsep Otsu

Otsu secara otomatis menentukan nilai threshold dengan memaksimalkan variansi antar kelas (foreground dan background).

Contoh Kode

_, otsu = cv2.threshold(
    image, 0, 255,
    cv2.THRESH_BINARY + cv2.THRESH_OTSU
)

📐 Penjelasan Parameter Threshold

Nilai Threshold

Nilai batas untuk menentukan apakah piksel menjadi hitam atau putih.

Max Value

Nilai maksimum yang diberikan pada piksel yang melebihi threshold (biasanya 255).

🚀 Tips Optimasi Thresholding

Preprocessing dengan Blur

Gunakan Gaussian Blur untuk mengurangi noise sebelum thresholding.

blur = cv2.GaussianBlur(image, (5,5), 0)

Pilih Metode yang Tepat

  • Global → pencahayaan stabil
  • Adaptive → pencahayaan tidak merata
  • Otsu → otomatis

⚠️ Kesalahan Umum

  • Tidak menggunakan grayscale terlebih dahulu
  • Threshold terlalu tinggi atau rendah
  • Mengabaikan noise pada gambar
  • Salah memilih metode thresholding

Made with by Ardheefy