opencv使用rect画矩形
时间: 2023-07-07 08:43:19 浏览: 135
是的,OpenCV可以使用`cv2.rectangle()`函数来在图像上绘制矩形。该函数需要指定图像、矩形的左上角和右下角坐标、矩形框的颜色和线条粗细等参数。以下是一个简单的示例代码:
```
import cv2
# 读取图像
img = cv2.imread('example.jpg')
# 定义矩形框的左上角和右下角坐标
x1, y1 = 50, 50
x2, y2 = 200, 200
# 绘制矩形框
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
# 显示绘制结果
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例代码中,我们读取了一张名为`example.jpg`的图像,并定义了一个左上角坐标为(50, 50),右下角坐标为(200, 200)的矩形框。然后使用`cv2.rectangle()`函数绘制矩形框,颜色为绿色,线条粗细为2。最后使用`cv2.imshow()`函数显示绘制结果。
相关问题
opencv中Rect
在OpenCV中,Rect是一个表示矩形区域的类。它包含了矩形左上角的点的坐标和矩形的宽度和高度。Rect的定义如下:
```
class Rect {
public:
Point tl; // 矩形左上角的点
Size size; // 矩形的大小
Rect();
Rect(Point pt1, Point pt2); // 通过两个点构造矩形
Rect(Point pt, Size sz); // 通过左上角的点和大小构造矩形
Rect(int x, int y, int width, int height); // 通过坐标和大小构造矩形
// 返回矩形的右下角的点
Point br() const;
// 返回矩形的面积
int area() const;
// 判断矩形是否为空(即宽度或高度为0)
bool empty() const;
// 判断点是否在矩形内
bool contains(Point pt) const;
};
```
你可以使用Rect来表示图像中的一个矩形区域,例如人脸检测中的人脸区域。你可以用tl和size来访问矩形的左上角点和大小,也可以用br函数来获取右下角的点。area函数可以返回矩形的面积,empty函数可以判断矩形是否为空,contains函数可以判断一个点是否在矩形内。
opencv截取矩形rect
以下是使用OpenCV截取矩形rect的示例代码:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 定义矩形的左上角和右下角坐标
x1, y1, x2, y2 = 100, 100, 200, 200
# 绘制矩形
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 1)
# 截取矩形区域
roi = img[y1:y2, x1:x2]
# 显示截取后的图像
cv2.imshow('ROI', roi)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,我们首先读取了一张图像,然后定义了一个矩形的左上角和右下角坐标,接着使用`cv2.rectangle()`函数绘制了这个矩形,然后使用切片操作截取了矩形区域,最后显示了截取后的图像。
需要注意的是,`cv2.rectangle()`函数的参数中,第一个参数是要绘制矩形的图像,第二个参数是矩形的左上角坐标,第三个参数是矩形的右下角坐标,第四个参数是矩形的颜色,第五个参数是矩形的线条粗细,第六个参数是线条类型,第七个参数是线条的偏移量。
阅读全文