polylines 画多边形
方式一
cv::Mat src(600, 600, CV_8UC3, cv::Scalar(0,0,0));
//创建多边形的点
cv::Point points[2][4];
points[0][0] = cv::Point(100, 115);
points[0][1] = cv::Point(255, 135);
points[0][2] = cv::Point(140, 365);
points[0][3] = cv::Point(100, 300);
points[1][0] = cv::Point(300, 315);
points[1][1] = cv::Point(555, 335);
points[1][2] = cv::Point(340, 565);
points[1][3] = cv::Point(300, 500);
//ppt[]要同时添加两个多边形顶点数组的地址头
const cv::Point* pts[] = { points[0],points[1] };
//npts[]要定义每个多边形的定点数
int npts[] = { 4,4 };
cv::polylines(src, pts, npts, 2, true, cv::Scalar(255,0,0), 5, 8, 0);
/*
参数1:作为画布的矩阵
参数2:pts 折线顶点数组
参数3:npts 折线顶点个数
参数4:待绘制折线数
参数5:是否是闭合折线(多边形)
参数6:折线的颜色
参数7:折线粗细
参数8:线段类型 8或4
参数9:缩放比例(0是不缩放,4是1/4)
*/
cv::namedWindow("src");
cv::imshow("src", src);
cv::waitKey();
return 0;
方式二
cv::Mat src(600, 600, CV_8UC3, cv::Scalar(0,0,0));
//创建多边形的点
std::vector<cv::Point> pts;
pts.push_back(cv::Point(100, 115));
pts.push_back(cv::Point(255, 135));
pts.push_back(cv::Point(140, 365));
pts.push_back(cv::Point(100, 300));
cv::polylines(src, pts,true, cv::Scalar(255,0,0), 5, 8, 0);
/*
参数1:作为画布的矩阵
参数2:pts 折线顶点数组
参数3:是否是闭合折线(多边形)
参数4:折线的颜色
参数5:折线粗细
参数6:线段类型 8或4
参数7:缩放比例(0是不缩放,4是1/4)
*/
cv::namedWindow("src");
cv::imshow("src", src);
cv::waitKey();
return 0;
注意:两种方式参数2的数据类型不同