opencv rectangle函数

opencv rectangle函数

当然,以下是关于OpenCV中rectangle函数的详细文档。这个函数用于在图像上绘制矩形框。

OpenCV rectangle 函数

功能描述

rectangle函数用于在给定的图像上绘制一个矩形框。它可以通过指定矩形的顶点坐标、颜色以及线条粗细来绘制矩形。

函数原型

void rectangle(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, int thickness=1, int lineType=LINE_8, int shift=0);

参数说明

  • img: 输入/输出图像矩阵。该图像可以是单通道灰度图或多通道彩色图。
  • pt1: 矩形的一个顶点(通常是左上角)。类型为Point或表示顶点坐标的(x, y)元组。
  • pt2: 与pt1相对的另一个顶点(通常是右下角)。类型同样为Point或表示顶点坐标的(x, y)元组。
  • color: 矩形的颜色。对于灰度图像,它是一个单一的亮度值;对于彩色图像,它是一个包含三个元素的向量,分别代表B(蓝色)、G(绿色)和R(红色)的值。类型为Scalar。
  • thickness (可选): 线条的粗细。如果为正数,则表示线条的厚度(以像素为单位);如果为负数(例如,FILLED),则表示填充整个矩形区域;如果为THICKNESS_DEFAULT(通常为-1),则使用默认值。默认值为1。
  • lineType (可选): 线条的类型。默认为LINE_8,表示8连通线。其他选项包括LINE_4(4连通线)和LINE_AA(抗锯齿线)。
  • shift (可选): 点坐标的小数位数。所有点的坐标都会根据这个参数进行缩放。默认情况下是0。

使用示例

以下是一个简单的C++代码示例,演示如何在图像上绘制一个矩形:

#include <opencv2/opencv.hpp> using namespace cv; int main() { // 读取图像 Mat image = imread("example.jpg"); if (image.empty()) { std::cerr << "无法打开图像文件!" << std::endl; return -1; } // 定义矩形的两个顶点 Point pt1(50, 50); // 左上角 Point pt2(200, 150); // 右下角 // 定义矩形的颜色(BGR格式) Scalar color(0, 255, 0); // 绿色 // 在图像上绘制矩形 rectangle(image, pt1, pt2, color, 3); // 线条粗细为3 // 显示结果图像 imshow("Rectangle", image); waitKey(0); return 0; }

在这个示例中,我们首先在图像上定义了一个绿色的矩形框,然后使用rectangle函数将其绘制到图像上,并显示结果图像。

希望这份文档能帮助你更好地理解和使用OpenCV中的rectangle函数!