一、画线成圈
多用在轮廓识别中
复杂版本:
//hull是一个vector点集
vector<Size> hull{Size(100,200),Size(300,200),Size(300,400),Size(100,400)};
//连接相邻两个点
for(int i=0;i<hull.size()-1;i++)
{
line(image,hull[i],hull[i+1],Scalar::all(255),2);
}
//最后一个点和第一个点连起来
line(image,hull[hull.size()-1],hull[0],Scalar::all(255),2);
优化版本:
优化思路:使用%n回到0
//hull是一个vector点集
vector<Size> hull{Size(100,200),Size(300,200),Size(300,400),Size(100,400)};
//连接相邻两个点
for(int i=0;i<hull.size();i++)
{
line(image,hull[i],hull[(i+1)%hull.size()],Scalar::all(255),2);
}
二、图像清除
已经有一个特定尺寸的Mat类图像,要求让它变成全黑。
复杂版本
image=Mat::zeros(image.size(),image.type());
优化版本:
image=Scalar::all(0);