базовое рисование C# OpenCvSharp (линия, эллипс, прямоугольник, круг, многоугольник, текст) (4)

Здесь мы покажем, как комментировать изображения с помощью геометрических фигур и текста.

  1. Cv2.Line() рисует прямую линию 
  2. Cv2.Ellipse() рисует эллипс
  3. Cv2.Rectangle() рисует прямоугольник.
  4. Cv2.Circle() рисует круг
  5. Cv2.FillPoly() рисует многоугольники.
  6. Cv2.PutText() рисует текст

1. Нарисуйте прямую линию

Cv2.Line(изображение, начальная_точка, конечная_точка, цвет, толщина)

параметр иллюстрировать
изображение Изображение, которое нужно нарисовать
Начальная точка Координаты начальной точки
конечная_точка Координаты конечной точки
цвет цвет прямой линии
толщина Ширина прямой линии (>0 ​​&& <=32767) не может быть -1.

Mat img = new Mat(500, 500, MatType.CV_8UC3, Scalar.White); // 创建一个500x500的白色图像

Point pt1 = new Point(100, 100);
Point pt2 = new Point(400, 100);
Scalar color = new Scalar(0, 0, 255); // 红色线条

Cv2.Line(img, pt1, pt2, color, 2); // 在图像上绘制直线

Cv2.ImShow("Line", img); // 显示图像

 

2. Нарисуйте эллипс 

Cv2.Ellipse(изображение, centerCoordinates, axesLength, угол, startAngle, endAngle, цвет, толщина)

параметр иллюстрировать
изображение Изображение, которое нужно нарисовать
центрКоординаты Координаты центра
осиДлина Длина вала
угол Угол отклонения эллипса, >0 по часовой стрелке, <0 против часовой стрелки
началоУгол Начальный угол эллиптического профиля (рассчитывается по углу отклонения)
конечный угол Конечный угол эллиптического контура (рассчитывается по углу отклонения) (если вы рисуете эллипс, startAngle=0, endAngle=360)
цвет Цвет линии эллипса
толщина Ширина линии эллипса. Отрицательные числа указывают на заполнение.

 // 创建一个空白图像
 Mat img = new Mat(500, 500, MatType.CV_8UC3, Scalar.White);

 // 定义椭圆参数
 Point center = new Point(250, 250);
 Size axes = new Size(100, 200);
 double angle = 30;
 double startAngle = 0;
 double endAngle = 360;
 Scalar color = Scalar.Red;
 int thickness = 2;
 LineTypes lineType = LineTypes.Link8;
 int shift = 0;

 // 绘制椭圆
 Cv2.Ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness, lineType, shift);

 // 显示图像
 Cv2.ImShow("Ellipse", img);
 Cv2.WaitKey(0);
 Cv2.DestroyAllWindows();

3. Нарисуйте прямоугольник

Cv2.Rectangle(изображение, pt1, pt2, прямоугольник, цвет, толщина, тип линии)

параметр иллюстрировать
изображение Изображение, которое нужно нарисовать
часть 1 вершина прямоугольника
часть 2 Диагональная точка точки 1
прямой прямоугольник
цвет Цвет прямоугольника
толщина Толщина линии прямоугольника. Если оно меньше 0, это означает заполнение.
тип линии линейный

// 创建一个空白图像
Mat img = new Mat(500, 500, MatType.CV_8UC3, Scalar.White);
Point start_point = new Point(300, 115);
Point end_point = new Point(475, 225);
Scalar color = new Scalar(0, 0, 255); // 红色线条
// 绘制矩形
Cv2.Rectangle(img, start_point, end_point, color, 3, (LineTypes)8, 0);
// 显示图像
Cv2.ImShow("Ellipse", img);
Cv2.WaitKey(0);
Cv2.DestroyAllWindows();

 4. Нарисуйте круг

Cv2.Circle(изображение, координаты центра, радиус, цвет, толщина)

параметр иллюстрировать
изображение Изображение, которое нужно нарисовать
center_coordinates Координаты центра круга
радиус радиус
цвет цвет
толщина Толщина
// 创建一个空白图像
Mat image = new Mat(500, 500, MatType.CV_8UC3, Scalar.White);

// 定义圆心坐标和半径
Point center = new Point(250, 250);
int radius = 100;

// 在图像上绘制圆
Cv2.Circle(image, center, radius, Scalar.Red, 2);

// 显示图像
Cv2.ImShow("Circle", image);
Cv2.WaitKey(0);
Cv2.DestroyAllWindows();

5. Рисуем многоугольники 

Cv2.FillPoly(изображение, точки, цвет, тип линии)

параметр иллюстрировать
изображение Изображение, которое нужно нарисовать
точки набор координат
цвет цвет
тип линии Тип линии
using Point = OpenCvSharp.Point;
// 创建一个空白图像
Mat image = new Mat(500, 500, MatType.CV_8UC3, Scalar.White);

// 定义多边形的顶点坐标
Point[] points = new Point[]
{
new Point(100, 100),
new Point(200, 100),
new Point(200, 200),
new Point(100, 200)
};
// 将多边形绘制并填充到图像上
Cv2.FillPoly(image, new List<Point[]> { points }, Scalar.Red);

// 显示图像
Cv2.ImShow("Filled Polygon", image);
Cv2.WaitKey(0);
Cv2.DestroyAllWindows();

6. Нарисуйте текст

Cv2.PutText(изображение, текст, организация, шрифт, FontScale, цвет)

параметр иллюстрировать
изображение Изображение, которое нужно нарисовать
текст текстовая строка
организация Начальная позиция верхнего левого угла текстовой строки.
шрифт размер шрифта
шрифтМасштаб Масштабирование шрифта
цвет цвет

// 创建一个空白图像
Mat image = new Mat(500, 500, MatType.CV_8UC3, Scalar.White);

// 定义多边形的顶点坐标
Cv2.PutText(image, "Hello,OpenCvSharp!", new Point(20, 200), HersheyFonts.HersheySimplex, 1, new Scalar(0, 0, 255), 2, LineTypes.Link4);
// 显示图像
Cv2.ImShow("Hello,OpenCvSharp", image);

 Каталог статей C# OpenCV

c# Обнаружение OpenCV (обнаружение пятен, обнаружение краев, обнаружение контуров) (5)

Базовое рисование C# OpenCV (линия, эллипс, прямоугольник, круг, многоугольник, текст) (4)
Обрезка изображения C# OpenCV, изменение размера, поворот, перспектива (3)

c#OpenCV читает, отображает и записывает изображения (2)

Установка C# OpenCV (1)

Guess you like

Origin blog.csdn.net/hb_ljj/article/details/135092848