ホームページ  >  記事  >  Java  >  Java OpenCVライブラリを使用して画像の輪郭を描画するにはどうすればよいですか?

Java OpenCVライブラリを使用して画像の輪郭を描画するにはどうすればよいですか?

WBOY
WBOY転載
2023-09-04 14:33:011021ブラウズ

輪郭とは、特定の形状の境界に沿ったすべての点を結んだ線に他なりません。これを使用すると、-

  • オブジェクトの形状を見つけることができます。

  • 物体の面積を計算します。

  • 物体を検出します。

  • #オブジェクトを識別します。

findContours() メソッドを使用すると、画像内のさまざまな形状やオブジェクトの輪郭を見つけることができます。同じ方法で 次のパラメータを受け入れる

drawContours() メソッドを使用して、見つかった画像の輪郭を描画できます。 -

    # #結果イメージを保存するために使用される空の Mat オブジェクト。
  • #見つかった輪郭を含むリスト オブジェクト。
  • 描画する等高線を指定する整数値 (-ve 値はすべての等高線を描画するために使用されます)。
  • 輪郭の色を指定するスカラー オブジェクト
  • 輪郭の太さを指定する整数値。
  • #例

    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();
       }
    }

以上がJava OpenCVライブラリを使用して画像の輪郭を描画するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。