// 使用math库里的宏常量 #define _USE_MATH_DEFINES #include <iostream> #include <filesystem> #include <string> #include <windows.h> #include <opencv2/opencv.hpp> namespace fs = std::filesystem; using namespace cv; using namespace std; // 绘制直线 void test_draw_line() { Mat src(300, 400, CV_8UC3); Point p1 = Point(20, 30); // 两种定义点的方式 Point p2; p2.x = 300; p2.y = 300; Scalar color = Scalar(0, 0, 255); // 定义红色 line(src, p1, p2, color, 1, LINE_8); // 在背景图绘画直线 imshow("src_line", src); } // 绘制矩形 void test_draw_rectangle() { Mat src(300, 400, CV_8UC3); Rect rect = Rect(200, 100, 150, 150); // 定义一个矩形(左上角x,左上角y,宽,高) Scalar color = Scalar(255, 0, 0); // 蓝色 rectangle(src, rect, color, 2, LINE_8); // 在背景图绘画矩形 imshow("src_rectangle", src); } // 绘制椭圆 void test_draw_ellipse() { Mat src(300, 400, CV_8UC3); Point c_point = cv::Point(src.cols / 2, src.rows / 2); // 椭圆中心点 Scalar color = cv::Scalar(0, 0, 255); // 红色 // 背景图、中心点、长短轴axes、起始角度、 弧段开始角度、弧段结束角度、颜色、线宽、线型 ellipse(src, c_point, Size(src.cols / 4, src.rows / 8), 90, 0, 360, color, 2, LINE_8); imshow("src_ellipse", src); } // 绘制圆 void test_draw_circle() { Mat src(300, 400, CV_8UC3); Scalar color = Scalar(0, 255, 255); Point c_point = Point(src.cols / 2, src.rows / 2); // 背景图,中心点,半径,颜色,线宽,线型 circle(src, c_point, 150, color, 2, LINE_8); imshow("src_circle", src); } int main() { // 绘制直线 test_draw_line(); // 绘制矩形 test_draw_rectangle(); // 绘制椭圆 test_draw_ellipse(); // 绘制圆 test_draw_circle(); waitKey(0); destroyAllWindows(); return 0; }