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

OpenCV में Java का उपयोग करके इमेज पर हिस्टोग्राम इक्वलाइजेशन


इमेज का हिस्टोग्राम पिक्सल्स के इंटेंसिटी मानों की आवृत्ति दिखाता है। एक इमेज हिस्टोग्राम में, X-अक्ष ग्रे लेवल इंटेंसिटीज दिखाता है और Y-अक्ष इन इंटेंसिटीज की आवृत्ति दिखाता है और इमेज के कंट्रास्ट में सुधार करता है।

Imgproc मेथड का equalizeHist() मेथड स्रोत और गंतव्य इमेजेज का प्रतिनिधित्व करने वाले दो 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 HistogramEquilization 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.equalizeHist(src, dst);
        
        // मैट्रिक्स को 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);
    }
}

इनपुट इमेज

OpenCV में Java का उपयोग करके इमेज पर हिस्टोग्राम इक्वलाइजेशन

आउटपुट

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

OpenCV में Java का उपयोग करके इमेज पर हिस्टोग्राम इक्वलाइजेशन

  1. Java का उपयोग करके OpenCV में ब्लर (एवरेजिंग) कैसे लागू करें? Java का उपयोग करके OpenCV में ब्लर (एवरेजिंग) कैसे लागू करें?

    आप लो-पास फिल्टर का उपयोग करके छवि को फ़िल्टर करके ब्लर कर सकते हैं, यह छवि से उच्च आवृत्ति सामग्री (शोर, किनारे) को हटा देता है। एवरेजिंग OpenCV द्वारा प्रदान की जाने वाली ब्लरिंग तकनीकों में से एक है, यह कर्नेल क्षेत्र में सभी पिक्सेल्स के औसत के साथ केंद्रीय तत्व को प्रतिस्थापित करता है। आप blur

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

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

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

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