OpenCV - ปฏิบัติการทางสัณฐานวิทยา
ในบทก่อนหน้านี้เราได้กล่าวถึงกระบวนการของ erosion และ dilation. นอกจากสองสิ่งนี้แล้ว OpenCV ยังมีการเปลี่ยนแปลงทางสัณฐานวิทยามากขึ้น morphologyEx() ของวิธีการของคลาส Imgproc ใช้เพื่อดำเนินการเหล่านี้กับรูปภาพที่กำหนด
ต่อไปนี้เป็นไวยากรณ์ของวิธีนี้ -
morphologyEx(src, dst, op, kernel)วิธีนี้ยอมรับพารามิเตอร์ต่อไปนี้ -
- src - วัตถุของคลาส Mat แสดงภาพแหล่งที่มา (อินพุต) 
- dst - วัตถุของคลาส Mat แสดงภาพปลายทาง (เอาต์พุต) 
- op - จำนวนเต็มแสดงประเภทของการดำเนินการทางสัณฐานวิทยา 
- kernel - เมทริกซ์เคอร์เนล 
ตัวอย่าง
โปรแกรมต่อไปนี้แสดงให้เห็นถึงวิธีการใช้การดำเนินการทางสัณฐานวิทยา "top-hat" บนรูปภาพโดยใช้ไลบรารี 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");
   } 
}สมมติว่าต่อไปนี้เป็นภาพอินพุต morph_input.jpg ระบุไว้ในโปรแกรมข้างต้น
 
                เอาต์พุต
ในการรันโปรแกรมคุณจะได้รับผลลัพธ์ต่อไปนี้ -
Image Processedหากคุณเปิดเส้นทางที่ระบุคุณสามารถสังเกตภาพที่ส่งออกได้ดังนี้ -
 
                การดำเนินงานเพิ่มเติม
นอกเหนือจากการดำเนินการทางสัณฐานวิทยา TOPHATแสดงให้เห็นในก่อนหน้านี้ exampleOpenCV ให้ความสำคัญกับลักษณะทางสัณฐานประเภทอื่น ๆ ประเภททั้งหมดเหล่านี้แสดงโดยฟิลด์คงที่ที่กำหนดไว้ล่วงหน้า (ค่าคงที่) ของImgproc ชั้นเรียน.
คุณสามารถเลือกประเภทของสัณฐานวิทยาที่คุณต้องการได้โดยส่งค่าที่กำหนดไว้ล่วงหน้าตามลำดับไปยังพารามิเตอร์ op ของ morphologyEx() วิธี.
// Applying Blur effect on the Image
Imgproc.morphologyEx(src, dst, Imgproc.MORPH_TOPHAT, kernel);ต่อไปนี้เป็นค่าที่แสดงถึงประเภทของการดำเนินการทางสัณฐานวิทยาและผลลัพธ์ตามลำดับ
| การทำงานและคำอธิบาย | เอาต์พุต | 
|---|---|
| MORPH_BLACKHAT |   | 
| MORPH_CLOSE |   | 
| MORPH_CROSS |   | 
| MORPH_DILATE |   | 
| MORPH_ELLIPSE |   | 
| MORPH_ERODE |   | 
| MORPH_GRADIENT |   | 
| MORPH_OPEN |   | 
| MORPH_RECT |   | 
| MORPH_TOPHAT |   |