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 |
|