कंटूर किसी विशेष आकृति की सीमा के साथ सभी बिंदुओं को जोड़ने वाली रेखा के अलावा कुछ नहीं है। इसका उपयोग करके आप -
किसी ऑब्जेक्ट का आकार ढूंढ सकते हैं।
किसी ऑब्जेक्ट का क्षेत्रफल गणना कर सकते हैं।
किसी ऑब्जेक्ट का पता लगा सकते हैं।
किसी ऑब्जेक्ट को पहचान सकते हैं।
आप 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();
}
}
इनपुट इमेज

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