आप 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); // ढूँढना समोच्च सूची
इनपुट इमेज
आउटपुट