मॉर्फोलॉजिकल ऑपरेशन्स ऑपरेशन्स का एक सेट है जो दिए गए आकार के अनुसार इमेजेज को प्रोसेस करता है।
इरोजन (Erosion) - इरोजन एक मॉर्फोलॉजिकल ऑपरेशन है जिसके दौरान पिक्सल्स को इमेज सीमाओं से हटा दिया जाता है।
डायलेशन (Dilation) - डायलेशन एक मॉर्फोलॉजिकल ऑपरेशन है जिसके दौरान पिक्सल्स को इमेज सीमाओं में जोड़ा जाता है।
जहां जोड़े/हटाए गए पिक्सल्स की कुल संख्या उपयोग किए गए स्ट्रक्चरिंग एलिमेंट के आयामों पर निर्भर करती है।
मॉर्फोलॉजिकल ओपनिंग - इस ऑपरेशन के दौरान दिए गए इनपुट पर इरोजन लागू किया जाता है और परिणाम पर डायलेशन लागू किया जाता है। इसका उपयोग इमेज के फोरग्राउंड से छोटी वस्तुओं को हटाने के लिए किया जाता है।
मॉर्फोलॉजिकल क्लोजिंग - इस ऑपरेशन के दौरान दिए गए इनपुट पर डायलेशन लागू किया जाता है और परिणाम पर इरोजन लागू किया जाता है। इसका उपयोग इमेज पर छोटी वस्तुओं को हटाने के लिए किया जाता है।
मॉर्फोलॉजिकल टॉप हैट दिए गए इमेज और इसकी ओपनिंग के बीच का अंतर है।
उदाहरण - टॉप हैट
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class TopHatExample {
public static void main(String args[]) {
// OpenCV कोर लाइब्रेरी लोड करना
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// इमेज डेटा पढ़ना
String file = "D:\\Images\\morph_input1.jpg";
Mat src = Imgcodecs.imread(file);
// गंतव्य मैट्रिक्स बनाना
Mat dst = new Mat(src.rows(), src.cols(), src.type());
// कर्नेल मैट्रिक्स ऑब्जेक्ट तैयार करना
Mat kernel = Mat.ones(5, 5, CvType.CV_32F);
// इमेज पर डायलेट लागू करना
Imgproc.morphologyEx(src, dst, Imgproc.MORPH_TOPHAT, kernel);
// इमेज प्रदर्शित करना
HighGui.imshow("ब्लैकहैट ग्रेडिएंट", dst);
HighGui.waitKey();
}
}
इनपुट इमेज

आउटपुट

मॉर्फोलॉजिकल ब्लैक हैट क्लोजिंग और दी गई इमेज के बीच का अंतर है।
उदाहरण - ब्लैक हैट
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class BlackHatExample {
public static void main(String args[]) {
// OpenCV कोर लाइब्रेरी लोड करना
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// इमेज डेटा पढ़ना
String file = "D:\\Images\\morph_input1.jpg";
Mat src = Imgcodecs.imread(file);
// गंतव्य मैट्रिक्स बनाना
Mat dst = new Mat(src.rows(), src.cols(), src.type());
// कर्नेल मैट्रिक्स ऑब्जेक्ट तैयार करना
Mat kernel = Mat.ones(5, 5, CvType.CV_32F);
// इमेज पर डायलेट लागू करना
Imgproc.morphologyEx(src, dst, Imgproc.MORPH_BLACKHAT, kernel);
// इमेज प्रदर्शित करना
HighGui.imshow("ब्लैकहैट ग्रेडिएंट", dst);
HighGui.waitKey();
}
}
इनपुट इमेज

आउटपुट
