आप लो-पास फिल्टर का उपयोग करके छवि को फ़िल्टर करके ब्लर कर सकते हैं, यह छवि से उच्च आवृत्ति सामग्री (शोर, किनारे) को हटा देता है। बाइलेटरल फ़िल्टरिंग OpenCV द्वारा प्रदान की जाने वाली ब्लरिंग तकनीकों में से एक है, यह -
कुशलतापूर्वक शोर हटाता है
किनारों को तेज रखता है
तुलनात्मक रूप से धीमा
आप bilateralFilter() मेथड का उपयोग करके छवि पर बाइलेटरल फिल्टर लागू कर सकते हैं, यह मेथड स्वीकार करता है
स्रोत और गंतव्य छवियों का प्रतिनिधित्व करने वाले दो Mat ऑब्जेक्ट्स।
पिक्सेल नेबरहुड के व्यास का प्रतिनिधित्व करने वाला एक पूर्णांक।
कलर स्पेस और कोऑर्डिनेट स्पेस में फिल्टर सिग्मा का प्रतिनिधित्व करने वाले पूर्णांक प्रकार के दो चर।
आउटपुट में उपयोग किए जाने वाले बॉर्डर के प्रकार का प्रतिनिधित्व करने वाला एक Integer ऑब्जेक्ट।
उदाहरण
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javafx.application.Application;
import javafx.embed.swing.SwingFXUtils;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.image.WritableImage;
import javafx.stage.Stage;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class BilateralFilterExample extends Application {
public void start(Stage stage) throws IOException {
// OpenCV कोर लाइब्रेरी लोड करना
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// छवि डेटा पढ़ना
String file = "D:\\Images\\window.jpg";
Mat src = Imgcodecs.imread(file);
// गंतव्य मैट्रिक्स बनाना
Mat dst = new Mat(src.rows(), src.cols(), src.type());
// बाइलेटरल फिल्टर लागू करना
Imgproc.bilateralFilter(src, dst, 25, 75, 75, Core.BORDER_DEFAULT);
// मैट्रिक्स को JavaFX राइटेबल इमेज में परिवर्तित करना
Image img = HighGui.toBufferedImage(dst);
WritableImage writableImage = SwingFXUtils.toFXImage((BufferedImage) img, null);
// इमेज व्यू सेट करना
ImageView imageView = new ImageView(writableImage);
imageView.setX(10);
imageView.setY(10);
imageView.setFitWidth(575);
imageView.setPreserveRatio(true);
// Scene ऑब्जेक्ट सेट करना
Group root = new Group(imageView);
Scene scene = new Scene(root, 595, 400);
stage.setTitle("Bilateral Filter Example");
stage.setScene(scene);
stage.show();
}
public static void main(String args[]) {
launch(args);
}
}
इनपुट छवि

आउटपुट
उपरोक्त प्रोग्राम निष्पादित करने पर निम्नलिखित आउटपुट उत्पन्न होता है -
