মাস্ক অপারেশনে একটি ইমেজের প্রতিটি পিক্সেলের মান একটি দেওয়া মাস্ক ম্যাট্রিক্স (একে কার্নেল বলা হয়) এর ভিত্তিতে রি-ক্যালকুলেট করা হয়। মাস্কিং অন্যথায় ফিল্টারিং নামে পরিচিত।
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();
// কার্নেল ১ তৈরি
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);
// কার্নেল ২ তৈরি
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);
}
}
// কার্নেল ১ ব্যবহার করে ইমেজ ফিল্টার করা
Imgproc.filter2D(src, dst, -1, kernel1);
HighGui.imshow("Mask Example1", dst);
dst = new Mat();
// কার্নেল ২ ব্যবহার করে ইমেজ ফিল্টার করা
Imgproc.filter2D(src, dst, -1, kernel2);
HighGui.imshow("Mask Example2", dst);
HighGui.waitKey();
}
}
ইনপুট ইমেজ

আউটপুট
প্রোগ্রাম রান করলে নিচের উইন্ডোগুলো জেনারেট হবে:
Kernel 1 - 
Kernel 2 - 