~ 本文依然使用javaCv封装的openCv,使用方式看第一章~
要绘制一条线,您需要传递线的开始和结束坐标。我们将创建一个黑色图像,并从左上角到右下
角在其上绘制一条红线。
public static void main(String[] args) {
Scalar bck = new Scalar(255, 255, 255, 0); // B G R 0 白色
Scalar scalar = new Scalar(0, 0, 255, 0); // B G R 0 红色
Mat mat = new Mat(new Size(400, 500), opencv_core.CV_8UC3, bck);
opencv_imgproc.line(mat, new Point(11, 22), new Point(220, 330), scalar);
ImageViewer imageViewer = new ImageViewer(mat);
imageViewer.imshow();
}
要绘制椭圆,我们需要传递几个参数。一个参数是中心位置(x,y)。下一个参数是轴长度(长
轴长度,短轴长度)。angle是椭圆沿逆时针方向旋转的角度。startAngle和endAngle表示从主轴
沿顺时针方向测量的椭圆弧的开始和结束。即给出0和360给出完整的椭圆。
下面的示例在图像的中心绘制一个椭圆形。
public static void main(String[] args) {
Scalar bck = new Scalar(255, 255, 255, 0); // B G R 0 白色
Scalar scalar = new Scalar(0, 0, 255, 0); // B G R 0 红色
Mat mat = new Mat(new Size(400, 500), opencv_core.CV_8UC3, bck);
opencv_imgproc.ellipse(mat, new Point(256, 256), new Size(100, 50), 0, 0, 360, scalar);
ImageViewer imageViewer = new ImageViewer(mat);
imageViewer.imshow();
}
要绘制矩形,您需要矩形的左上角和右下角。这次,我们将在图像的右上角绘制一个矩形。
public static void main(String[] args) {
Scalar bck = new Scalar(255, 255, 255, 0); // B G R 0 白色
Scalar scalar = new Scalar(0, 0, 255, 0); // B G R 0 红色
Mat mat = new Mat(new Size(400, 500), opencv_core.CV_8UC3, bck);
opencv_imgproc.rectangle(mat, new Point(100, 20), new Point(310, 148), scalar);
ImageViewer imageViewer = new ImageViewer(mat);
imageViewer.imshow();
}
要绘制一个圆,需要其中心坐标和半径。我们将在上面绘制的矩形内绘制一个圆。
public static void main(String[] args) {
Scalar bck = new Scalar(255, 255, 255, 0); // B G R 0 白色
Scalar scalar = new Scalar(0, 0, 255, 0); // B G R 0 红色
Mat mat = new Mat(new Size(400, 500), opencv_core.CV_8UC3, bck);
opencv_imgproc.circle(mat,new Point(100,100),63,scalar);
ImageViewer imageViewer = new ImageViewer(mat);
imageViewer.imshow();
}
要将文本放入图像中,需要指定以下内容。 - 您要写入的文字数据 - 您要放置它的位置坐标(即数
据开始的左下角)。 - 字体类型 - 字体比例(指定
字体大小) - 常规的内容,例如颜色,厚度,线条类型等。为了获得更好的外观,建议使用
LINE_AA
public static void main(String[] args) {
Scalar bck = new Scalar(255, 255, 255, 0); // B G R 0 白色
Scalar scalar = new Scalar(0, 0, 255, 0); // B G R 0 红色
Mat mat = new Mat(new Size(400, 500), opencv_core.CV_8UC3, bck);
opencv_imgproc.putText(mat,"openCv",new Point(10,400),opencv_imgproc.FONT_HERSHEY_SIMPLEX,2,scalar,2,opencv_imgproc.LINE_AA,false);
ImageViewer imageViewer = new ImageViewer(mat);
imageViewer.imshow();
}