মাস্ক অপারেশনে একটি ইমেজের প্রতিটি পিক্সেলের মান একটি প্রদত্ত মাস্ক ম্যাট্রিক্সের উপর ভিত্তি করে পুনরায় গণনা করা হয়, এটি কার্নেল নামে পরিচিত। মাস্কিং অন্যথায় ফিল্টারিং হিসাবে পরিচিত।
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 -