Maison > Java > javaDidacticiel > Comment dessiner les contours d'une image à l'aide de la bibliothèque Java OpenCV ?

Comment dessiner les contours d'une image à l'aide de la bibliothèque Java OpenCV ?

WBOY
Libérer: 2023-09-04 14:33:01
avant
1053 Les gens l'ont consulté

Un contour n'est rien d'autre qu'une ligne reliant tous les points le long de la limite d'une forme spécifique. En l'utilisant, vous pouvez -

  • trouver la forme d'un objet.

  • Calculez la surface d'un objet.

  • Détectez les objets.

  • Reconnaître les objets.

Vous pouvez utiliser la méthode findContours() pour trouver les contours de diverses formes et objets dans l'image. De la même manière, vous pouvez dessiner

Vous pouvez dessiner les contours de l'image trouvée en utilisant la méthode drawContours() qui accepte les paramètres suivants -

  • Un objet Mat vide pour stocker l'image résultante.

  • Liste des objets contenant les contours trouvés.

  • Une valeur entière spécifiant les contours à dessiner (la valeur -ve est utilisée pour dessiner tous les contours).

  • Un objet scalaire spécifiant la couleur du contour.

  • Une valeur entière spécifiant l'épaisseur du contour.

Exemple

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();
   }
}
Copier après la connexion

Image d'entrée

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

Sortie

Une fois exécuté, le programme ci-dessus génère la fenêtre suivante -

Comment dessiner les contours d'une image à l'aide de la bibliothèque Java OpenCV ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal