c++ opencv 画矩形
时间: 2023-07-05 14:28:47 浏览: 123
你可以使用 OpenCV 中的 rectangle()
函数绘制矩形。这个函数有以下参数:
img
:要绘制矩形的图像。pt1
:矩形的左上角点。pt2
:矩形的右下角点。color
:矩形的颜色。thickness
:矩形边框的粗细,默认值为1。lineType
:线条的类型,默认值为8。
以下是一个简单的示例代码:
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img = imread("test.jpg");
Point pt1(100, 100);
Point pt2(200, 200);
Scalar color(0, 0, 255);
int thickness = 2;
int lineType = LINE_8;
rectangle(img, pt1, pt2, color, thickness, lineType);
imshow("Image", img);
waitKey(0);
return 0;
}
这个代码会读取名为 "test.jpg" 的图像,绘制一个左上角为 (100,100),右下角为 (200,200) 的红色矩形,并显示结果图像。
相关问题
c++的opencv 画矩形
使用 OpenCV 在 C++ 中画矩形可以使用 cv::rectangle
函数,该函数的原型如下:
void cv::rectangle(
InputOutputArray img, // 输入的图像
Point pt1, // 矩形的左上角点
Point pt2, // 矩形的右下角点
const Scalar& color, // 矩形的颜色
int thickness = 1, // 矩形边框的粗细,默认为 1
int lineType = LINE_8,// 矩形边框的类型,默认为 8 连通线
int shift = 0 // 坐标点的小数点位数,默认为 0
);
下面是一个简单的例子,演示了如何使用 cv::rectangle
函数在图像上画一个红色的矩形:
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img = imread("test.jpg");
Point pt1(100, 100);
Point pt2(200, 200);
Scalar color(0, 0, 255); // BGR 颜色值,这里是红色
int thickness = 2;
rectangle(img, pt1, pt2, color, thickness);
imshow("image", img);
waitKey(0);
return 0;
}
运行结果如下图所示:
c++ opencv 画实心矩形
使用 C++ 和 OpenCV 绘制实心矩形
为了绘制实心矩形,在调用 rectangle
函数时可以设置厚度参数 thickness
为负数,这会使得矩形被填充成为实心形态。下面展示了一个完整的例子来创建并显示带有实心矩形的图像。
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
// 创建一个黑色背景的图像
Mat img = Mat::zeros(300, 300, CV_8UC3);
// 定义矩形左上角和宽度高度
Rect rect(50, 50, 150, 150);
// 定义矩形颜色
Scalar color(0, 255, 0);
// 在图像上绘制实心矩形
rectangle(img, rect, color, -1); // 设置 thickness 参数为 -1 表示实心填充[^1]
// 显示结果
imshow("实心矩形", img);
waitKey(0);
return 0;
}
在这个程序里,通过指定矩形的位置以及尺寸,并利用 cv::Rect
类型定义矩形区域。当调用 rectangle()
方法时传入 -1
的厚度值,则该矩形会被完全填满而不是仅仅画边框[^2]。
相关推荐













