মাস্ক অপারেশনে একটি ইমেজের প্রতিটি পিক্সেলের মান একটি প্রদত্ত মাস্ক ম্যাট্রিক্সের উপর ভিত্তি করে পুনরায় গণনা করা হয়, এটি কার্নেল নামে পরিচিত। মাস্কিং অন্যথায় ফিল্টারিং হিসাবে পরিচিত।
filter2D() Imgproc এর পদ্ধতি ক্লাস একটি উত্স, গন্তব্য এবং কার্নেল ম্যাট্রিক্স গ্রহণ করে এবং কার্নেল ম্যাট্রিক্সের সাথে উত্স ম্যাট্রিক্সকে সংহত করে। এই পদ্ধতি ব্যবহার করে আপনি একটি ছবি মাস্ক বা ফিল্টার করতে পারেন।
উদাহরণ
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 ) {
//Loading the OpenCV core library
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
//Reading the input image
String file = "D://images//boy.jpg";
Mat src = Imgcodecs.imread(file);
//Creating an empty matrix to store the result
Mat dst = new Mat();
//Creating kernel1
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);
//Creating kernel2
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);
}
}
//Filtering the image using kernel1
Imgproc.filter2D(src, dst, -1, kernel1);
HighGui.imshow("Mask Example1", dst);
dst = new Mat();
//Filtering the image using kernel2
Imgproc.filter2D(src, dst, -1, kernel2);
HighGui.imshow("Mask Example2", dst);
HighGui.waitKey();
}
} ইনপুট ছবি

আউটপুট
কার্যকর করার সময়, উপরের প্রোগ্রামটি নিম্নলিখিত উইন্ডোগুলি তৈরি করে -
Kernel1 - 
Kernel2 - 