OpenCV - filtr skrzynkowy
Operacja filtra pudełkowego jest podobna do operacji uśredniania rozmycia; nakłada dwustronny obraz na filtr. Tutaj możesz wybrać, czy pudełko ma być znormalizowane, czy nie.
Możesz wykonać tę operację na obrazie za pomocą boxFilter() metoda imgprocklasa. Poniżej znajduje się składnia tej metody -
boxFilter(src, dst, ddepth, ksize, anchor, normalize, borderType)
Ta metoda akceptuje następujące parametry -
src - A Mat obiekt reprezentujący źródło (obraz wejściowy) dla tej operacji.
dst - A Mat obiekt reprezentujący miejsce docelowe (obraz wyjściowy) dla tej operacji.
ddepth - Zmienna typu integer reprezentująca głębokość obrazu wyjściowego.
ksize - A Size obiekt reprezentujący rozmiar rozmazanego jądra.
anchor - zmienna typu integer reprezentująca punkt zakotwiczenia.
Normalize - Zmienna typu boolean określająca pogodę jądra powinna zostać znormalizowana.
borderType - Obiekt będący liczbą całkowitą reprezentujący typ używanego obramowania.
Przykład
Poniższy program demonstruje, jak wykonać operację Box Filter na obrazie.
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Point;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class BoxFilterTest {
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 the objects for Size and Point
Size size = new Size(45, 45);
Point point = Point(-1, -1);
// Applying Box Filter effect on the Image
Imgproc.boxFilter(src, dst, 50, size, point, true, Core.BORDER_DEFAULT);
// Writing the image
Imgcodecs.imwrite("E:/OpenCV/chap11/boxfilterjpg", dst);
System.out.println("Image Processed");
}
}
Załóżmy, że poniżej jest obraz wejściowy filter_input.jpg określone w powyższym programie.
Wynik
Podczas wykonywania programu otrzymasz następujące dane wyjściowe -
Image Processed
Jeśli otworzysz określoną ścieżkę, możesz obserwować obraz wyjściowy w następujący sposób -