C++ opencv 绘制:直线、矩形、圆、实心圆、多边形、文字、
【代码】C++ opencv 绘制:直线、矩形、圆、实心圆、多边形、文字、
·
完整演示:
#include <iostream>
#include <opencv2/opencv.hpp>
int main()
{
// 创建一个黑色图像,参数分别是图像大小、图像类型,CV_8UC3表示8位无符号整数,3通道
cv::Mat image = cv::Mat::zeros(cv::Size(600, 600), CV_8UC3);
// 绘制直线,参数分别是图像、起点、终点、颜色(蓝绿红)、线宽、线型
cv::line(image, cv::Point(50, 50), cv::Point(350, 250), cv::Scalar(255, 0, 0), 2, cv::LINE_AA);
// 绘制矩形,参数分别是图像、左上角、右下角、颜色、线宽、线型
cv::rectangle(image, cv::Point(50, 50), cv::Point(350, 250), cv::Scalar(0, 255, 0), 2, cv::LINE_AA);
// 绘制圆形,参数分别是图像、圆心、半径、颜色、线宽、线型
cv::circle(image, cv::Point(200, 150), 100, cv::Scalar(255, 0, 0), 2, cv::LINE_AA);
// 实心
cv::circle(image, cv::Point(200, 150), 80, cv::Scalar(255, 0, 0), -1, cv::LINE_AA);
// ================== 使用vector绘制多边形 ==================
std::vector<cv::Point> points_v;
// // 随机生成5个点
// for (int i = 0; i < 5; i++)
// {
// points_v.push_back(cv::Point(rand() % 600, rand() % 600));
// }
points_v.push_back(cv::Point(50, 50));
points_v.push_back(cv::Point(100, 50));
points_v.push_back(cv::Point(100, 100));
points_v.push_back(cv::Point(50, 100));
// 绘制多边形,参数分别是图像、顶点数组、是否闭合、颜色、线宽、线型
cv::polylines(image, points_v, true, cv::Scalar(255, 0, 0), 2, 8, 0);
// ================== 绘制文字 ==================
// 参数分别是图像、文字、文字位置、字体、字体大小、颜色、线宽、线型
cv::putText(image, "Hello World!", cv::Point(400, 50), cv::FONT_HERSHEY_SIMPLEX, 1.0, cv::Scalar(255, 255, 255), 2, 8, 0);
// 保存图像
cv::imwrite("./gray_image.jpg", image);
// // imshow显示图像
// cv::imshow("opencv", image);
// // 等待按键
// cv::waitKey(0);
return 0;
}
更多推荐
所有评论(0)