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

Java OpenCV लाइब्रेरी का उपयोग करके इमेज कंटूर कैसे ड्रा करें?


कंटूर किसी विशेष आकृति की सीमा के साथ सभी बिंदुओं को जोड़ने वाली रेखा के अलावा कुछ नहीं है। इसका उपयोग करके आप -

  • किसी ऑब्जेक्ट का आकार ढूंढ सकते हैं।

  • किसी ऑब्जेक्ट का क्षेत्रफल गणना कर सकते हैं।

  • किसी ऑब्जेक्ट का पता लगा सकते हैं।

  • किसी ऑब्जेक्ट को पहचान सकते हैं।

आप findContours() मेथड का उपयोग करके इमेज में विभिन्न आकृतियों, ऑब्जेक्ट्स के कंटूर ढूंढ सकते हैं। इसी तरह आप ड्रा कर सकते हैं।

आप drawContours() मेथड का उपयोग करके इमेज के पाए गए कंटूर ड्रा कर सकते हैं। यह मेथड निम्नलिखित पैरामीटर्स स्वीकार करता है -

  • परिणाम इमेज स्टोर करने के लिए एक खाली Mat ऑब्जेक्ट।

  • पाए गए कंटूर रखने वाला एक लिस्ट ऑब्जेक्ट।

  • ड्रा करने के लिए कंटूर निर्दिष्ट करने वाला एक इंटीजर मान (-ve मान सभी को ड्रा करने के लिए)।

  • कंटूर का रंग निर्दिष्ट करने वाला एक Scalar ऑब्जेक्ट।

  • कंटूर की मोटाई निर्दिष्ट करने वाला एक इंटीजर मान।

उदाहरण

import java.util.ArrayList;
import java.util.List;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfPoint;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class DrawingContours {
    public static void main(String args[]) throws Exception {
        // OpenCV कोर लाइब्रेरी लोड करना
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        String file = "D:\\Images\\shapes.jpg";
        Mat src = Imgcodecs.imread(file);
        
        // स्रोत इमेज को बाइनरी में कनवर्ट करना
        Mat gray = new Mat(src.rows(), src.cols(), src.type());
        Imgproc.cvtColor(src, gray, Imgproc.COLOR_BGR2GRAY);
        Mat binary = new Mat(src.rows(), src.cols(), src.type(), new Scalar(0));
        Imgproc.threshold(gray, binary, 100, 255, Imgproc.THRESH_BINARY_INV);
        
        // कंटूर खोजना
        List contours = new ArrayList<>();
        Mat hierarchy = new Mat();
        Imgproc.findContours(binary, contours, hierarchy, Imgproc.RETR_TREE,
            Imgproc.CHAIN_APPROX_SIMPLE);
        
        // कंटूर ड्रा करना
        Scalar color = new Scalar(0, 0, 255);
        Imgproc.drawContours(src, contours, -1, color, 2, Imgproc.LINE_8,
            hierarchy, 2, new Point());
        
        HighGui.imshow("कंटूर ड्रा करना", src);
        HighGui.waitKey();
    }
}

इनपुट इमेज

Java OpenCV लाइब्रेरी का उपयोग करके इमेज कंटूर कैसे ड्रा करें?

आउटपुट

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

Java OpenCV लाइब्रेरी का उपयोग करके इमेज कंटूर कैसे ड्रा करें?

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

    Imgproc क्लास की cvtColor() मेथड इमेज के रंग को एक से दूसरे में बदलती है। यह मेथड तीन पैरामीटर्स स्वीकार करती है −src − स्रोत को दर्शाने वाला एक मैट्रिक्स ऑब्जेक्ट।dst − गंतव्य को दर्शाने वाला एक मैट्रिक्स ऑब्जेक्ट।code − गंतव्य इमेज के रंग को दर्शाने वाला एक पूर्णांक मान।रंगीन इमेज को ग्रेस्केल में

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

    Imgproc क्लास की cvtColor() मेथड इमेज के रंग को एक से दूसरे में बदलती है। यह मेथड तीन पैरामीटर्स स्वीकार करती है −src − स्रोत को दर्शाने वाला एक मैट्रिक्स ऑब्जेक्ट।dst − गंतव्य को दर्शाने वाला एक मैट्रिक्स ऑब्जेक्ट।code − गंतव्य इमेज के रंग को दर्शाने वाला एक पूर्णांक मान।रंगीन इमेज को ग्रेस्केल में

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

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