目录
1 概念讲解及用处
在OpenCV中,绘制矩形可以通过cv::rectangle函数来实现。该函数用于在图像上绘制一个指定位置、尺寸的矩形,可以选择填充颜色或边框颜色,并指定线条宽度。绘制矩形在计算机视觉中被广泛应用,例如目标检测、图像标注、边界框绘制等领域。
2 函数详解
void rectangle(Mat& img, Point pt1, Point pt2, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0)
参数说明:
img:目标图像,绘制的矩形将在该图像上进行。
pt1、pt2:矩形的对角顶点坐标,用cv::Point表示。
color:填充或边框颜色,使用cv::Scalar表示。
thickness:线条宽度,正数表示绘制矩形的边框,负数表示填充矩形。默认值为1。
lineType:线条类型,默认为8-connected(LINE_8),也可以选择4-connected(LINE_4)。
shift:坐标点的小数位数精度。
3 原理
矩形可以由左上角和右下角两个顶点坐标唯一确定。通过给定的两个顶点坐标,可以计算出矩形的宽度、高度及其他属性。
4 用C++编写代码进行实现
下面是一个使用OpenCV的C++代码示例,用于在图像上绘制一个红色边框的矩形:
#include <opencv2/opencv.hpp>
using namespace cv;
int main(){
Mat image(500, 500, CV_8UC3, Scalar(0, 0, 0)); // 创建一个黑色背景图像
Point pt1(100, 100); // 矩形左上角顶点坐标
Point pt2(400, 400); // 矩形右下角顶点坐标
Scalar color(0, 0, 255); // 颜色 (BGR格式,红色)
rectangle(image, pt1, pt2, color, 2); // 绘制一个红色边框的矩形
imshow("Rectangle", image);
waitKey(0);
return 0;
}
以上代码创建了一个500x500的黑色背景图像,在图像上绘制了一个左上角顶点坐标为(100, 100),右下角顶点坐标为(400, 400)的红色边框矩形。rectangle函数的最后一个参数指定了线条宽度为2。最后,将结果显示出来,并等待按键退出。