Операция Filter2D сворачивает образ с ядром. Вы можете выполнить эту операцию над изображением, используя метод Filter2D () класса imgproc . Ниже приводится синтаксис этого метода —
filter2D(src, dst, ddepth, kernel)
Этот метод принимает следующие параметры —
-
src — Объект Mat, представляющий источник (входное изображение) для этой операции.
-
dst — объект Mat, представляющий место назначения (выходное изображение) для этой операции.
-
ddepth — переменная типа integer, представляющая глубину выходного изображения.
-
kernel — объект Mat, представляющий ядро свертки.
src — Объект Mat, представляющий источник (входное изображение) для этой операции.
dst — объект Mat, представляющий место назначения (выходное изображение) для этой операции.
ddepth — переменная типа integer, представляющая глубину выходного изображения.
kernel — объект Mat, представляющий ядро свертки.
пример
Следующая программа демонстрирует, как выполнить операцию Filter2D над изображением.
import org.opencv.core.Core; import org.opencv.core.CvType; import org.opencv.core.Mat; import org.opencv.imgcodecs.Imgcodecs; import org.opencv.imgproc.Imgproc; public class Filter2D { public static void main( String[] args ) { //Loading the OpenCV core library System.loadLibrary( Core.NATIVE_LIBRARY_NAME ); //Reading the Image from the file and storing it in to a Matrix object String file ="E:/OpenCV/chap11/filter_input.jpg"; Mat src = Imgcodecs.imread(file); //Creating an empty matrix to store the result Mat dst = new Mat(); // Creating kernel matrix Mat kernel = Mat.ones(2,2, CvType.CV_32F); for(int i = 0; i<kernel.rows(); i++) { for(int j = 0; j<kernel.cols(); j++) { double[] m = kernel.get(i, j); for(int k = 1; k<m.length; k++) { m[k] = m[k]/(2 * 2); } kernel.put(i,j, m); } } Imgproc.filter2D(src, dst, -1, kernel); Imgcodecs.imwrite("E:/OpenCV/chap11/filter2d.jpg", dst); System.out.println("Image Processed"); } }
Предположим, что следующим является входное изображение filter_input.jpg, указанное в вышеуказанной программе.
Выход
При выполнении программы вы получите следующий вывод:
Image Processed
Если вы откроете указанный путь, вы можете наблюдать выходное изображение следующим образом —