Home > Java > javaTutorial > How to draw image contours using Java OpenCV library?

How to draw image contours using Java OpenCV library?

WBOY
Release: 2023-09-04 14:33:01
forward
1053 people have browsed it

A contour is nothing but a line connecting all the points along the boundary of a specific shape. Using it, you can -

  • find the shape of an object.

  • Calculate the area of ​​the object.

  • Detect the object.

  • Identify objects.

You can use the findContours() method to find the contours of various shapes and objects in the image. In the same way you can draw

You can draw the found image contours using the drawContours() method which accepts the following parameters -

  • Empty Mat object used to store the result image.

  • A list object containing the found contours.

  • An integer value specifying the contours to be drawn (-ve value is used to draw all contours).

  • A scalar object that specifies the color of the outline.

  • An integer value that specifies the thickness of the outline.

Example

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 {
      //Loading the OpenCV core library
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
      String file ="D:\Images\shapes.jpg";
      Mat src = Imgcodecs.imread(file);
      //Converting the source image to binary
      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);
      //Finding Contours
      List<MatOfPoint> contours = new ArrayList<>();
      Mat hierarchey = new Mat();
      Imgproc.findContours(binary, contours, hierarchey, Imgproc.RETR_TREE,
      Imgproc.CHAIN_APPROX_SIMPLE);
      //Drawing the Contours
      Scalar color = new Scalar(0, 0, 255);
      Imgproc.drawContours(src, contours, -1, color, 2, Imgproc.LINE_8,
      hierarchey, 2, new Point() ) ;
      HighGui.imshow("Drawing Contours", src);
      HighGui.waitKey();
   }
}
Copy after login

Input picture

如何使用Java OpenCV库绘制图像轮廓?

Output

When executed, the above program generates the following window-

How to draw image contours using Java OpenCV library?

The above is the detailed content of How to draw image contours using Java OpenCV library?. For more information, please follow other related articles on the PHP Chinese website!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template