opencv rectangle函数
时间: 2023-04-28 21:05:15 浏览: 160
OpenCV 中的 rectangle 函数可以在一幅图像上绘制矩形。该函数的格式如下:
cv2.rectangle(image, start_point, end_point, color, thickness)
参数解释:
- image:要在其上绘制矩形的图像
- start_point:矩形的左上角坐标
- end_point:矩形的右下角坐标
- color:矩形的颜色,可以是 BGR 或者 RGB 的三通道元组
- thickness:线条的粗细,如果设置为 -1,表示矩形是填充的
使用示例:
```
import cv2
import numpy as np
# Create an image
img = np.zeros((512, 512, 3), np.uint8)
# Draw a red rectangle
cv2.rectangle(img, (384, 0), (510, 128), (0, 0, 255), 3)
cv2.imshow("Rectangle", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
上面的代码将在一幅黑色图像上绘制一个红色矩形,并显示出来。
相关问题
opencv rectangle函数C++
OpenCV中的rectangle函数可以用来在图像上绘制矩形。以下是其C++函数的定义:
```c++
void rectangle(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0);
void rectangle(InputOutputArray img, Rect rec, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0);
```
其中,第一个函数将矩形的两个对角点作为参数传递,而第二个函数将矩形的左上角坐标和宽度、高度作为参数传递。
参数说明:
- `img`:输入/输出图像。
- `pt1`:矩形的一个顶点。
- `pt2`:矩形的对角顶点。
- `rec`:矩形的区域(左上角坐标和宽度、高度)。
- `color`:矩形的颜色。
- `thickness`:矩形的边框粗细,默认值为1。
- `lineType`:矩形的线型,默认值为LINE_8。
- `shift`:点坐标的小数点位数,默认值为0。
以下是一个使用rectangle函数绘制矩形的示例代码:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
// 创建一个黑色的图像
Mat img(500, 500, CV_8UC3, Scalar(0, 0, 0));
// 绘制一个红色的矩形
rectangle(img, Point(100, 100), Point(300, 300), Scalar(0, 0, 255), 3);
// 显示图像
imshow("image", img);
waitKey(0);
return 0;
}
```
上述代码将在一个500x500的黑色图像中绘制一个红色的矩形,边框宽度为3。可以通过修改参数来调整矩形的位置、大小和样式。
C++ opencv rectangle函数
`cv::rectangle` 函数可以在图像上绘制矩形框。
函数原型为:
```cpp
void cv::rectangle(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0)
```
其中,参数含义如下:
- `img`:输入/输出图像。
- `pt1`:矩形左上角的点。
- `pt2`:矩形右下角的点。
- `color`:矩形框的颜色,可以是一个 `Scalar` 类型的参数,也可以是一个 `cv::Scalar(x, y, z)` 形式的参数。
- `thickness`:矩形框的线宽。
- `lineType`:线条类型。
- `shift`:点坐标的小数部分位数。
示例代码:
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat image = imread("test.jpg");
rectangle(image, Point(50, 50), Point(150, 150), Scalar(0, 0, 255), 2);
imshow("image", image);
waitKey(0);
return 0;
}
```
这段代码在图片的 (50, 50) 和 (150, 150) 两个点之间绘制了一个红色的矩形框。
阅读全文