OpenCV - Operasi Morfologi
Pada bab-bab sebelumnya, kami membahas proses erosion dan dilation. Selain keduanya, OpenCV memiliki lebih banyak transformasi morfologis. ItumorphologyEx() dari metode kelas Imgproc digunakan untuk melakukan operasi ini pada gambar tertentu.
Berikut adalah sintaks dari metode ini -
morphologyEx(src, dst, op, kernel)
Metode ini menerima parameter berikut -
src - Objek kelas Mat mewakili gambar sumber (masukan).
dst - objek kelas Mat mewakili gambar tujuan (keluaran).
op - Bilangan bulat yang merepresentasikan jenis operasi Morfologi.
kernel - Matriks kernel.
Contoh
Program berikut menunjukkan bagaimana menerapkan operasi morfologi "top-hat" pada gambar menggunakan pustaka OpenCV.
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");
}
}
Asumsikan bahwa berikut ini adalah gambar input morph_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 -
Lebih Banyak Operasi
Selain operasi morfologi TOPHAT, ditunjukkan di sebelumnya example, OpenCV melayani berbagai jenis morfologi lainnya. Semua jenis ini diwakili oleh bidang statis yang telah ditentukan sebelumnya (nilai tetap) dariImgproc kelas.
Anda dapat memilih jenis morfologi yang Anda butuhkan dengan meneruskan nilai masing-masing yang telah ditentukan sebelumnya ke parameter op dari morphologyEx() metode.
// Applying Blur effect on the Image
Imgproc.morphologyEx(src, dst, Imgproc.MORPH_TOPHAT, kernel);
Berikut ini adalah nilai-nilai yang mewakili jenis operasi morfologi dan keluarannya masing-masing.
Operasi dan Deskripsi | Keluaran |
---|---|
MORPH_BLACKHAT |
|
MORPH_CLOSE |
|
MORPH_CROSS |
|
MORPH_DILATE |
|
MORPH_ELLIPSE |
|
MORPH_ERODE |
|
MORPH_GRADIENT |
|
MORPH_OPEN |
|
MORPH_RECT |
|
MORPH_TOPHAT |
|