Computer >> Máy Tính >  >> Lập trình >> Java

Che một hình ảnh trong OpenCV là gì?


Trong các phép toán mặt nạ, giá trị của mỗi pixel của hình ảnh được tính toán lại dựa trên ma trận mặt nạ đã cho, đây được gọi là hạt nhân. Mặt nạ còn được gọi là lọc.

filter2D () phương pháp của Imgproc lớp chấp nhận một ma trận nguồn, đích và hạt nhân và chuyển ma trận nguồn với ma trận hạt nhân. Sử dụng phương pháp này, bạn có thể che hoặc lọc hình ảnh.

Ví dụ

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();
   }
}

Hình ảnh đầu vào

Che một hình ảnh trong OpenCV là gì?

Đầu ra

Khi thực thi, chương trình trên tạo các cửa sổ sau -

Kernel1 - Che một hình ảnh trong OpenCV là gì?

Kernel2 - Che một hình ảnh trong OpenCV là gì?