मास्क ऑपरेशन में इमेज के प्रत्येक पिक्सल का मान दिए गए मास्क मैट्रिक्स के आधार पर पुनर्गणना किया जाता है, जिसे कर्नेल के रूप में जाना जाता है। मास्किंग को अन्यथा फ़िल्टरिंग के रूप में जाना जाता है।
Imgproc क्लास का filter2D() मेथड एक स्रोत, गंतव्य और कर्नेल मैट्रिक्स स्वीकार करता है और स्रोत मैट्रिक्स को कर्नेल मैट्रिक्स के साथ कन्वोल्व करता है। इस मेथड का उपयोग करके आप इमेज को मास्क या फ़िल्टर कर सकते हैं।
उदाहरण
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 MaskingExample {
public static void main(String[] args) {
// OpenCV कोर लाइब्रेरी लोड करना
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// इनपुट इमेज पढ़ना
String file = "D://images//boy.jpg";
Mat src = Imgcodecs.imread(file);
// परिणाम स्टोर करने के लिए एक खाली मैट्रिक्स बनाना
Mat dst = new Mat();
// कर्नेल1 बनाना
Mat kernel1 = new Mat(3, 3, CvType.CV_8S);
int row = 0, col = 0;
kernel1.put(row, col, 0, -1, 0, -1, 5, -1, 0, -1, 0);
// कर्नेल2 बनाना
Mat kernel2 = Mat.ones(2, 2, CvType.CV_32F);
for (int i = 0; i < kernel2.rows(); i++) {
for (int j = 0; j < kernel2.cols(); j++) {
double[] m = kernel2.get(i, j);
for (int k = 1; k < m.length; k++) {
m[k] = m[k] / (2 * 2);
}
kernel2.put(i, j, m);
}
}
// कर्नेल1 का उपयोग करके इमेज फ़िल्टर करना
Imgproc.filter2D(src, dst, -1, kernel1);
HighGui.imshow("मास्क उदाहरण1", dst);
dst = new Mat();
// कर्नेल2 का उपयोग करके इमेज फ़िल्टर करना
Imgproc.filter2D(src, dst, -1, kernel2);
HighGui.imshow("मास्क उदाहरण2", dst);
HighGui.waitKey();
}
}
इनपुट इमेज

आउटपुट
उपरोक्त प्रोग्राम निष्पादित करने पर निम्नलिखित विंडोज उत्पन्न करता है -
कर्नेल1 - 
कर्नेल2 - 