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

ओपनसीवी जावा का उपयोग कर छवि में संभावित वस्तुओं के आसपास अंडाकार कैसे फिट करें?


आप fitEllipse() का उपयोग करके किसी आकृति पर दीर्घवृत्त फिट कर सकते हैं . की विधि org.opencv.imgproc.Imgproc कक्षा। यह विधि MatOfPoint2f वर्ग की एक वस्तु को स्वीकार करती है, उस दीर्घवृत्त की गणना करती है जो दिए गए बिंदुओं के सेट में फिट होगा और एक RotatedRect ऑब्जेक्ट लौटाएगा।

>इसका उपयोग करके आप छवि में संभावित वस्तुओं के चारों ओर दीर्घवृत्त खींच सकते हैं। ऐसा करने के लिए,

  • इमरीड () . का उपयोग करके छवि पढ़ें Imgproc वर्ग की विधि।

  • cvtColor() . का उपयोग करके इसे ग्रेस्केल छवि में बदलें Imgproc वर्ग की विधि।

  • थ्रेशोल्ड () . का उपयोग करके धूसर छवि को बाइनरी में बदलें Imgproc वर्ग की विधि।

  • findContours () . का उपयोग करके छवि में आकृति खोजें Imgproc वर्ग की विधि।

  • अब, RotatedRec . प्राप्त करें fitEllipse() के लिए MatOfPoint2f के रूप में प्रत्येक समोच्च मान को दरकिनार करते हुए संभावित आकृति के लिए ऑब्जेक्ट विधि.

  • अंत में, ellipse() . का उपयोग करके संभावित आकृतियों के चारों ओर दीर्घवृत्त बनाएं विधि।

>नोट - दीर्घवृत्त में फिट होने के लिए वस्तु में कम से कम पांच बिंदु होने चाहिए।

उदाहरण

आयात करें .MatOfPoint2f;import org.opencv.core.RotatedRect;import org.opencv.core.Scalar;import org.opencv.highgui.HighGui;import org.opencv.imgcodecs.Imgcodecs;import org.opencv.imgproc.Imgproc;public class FitEllipseExample { सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) अपवाद फेंकता है {// OpenCV कोर लाइब्रेरी लोड हो रहा है। लोड लाइब्रेरी (Core.NATIVE_LIBRARY_NAME); // छवि की सामग्री पढ़ना स्ट्रिंग फ़ाइल ="D:\\Images\\javafx_graphical.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); // खाली आयत RotatedRect [] rec =नया RotatedRect [contours.size ()]; के लिए (int i =0; i 5) { rec[i] =Imgproc.fitEllipse(new MatOfPoint2f(contours.get(i).toArray())); } अदिश color_elli =नया अदिश(190, 0, 0); Imgproc.ellipse(src, rec[i], color_elli, 5); } HighGui.imshow ("कंटूर ऑपरेशन", src); हाईगुई.वेटकी (); }}

इनपुट इमेज

ओपनसीवी जावा का उपयोग कर छवि में संभावित वस्तुओं के आसपास अंडाकार कैसे फिट करें?


आउटपुट

ओपनसीवी जावा का उपयोग कर छवि में संभावित वस्तुओं के आसपास अंडाकार कैसे फिट करें?



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

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

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

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

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

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