Gói org.opencv.imgproc chứa lớp Imgproc. Vẽ đa giác tô đầy bằng phương thức fillPoly(). Tham số:
- Mat: ảnh vẽ lên.
- List: danh sách MatOfPoint (đỉnh đa giác).
- Scalar: màu tô.
- Int: loại đường nét (LINE_8, LINE_4, LINE_AA).
Ví dụ minh họa
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) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat src = Imgcodecs.imread("D:\\images\\blank.jpg");
// Định nghĩa các đỉnh đa giác
List list = new ArrayList<>();
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);
Imgcodecs.imwrite("arrowed_line.jpg", src);
HighGui.imshow("Drawing a polygon", src);
HighGui.waitKey();
}
}
Kết quả
