OpenCV - Morfolojik İşlemler

Önceki bölümlerde, erosion ve dilation. Bu ikisine ek olarak, OpenCV daha morfolojik dönüşümlere sahiptir. morphologyEx() sınıfın yönteminin Imgproc bu işlemleri belirli bir görüntü üzerinde gerçekleştirmek için kullanılır.

Bu yöntemin sözdizimi aşağıdadır -

morphologyEx(src, dst, op, kernel)

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 nesnesi Mat hedef (çıktı) görüntüsünü temsil eder.

  • op - Morfolojik işlemin türünü temsil eden bir tam sayı.

  • kernel - Bir çekirdek matrisi.

Misal

Aşağıdaki program morfolojik işlemin nasıl uygulanacağını gösterir "top-hat" OpenCV kitaplığını kullanarak bir görüntü üzerinde.

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

public class MorphologyExTest {
   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/chap12/morph_input.jpg";
      Mat src = Imgcodecs.imread(file);

      // Creating an empty matrix to store the result
      Mat dst = new Mat();

      // Creating kernel matrix
      Mat kernel = Mat.ones(5,5, CvType.CV_32F);

      // Applying Blur effect on the Image 
      Imgproc.morphologyEx(src, dst, Imgproc.MORPH_TOPHAT, kernel);

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

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

Aşağıdakinin giriş görüntüsü olduğunu varsayalım morph_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 -

Daha Fazla İşlem

Morfolojik operasyona ek olarak TOPHAT, daha önce gösterilen exampleOpenCV, çeşitli diğer morfoloji türlerine de hitap eder. Tüm bu türler, önceden tanımlanmış statik alanlar (sabit değerler) ile temsil edilir.Imgproc sınıf.

İlgili önceden tanımlanmış değerlerini parametreye ileterek ihtiyacınız olan morfoloji türünü seçebilirsiniz. op of morphologyEx() yöntem.

// Applying Blur effect on the Image
Imgproc.morphologyEx(src, dst, Imgproc.MORPH_TOPHAT, kernel);

Aşağıda, morfolojik işlemlerin türünü ve ilgili çıktılarını temsil eden değerler verilmiştir.

Kullanım ve Açıklama Çıktı
MORPH_BLACKHAT
MORPH_CLOSE
MORPH_CROSS
MORPH_DILATE
MORPH_ELLIPSE
MORPH_ERODE
MORPH_GRADIENT
MORPH_OPEN
MORPH_RECT
MORPH_TOPHAT