Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java उदाहरण के साथ OpenCV सिंपल थ्रेशोल्ड की व्याख्या


थ्रेशोल्डिंग एक इमेज के सेगमेंटेशन के लिए एक सरल तकनीक है। इसका उपयोग अक्सर बाइनरी इमेजेज बनाने के लिए किया जाता है। सरल थ्रेशोल्डिंग में, दिए गए थ्रेशोल्ड मान से अधिक पिक्सल्स को एक मानक मान से बदल दिया जाता है।

threshold() मेथड दिए गए इमेज पर सरल थ्रेशोल्ड ऑपरेशन करता है। इस मेथड के निम्नलिखित पैरामीटर्स हैं -

  • स्रोत और गंतव्य इमेजेज का प्रतिनिधित्व करने वाले दो Mat ऑब्जेक्ट्स।

  • थ्रेशोल्ड या मानक मान का प्रतिनिधित्व करने वाले दो इंटीजर वेरिएबल्स।

  • सरल थ्रेशोल्ड के प्रकार का प्रतिनिधित्व करने वाला एक इंटीजर वेरिएबल।

उदाहरण

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 SimpleThreshold extends Application {
    @Override
    public void start(Stage stage) throws IOException {
        // OpenCV कोर लाइब्रेरी लोड करना
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        String file = "D:\\Images\\win2.jpg";
        Mat src = Imgcodecs.imread(file, Imgcodecs.IMREAD_GRAYSCALE);
        
        // गंतव्य इमेज स्टोर करने के लिए खाली मैट्रिक्स बनाना
        Mat dst = new Mat(src.rows(), src.cols(), src.type());
        
        // सरल थ्रेशोल्ड लागू करना
        Imgproc.threshold(src, dst, 50, 255, Imgproc.THRESH_BINARY);
        
        // मैट्रिक्स को 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("सिंपल थ्रेशोल्ड");
        stage.setScene(scene);
        stage.show();
    }
    
    public static void main(String args[]) {
        launch(args);
    }
}

इनपुट इमेज

Java उदाहरण के साथ OpenCV सिंपल थ्रेशोल्ड की व्याख्या

आउटपुट

उपरोक्त प्रोग्राम निष्पादित करने पर निम्नलिखित विंडो उत्पन्न करता है -

Java उदाहरण के साथ OpenCV सिंपल थ्रेशोल्ड की व्याख्या

  1. OpenCV का उपयोग करके JavaFX उदाहरण: इमेज की ब्राइटनेस कम करना OpenCV का उपयोग करके JavaFX उदाहरण: इमेज की ब्राइटनेस कम करना

    Java का उपयोग करके इमेज की ब्राइटनेस बदलने का एक तरीका convertTo() मेथड का उपयोग करना है। यह मेथड दी गई मैट्रिक्स पर आवश्यक गणना करती है ताकि इमेज के कंट्रास्ट और ब्राइटनेस को बदला जा सके। यह मेथड 4 पैरामीटर्स स्वीकार करती है −mat − परिणाम रखने के लिए खाली मैट्रिक्स जिसका आकार और प्रकार स्रोत मैट्रि

  1. Java OpenCV लाइब्रेरी का उपयोग करके इमेज में चेहरों का पता कैसे लगाएं? Java OpenCV लाइब्रेरी का उपयोग करके इमेज में चेहरों का पता कैसे लगाएं?

    CascadeClassifier क्लास का उपयोग क्लासिफायर फाइल लोड करने और इमेज में वांछित ऑब्जेक्ट्स का पता लगाने के लिए किया जाता है।इस क्लास की detectMultiScale() मेथड विभिन्न आकारों के कई ऑब्जेक्ट्स का पता लगाती है। यह मेथड स्वीकार करती है −इनपुट इमेज को रखने वाली Mat क्लास का ऑब्जेक्ट।पता लगाए गए चेहरों को स

  1. Java OpenCV लाइब्रेरी का उपयोग करके इमेज कैसे लिखें? Java OpenCV लाइब्रेरी का उपयोग करके इमेज कैसे लिखें?

    OpenCV लाइब्रेरी का उपयोग करके आप इमेज प्रोसेसिंग ऑपरेशन कर सकते हैं जैसे इमेज फ़िल्टरिंग, ज्यामितीय इमेज ट्रांसफॉर्मेशन, कलर स्पेस रूपांतरण, हिस्टोग्राम, आदि।इमेज लिखनाजब भी आप Imgcodecs क्लास की imread() मेथड का उपयोग करके इमेज की सामग्री पढ़ते हैं, तो परिणाम मैट्रिक्स ऑब्जेक्ट में पढ़ा जाता है।आप