#include<opencv2/opencv.hpp>#include<opencv2/core.hpp>#include<filesystem>bool opencvTool::drawPolygon(std::string image_p, std::vector<cv::Point> points){cv::Mat ima = cv::imread(image_p.c_str());// 读取图像,替换为你的图片路径 cv::Scalar red = cv::Scalar(0,0,255);// Red color cv::Scalar blue = cv::Scalar(255,0,0);// Red color int thickness =2;// 使用polylines函数给图片绘制多边形cv::polylines(ima, points,true, red, thickness,8,0);// 填充颜色cv::fillPoly(ima, std::vector<std::vector<cv::Point>>{points}, blue,8,0);cv::imwrite(image_p.c_str(), ima);returntrue;}bool opencvTool::drawPolygon(cv::Mat& image, std::vector<cv::Point> points,int lineWidth){if(image.empty()){std::cout <<"Error: empty mat"<< std::endl;returnfalse;}// 确保多边形点的数量大于等于3if(points.size()<3){std::cout <<"Error: need at least 3 points to draw a polygon"<< std::endl;returnfalse;}// 绘制多边形cv::polylines(image, points,true, cv::Scalar(0,0,255), lineWidth);returntrue;}
// 在图像上绘制多边形并设置线条宽度staticbooldrawPolygon(cv::Mat& image, std::vector<cv::Point> points,int lineWidth =1){if(image.empty()){std::cout <<"Error: empty mat"<< std::endl;returnfalse;}// 确保多边形点的数量大于等于3if(points.size()<3){std::cout <<"Error: need at least 3 points to draw a polygon"<< std::endl;returnfalse;}// 将多边形点转换为 OpenCV 的 Point 数组cv::Point *pts =new cv::Point[points.size()];for(size_t i =0; i < points.size();++i){pts[i]= points[i];}// 绘制多边形const cv::Point* ppt[1]={ pts };int npt[]={static_cast<int>(points.size())};cv::polylines(image, ppt, npt,1,true, cv::Scalar(255,255,255), lineWidth);delete[] pts;returntrue;}
cv::Point *pts = new cv::Point[points.size()];: 这行代码创建了一个动态分配的 cv::Point 数组,数组的大小等于传入的顶点数量 points.size()。这个数组将用于存储多边形的顶点坐标。
for (size_t i = 0; i < points.size(); ++i): 这是一个 for 循环,用于遍历传入的顶点向量 points 中的每个顶点。
serviceMesh是什么
Service Mesh是一个用于处理服务间通信的基础设施层,旨在实现云原生应用复杂服务拓扑中的可靠请求传递。其基本构成是一组与应用一起部署的轻量级网络代理,这些代理对应用来说是透明的。Service Mesh通过统一的方式来控制和处理服务间…
Spring Cloud Alibaba 是一个基于 Spring Cloud 的微服务架构解决方案,它整合了阿里巴巴的多款开源组件,如 Nacos、Sentinel、RocketMQ 等,用于构建分布式微服务系统。 以下是使用 Spring Cloud Alibaba 搭建项目的基本步骤和注意事项&#x…