- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
绘制一个简单的、粗的或填充的直立矩形。
这个函数 cv::rectangle 绘制一个矩形轮廓或一个填充的矩形,其两个相对的顶点分别是 pt1 和 pt2。
函数原型1
void cv::rectangle
(
InputOutputArray img,
Rect rec,
const Scalar & color,
int thickness = 1,
int lineType = LINE_8,
int shift = 0
)
参数1
- 参数img 图像.
- 参数pt1 矩形的一个顶点。
- 参数pt2 与 pt1 相对的矩形的另一个顶点。
- 参数color 矩形的颜色或亮度(灰度图像)。
- 参数thickness 构成矩形的线条的厚度。负值,比如 FILLED,意味着函数需要绘制一个填充的矩形。
- 参数lineType 线条的类型。参见 LineTypes。
- 参数shift 点坐标中的小数位数。
函数原型2
这是一个重载成员函数,为了方便而提供。它与上述函数的不同之处仅在于它接受的参数。
使用 rec 参数作为绘制矩形的另一种规格说明:r.tl() 和 r.br()-Point(1,1) 是相对的角落。
void cv::rectangle
(
InputOutputArray img,
Rect rec,
const Scalar & color,
int thickness = 1,
int lineType = LINE_8,
int shift = 0
)
代码示例
#include <opencv2/opencv.hpp>
#include <iostream>
int main(int argc, char** argv)
{
// 加载一个图像文件,如果未提供,则使用默认的图像
cv::Mat image = cv::imread("/media/dingxin/data/study/OpenCV/sources/images/qiu.jpg");
if (image.empty())
{
std::cerr << "Error: Image cannot be loaded!" << std::endl;
return -1;
}
// 创建一个窗口来显示图像
cv::namedWindow("Image with Rectangle", cv::WINDOW_AUTOSIZE);
// 定义矩形的两个对角点
cv::Point pt1(50, 50); // 矩形左上角坐标
cv::Point pt2(200, 200); // 矩形右下角坐标
// 定义线条的颜色(BGR)和厚度
cv::Scalar color(0, 0, 255); // 红色
int thickness = 2; // 线条厚度
// 使用 cv::rectangle 绘制矩形
cv::rectangle(image, pt1, pt2, color, thickness);
// 显示带有矩形的图像
cv::imshow("Image with Rectangle", image);
cv::waitKey(0); // 等待按键按下
return 0;
}