创建一个210*210的单通道图像并将其归0。在图中使用ROI和cvSet建立一个增长如金字塔状的数组,也就是:外部边界为0,下一个内部边界应该为20,在下一个内部边界为40,依此类推,直到最后内部值为200,所有边界应该为10个像素宽度。最后显示这个图形。
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
Mat src(210, 210, CV_8UC1,Scalar(0));//建立一个矩形
int distance = 20;//距离
int width = 10;//宽度
for (int i=0;i<=src.cols-distance;i=i+distance+width)
{
Point pt = Point(i, i);//0,0开始,矩阵的左上角坐标
Rect roi = Rect(pt.x, pt.y, src.cols - pt.x, width);//创建ROI区
rectangle(src, roi, Scalar(255, 255, 255),-1);//绘制矩形,内部填充
}
for (int i = 0; i <= src.rows - distance; i = i + distance + width)
{
Point pt = Point(i, i);//0,0开始
Rect roi = Rect(pt.x, pt.y, width,src.rows - pt.x);
rectangle(src, roi, Scalar(255, 255, 255), -1);
}
imshow("金字塔", src);
waitKey(0);
return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210205160758296.png)