OpenCV - Basit Eşik

Eşikleme, bir görüntü bölümleme yöntemidir, genel olarak ikili görüntüler oluşturmak için kullanılır. Eşikleme, basit eşikleme ve uyarlamalı eşikleme olmak üzere iki türdendir.

Basit Eşikleme

Basit eşikleme işleminde, değerleri belirtilen eşik değerinden daha büyük olan piksellere standart bir değer atanır.

Yöntemi kullanarak bir görüntü üzerinde basit eşik işlemi gerçekleştirebilirsiniz threshold() of Imgproc classBu yöntemin sözdizimi aşağıdadır.

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

Bu yöntem aşağıdaki parametreleri kabul eder -

  • src - Sınıfın bir nesnesi Mat kaynak (giriş) görüntüsünü temsil eder.

  • dst - Sınıfın bir nesnesi Mat hedef (çıktı) görüntüsünü temsil eder.

  • thresh - Eşik değerini temsil eden çift tipli bir değişken.

  • maxval - Piksel değeri eşik değerden fazla ise verilecek değeri temsil eden çift tipli bir değişken.

  • type - Kullanılacak eşik türünü temsil eden tam sayı tipi bir değişken.

Misal

Aşağıdaki program, OpenCV'de bir görüntü üzerinde basit eşikleme işleminin nasıl gerçekleştirileceğini gösterir.

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");
   }
}

Aşağıdakinin giriş görüntüsü olduğunu varsayalım thresh_input.jpg yukarıdaki programda belirtilmiştir.

Çıktı

Programı çalıştırırken aşağıdaki çıktıyı alacaksınız -

Image Processed

Belirtilen yolu açarsanız, çıktı görüntüsünü aşağıdaki gibi gözlemleyebilirsiniz -

Diğer basit eşik türleri

Buna ek olarak THRESH_BINARYÖnceki örnekte gösterilen işlem, OpenCV çeşitli diğer eşik işlem türlerini de sunar. Tüm bu türler, önceden tanımlanmış statik alanlar (sabit değerler) ile temsil edilir.Imgproc sınıf.

Önceden tanımlanmış ilgili değeri adlı parametreye ileterek, ihtiyacınız olan eşik işleminin türünü seçebilirsiniz. type of threshold() yöntem.

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

Aşağıda, çeşitli eşik işlem türlerini ve ilgili çıktılarını temsil eden değerler yer almaktadır.

Kullanım ve Açıklama Çıktı
THRESH_BINARY
THRESH_BINARY_INV
THRESH_TRUNC
THRESH_TOZERO
THRESH_TOZERO_INV