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

जावा ओपनसीवी लाइब्रेरी का उपयोग करके छवि रूपरेखा कैसे खोजें?


Contours कुछ और नहीं बल्कि एक विशेष आकृति की सीमा के साथ सभी बिंदुओं को मिलाने वाली रेखा है। इसका उपयोग करके आप कर सकते हैं -

  • किसी वस्तु का आकार खोजें।

  • किसी वस्तु के क्षेत्रफल की गणना करें।

  • किसी वस्तु का पता लगाएं।

  • किसी वस्तु को पहचानें।

आप findContours() का उपयोग करके एक छवि में विभिन्न आकृतियों, वस्तुओं की रूपरेखा पा सकते हैं तरीका। यह विधि निम्नलिखित मापदंडों को स्वीकार करती है -

  • एक द्विआधारी छवि।

  • MatOfPoint . प्रकार की एक खाली सूची वस्तु आकृति को स्टोर करने के लिए।

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

  • दी गई छवि की रूपरेखा खोजने के लिए मोड और विधि निर्दिष्ट करने के लिए दो पूर्णांक चर।

उदाहरण

आयात करें;import org.opencv.core.Scalar;import org.opencv.imgcodecs.Imgcodecs;import org.opencv.imgproc.Imgproc;public class FindingContours { public static void main(String args[]) अपवाद फेंकता है {// OpenCV लोड हो रहा है कोर लाइब्रेरी सिस्टम। लोड लाइब्रेरी (कोर.NATIVE_LIBRARY_NAME); स्ट्रिंग फ़ाइल ="D:\\Images\\shapes.jpg"; मैट स्रोत =Imgcodecs.imread (फ़ाइल); // स्रोत छवि को बाइनरी मैट ग्रे में परिवर्तित करना =नया मैट (src.rows (), src.cols (), src.type ()); Imgproc.cvtColor(src, धूसर, Imgproc.COLOR_BGR2GRAY); मैट बाइनरी =नया मैट (src.rows (), src.cols (), src.type (), नया स्केलर (0)); Imgproc.threshold(ग्रे, बाइनरी, 100, 255, Imgproc.THRESH_BINARY_INV); // ढूँढना समोच्च सूची आकृति =नई ArrayList<>(); चटाई पदानुक्रम =नई चटाई (); Imgproc.findContours(बाइनरी, कंट्रोस, पदानुक्रम, Imgproc.RETR_TREE, Imgproc.CHAIN_APPROX_SIMPLE); Iterator it =contours.iterator(); जबकि (it.hasNext ()) {System.out.println (it.next ()); } /* मैट ड्रा =Mat.zeros(binary.size(), CvType.CV_8UC3); के लिए (int i =0; i

आउटपुट

Mat [29*1*CV_32SC2, isCont=true, isSubmat=false, NativeObj=0x19829510,dataAddr=0x19826dc0 ]Mat [ 58*1*CV_32SC2, isCont=true, isSubmat=false, NativeObj=0x19829580,dataAddr=0x19826 ]मैट [ 35*1*CV_32SC2, isCont=true, isSubmat=false, NativeObj=0x19828be0,dataAddr=0x19827100 ]Mat [ 117*1*CV_32SC2, isCont=true, isSubmat=false, NativeObj=0x19829190,dataAddr=0x19827be0 [ 1*1*CV_32SC2, isCont=true, isSubmat=false, NativeObj=0x198292e0,dataAddr=0xba8280 ]Mat [ 78*1*CV_32SC2, isCont=true, isSubmat=false, NativeObj=0x19829350,dataAddr=0x19827680 ]Mat *1*CV_32SC2, isCont=true, isSubmat=false, NativeObj=0x198289b0,dataAddr=0x19827940 ]Mat [120*1*CV_32SC2, isCont=true, isSubmat=false, NativeObj=0x19828e80,dataAddr=0x19827 [b80 ]Mat *CV_32SC2, isCont=true, isSubmat=false, NativeObj=0x19829430,dataAddr=0xb84580 ]Mat [4*1*CV_32SC2, isCont=true, isSubmat=false, NativeObj=0x19829120,dataAddr=0xb84440 ]CV_ 136*1 , isCont=true, isSubmat=false, NativeObj=0x19828ef0,dataAddr=0 x19827f80 ]चटाई [ 120*1*CV_32SC2, isCont=true, isSubmat=false, NativeObj=0x19828b00,dataAddr=0x19828440]

  1. जावा ओपनसीवी लाइब्रेरी का उपयोग करके नकारात्मक छवि को सकारात्मक छवि में कैसे परिवर्तित करें?

    एक नकारात्मक छवि को सकारात्मक में बदलने के लिए - ImageIO.read() विधि का उपयोग करके आवश्यक छवि पढ़ें। छवि की ऊंचाई और चौड़ाई प्राप्त करें। लूप के लिए नेस्टेड का उपयोग करना छवि में प्रत्येक पिक्सेल से होकर गुजरता है। getRGB() विधि का उपयोग करके पिक्सेल मान प्राप्त करें। एक पिक्सेल से प्

  1. जावा ओपनसीवी लाइब्रेरी का उपयोग करके रंगीन छवि को ग्रेस्केल में कैसे परिवर्तित करें?

    cvtColor() Imgproc . की विधि वर्ग छवि के रंग को एक से दूसरे में बदलता/बदलता है। यह विधि तीन मापदंडों को स्वीकार करती है - स्रोत - स्रोत का प्रतिनिधित्व करने वाली एक मैट्रिक्स वस्तु। डीएसटी - गंतव्य का प्रतिनिधित्व करने वाली एक मैट्रिक्स वस्तु। कोड - एक पूर्णांक मान जो गंतव्य छवि के रंग को द

  1. जावा ओपनसीवी लाइब्रेरी का उपयोग करके एक छवि कैसे लिखें?

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