Contours कुछ और नहीं बल्कि एक विशेष आकृति की सीमा के साथ सभी बिंदुओं को मिलाने वाली रेखा है। इसका उपयोग करके आप कर सकते हैं -
-
किसी वस्तु का आकार खोजें।
-
किसी वस्तु के क्षेत्रफल की गणना करें।
-
किसी वस्तु का पता लगाएं।
-
किसी वस्तु को पहचानें।
आप findContours() का उपयोग करके एक छवि में विभिन्न आकृतियों, वस्तुओं की रूपरेखा पा सकते हैं तरीका। इसी तरह आप ड्रा कर सकते हैं
आप दिए गए इनपुट इमेज में आकृतियों का क्षेत्रफल भी ज्ञात कर सकते हैं। ऐसा करने के लिए आपको contourArea() . का आह्वान करना होगा Imgproc वर्ग की विधि। यह विधि किसी विशेष आकार के समोच्च को स्वीकार करती है, उसके क्षेत्र को ढूंढती है और वापस करती है।
उदाहरण
निम्नलिखित जावा उदाहरण दिए गए चित्र में प्रत्येक आकृति/वस्तु का क्षेत्रफल ढूँढता है, 5000 से कम क्षेत्र वाले आकार की रूपरेखा लाल और शेष सफेद रंग में ड्रा करें।
आयात करें .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 FindContourArea {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) अपवाद फेंकता है {// OpenCV कोर लाइब्रेरी लोड हो रहा है System.loadLibrary (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); // ढूँढना समोच्च सूचीइनपुट छवि
आउटपुट
4091.06336.0189.06439.04903.0
उपरोक्त आउटपुट के अतिरिक्त, उपरोक्त प्रोग्राम निम्न विंडो उत्पन्न करता है -