OpenCV - Ambang Sederhana

Thresholding merupakan salah satu metode segmentasi citra, secara umum digunakan untuk membuat citra biner. Thresholding ada dua jenis yaitu thresholding sederhana dan thresholding adaptif.

Thresholding Sederhana

Dalam operasi thresholding sederhana, piksel yang nilainya lebih besar dari nilai ambang batas yang ditentukan, ditetapkan dengan nilai standar.

Anda dapat melakukan operasi ambang sederhana pada gambar menggunakan metode ini threshold() dari Imgproc class, Berikut adalah sintaks dari metode ini.

threshold(src, dst, thresh, maxval, type)

Metode ini menerima parameter berikut -

  • src - Objek kelas Mat mewakili gambar sumber (masukan).

  • dst - Objek kelas Mat mewakili gambar tujuan (keluaran).

  • thresh - Variabel tipe ganda yang mewakili nilai ambang batas.

  • maxval - Variabel tipe ganda yang mewakili nilai yang akan diberikan jika nilai piksel lebih dari nilai ambang batas.

  • type - Variabel tipe integer yang mewakili tipe ambang batas yang akan digunakan.

Contoh

Program berikut mendemonstrasikan bagaimana melakukan operasi thresholding sederhana pada image di OpenCV.

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class Thresh {
   public static void main(String args[]) {
      // Loading the OpenCV core library
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );

      // Reading the Image from the file and storing it in to a Matrix object
      String file ="E:/OpenCV/chap14/thresh_input.jpg";
      Mat src = Imgcodecs.imread(file);

      // Creating an empty matrix to store the result
      Mat dst = new Mat();
      Imgproc.threshold(src, dst, 50, 255, Imgproc.THRESH_BINARY);

      // Writing the image
      Imgcodecs.imwrite("E:/OpenCV/chap14/thresh_trunc.jpg", dst);

      System.out.println("Image Processed");
   }
}

Asumsikan bahwa berikut ini adalah gambar input thresh_input.jpg ditentukan dalam program di atas.

Keluaran

Saat menjalankan program, Anda akan mendapatkan output berikut -

Image Processed

Jika Anda membuka jalur yang ditentukan, Anda dapat mengamati gambar keluaran sebagai berikut -

Jenis thresholding sederhana lainnya

Selain itu THRESH_BINARYOperasi yang ditunjukkan dalam contoh sebelumnya, OpenCV melayani berbagai jenis operasi ambang batas lainnya. Semua jenis ini diwakili oleh bidang statis yang telah ditentukan sebelumnya (nilai tetap) dariImgproc kelas.

Anda dapat memilih jenis operasi ambang yang Anda butuhkan, dengan meneruskan masing-masing nilai yang telah ditentukan sebelumnya ke parameter bernama type dari threshold() metode.

Imgproc.threshold(src, dst, 50, 255, Imgproc.THRESH_BINARY);

Berikut ini adalah nilai yang mewakili berbagai jenis operasi ambang batas dan keluarannya masing-masing.

Operasi dan Deskripsi Keluaran
THRESH_BINARY
THRESH_BINARY_INV
THRESH_TRUNC
THRESH_TOZERO
THRESH_TOZERO_INV