Heim >Java >javaLernprogramm >Wie zeichne ich gefüllte Polygone in OpenCV mit Java?
Das Paket org.opencv.imgproc der Java OpenCV-Bibliothek enthält eine Klasse namens Imgproc. Um ein gefülltes Polygon zu zeichnen, müssen Sie die Methode fillPoly() dieser Klasse aufrufen. Die Methode akzeptiert die folgenden Parameter:
Ein Mat-Objekt, das das Bild darstellt, auf dem das Polygon gezeichnet werden soll.
Ein Listenobjekt, das Objekte vom Typ MatOfPoint enthält.
Ein Skalarobjekt, das die Farbe eines Polygons darstellt.
stellt eine Ganzzahl vom Linientyp dar.
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 DrawingFilledPolygon { public static void main(String args[]) { //Loading the OpenCV core library System.loadLibrary( Core.NATIVE_LIBRARY_NAME ); //Loading the OpenCV core library System.loadLibrary( Core.NATIVE_LIBRARY_NAME ); //Reading the source image in to a Mat object Mat src = Imgcodecs.imread("D:\images\blank.jpg"); //Drawing a polygon List<MatOfPoint>list = new ArrayList<MatOfPoint>(); list.add(new MatOfPoint ( new Point(208, 71), new Point(421, 161), new Point(332, 52), new Point(369, 250), new Point(421, 161), new Point(226, 232), new Point(369, 250), new Point(208, 71), new Point(226, 232), new Point(332, 52))); Scalar color = new Scalar(64, 64, 64); int lineType = Imgproc.LINE_8; Imgproc.fillPoly(src, list, color, lineType); //Saving and displaying the image Imgcodecs.imwrite("arrowed_line.jpg", src); HighGui.imshow("Drawing a polygon", src); HighGui.waitKey(); } }
Nach der Ausführung des obigen Programms wird das folgende Fenster generiert −
Das obige ist der detaillierte Inhalt vonWie zeichne ich gefüllte Polygone in OpenCV mit Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!