- 操作系统: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;
}