C++中知道左上和右下角两个点,怎么使用opencv画一个框
时间: 2024-05-16 11:11:52 浏览: 144
可以使用opencv提供的rectangle函数来绘制一个矩形框。具体实现方法如下:
1.设定左上和右下角两个点的坐标(x1,y1)和(x2,y2)
2.使用rectangle函数画出矩形框,函数格式如下:
cv.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
其中,img为待绘制的图像,pt1和pt2分别为左上角和右下角的坐标,color为颜色,thickness为画线的宽度,默认为1,lineType为线的类型,默认为8连接线,shift为坐标点小数点位数。
例如,下面的代码可以画出一个框住了图像左上角和右下角的矩形框:
```python
import cv2 as cv
#设定左上和右下角两个点
x1, y1 = 10, 10
x2, y2 = 100, 100
#读入图像
img = cv.imread('image.jpg')
#绘制矩形框
cv.rectangle(img, (x1,y1), (x2,y2), (255,0,0), 2)
#显示图像
cv.imshow('image', img)
cv.waitKey(0)
```
其中,(255,0,0)表示颜色为蓝色(BGR格式),2表示画线宽度为2。你也可以根据需要选择其他颜色和宽度。
相关问题
opencv c++ 绘图
Opencv C++ 提供了一些绘图函数,可以在图像上绘制不同的几何形状和文本。以下是一些常用的绘图函数:
1. cv::line:绘制一条直线
```
cv::line(image, cv::Point(x1, y1), cv::Point(x2, y2), cv::Scalar(B, G, R), thickness);
```
参数解释:
- image:要绘制的图像
- cv::Point(x1, y1) 和 cv::Point(x2, y2):线段的两个端点坐标
- cv::Scalar(B, G, R):线段的颜色,BGR顺序
- thickness:线段的宽度
2. cv::rectangle:绘制一个矩形
```
cv::rectangle(image, cv::Point(x1, y1), cv::Point(x2, y2), cv::Scalar(B, G, R), thickness);
```
参数解释:
- image:要绘制的图像
- cv::Point(x1, y1) 和 cv::Point(x2, y2):矩形的左上角和右下角坐标
- cv::Scalar(B, G, R):矩形的颜色,BGR顺序
- thickness:矩形边框的宽度,如果为负数则表示填充整个矩形
3. cv::circle:绘制一个圆
```
cv::circle(image, cv::Point(x, y), radius, cv::Scalar(B, G, R), thickness);
```
参数解释:
- image:要绘制的图像
- cv::Point(x, y):圆心坐标
- radius:圆的半径
- cv::Scalar(B, G, R):圆的颜色,BGR顺序
- thickness:圆边框的宽度,如果为负数则表示填充整个圆
4. cv::putText:在图像上绘制文本
```
cv::putText(image, text, cv::Point(x, y), font, fontScale, cv::Scalar(B, G, R), thickness);
```
参数解释:
- image:要绘制的图像
- text:要绘制的文本
- cv::Point(x, y):文本左下角坐标
- font:字体类型,如cv::FONT_HERSHEY_SIMPLEX
- fontScale:字体大小,通常为1.0
- cv::Scalar(B, G, R):文本颜色,BGR顺序
- thickness:文本线条宽度,通常为1
以上是一些常用的绘图函数,你可以根据需要选择使用。
OPENCV 画矩形
在CV中,可以使用rectangle()函数来绘制矩形。这个函数有两种不同的形式。
第一种形式是: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),以及可选的线宽(thickness)、线型(lineType)和坐标的精度(shift)参数。
第二种形式是:void cv::rectangle(Mat &img, Rect rec, const Scalar &color, int thickness = 1, int lineType = LINE_8, int shift = 0)。这个函数需要传入一个图像(img),要绘制的矩形的区域(rec),指定矩形的颜色(color),以及可选的线宽(thickness)、线型(lineType)和坐标的精度(shift)参数。
在使用这两种形式的函数时,需要包含相应的头文件(如#include <opencv2/imgproc.hpp>和#include <opencv2/core/types.hpp>)。
所以,根据需要选择适合的函数形式,并传入正确的参数,就可以在OpenCV中画出矩形了。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [C++Opencv图像几何绘制](https://blog.csdn.net/qq_45373844/article/details/127830525)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [opencv(12):cv::rectangle学习与代码演示,使用opencv画矩形/矩形框](https://blog.csdn.net/BIT_HXZ/article/details/125854465)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文