python中opencv怎么在图片上画矩形
时间: 2023-12-22 15:06:42 浏览: 165
要在OpenCV中的图片上画矩形,可以使用cv2.rectangle()函数。该函数的参数包括:输入图像,矩形左上角顶点坐标,矩形右下角顶点坐标,矩形颜色和线宽。
下面是一个简单的示例代码:
```python
import cv2
# 读取图片
img = cv2.imread('example.jpg')
# 定义矩形左上角和右下角坐标
pt1 = (50, 50)
pt2 = (200, 200)
# 定义矩形颜色和线宽
color = (0, 255, 0) # 绿色
thickness = 2
# 在图片上画矩形
cv2.rectangle(img, pt1, pt2, color, thickness)
# 显示图片
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
运行以上代码后,将在图片上画一个左上角坐标为(50,50),右下角坐标为(200,200)的矩形,并将结果显示出来。
相关问题
opencv在图片上画矩形
在 `OpenCV` 中,可以使用 `cv2.rectangle()` 函数在图像上绘制矩形。该函数的基本语法如下:
```python
cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]])
```
其中,各参数的含义如下:
- `img`:要绘制矩形的图像;
- `pt1`:矩形的顶点坐标,为一个二元组 `(x1, y1)`;
- `pt2`:矩形的对角线顶点坐标,为一个二元组 `(x2, y2)`;
- `color`:矩形的颜色,为一个三元组 `(B, G, R)`,表示蓝色、绿色和红色通道的值,范围为 0~255;
- `thickness`:矩形线条的粗细程度,默认值为 1;
- `lineType`:矩形线条的类型,默认值为 `cv2.LINE_8`;
- `shift`:坐标点小数位数,一般不用管,默认值为 0。
下面是一个示例代码,演示如何在图像中绘制一个矩形:
```python
import cv2
img = cv2.imread('test.jpg')
pt1 = (100, 100)
pt2 = (200, 200)
color = (0, 0, 255) # 红色
thickness = 2
cv2.rectangle(img, pt1, pt2, color, thickness)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
运行以上代码,会在 `test.jpg` 图片中绘制一个左上角坐标为 (100, 100),右下角坐标为 (200, 200) 的红色矩形,效果如下所示:
![opencv-draw-rectangle](https://img-blog.csdn.net/20180316143008255?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmlrb2xldGlvbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70)
python opencv 获取图片中的矩形点
在Python中,使用OpenCV(cv2)库来获取图片中的矩形区域,通常涉及到图像处理和特征检测。你可以通过以下几个步骤来实现:
1. **读取图片**:
```python
import cv2
img = cv2.imread('image_path.jpg')
```
2. **选择矩形区域**:
如果你已经知道了矩形的坐标(左上角(x1, y1)和右下角(x2, y2)),可以用`img[y1:y2, x1:x2]`来裁剪。如果没有,则需要先进行边缘检测、轮廓识别等操作找到矩形。
3. **边缘检测或轮廓查找**:
```python
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, threshold1, threshold2) # 高斯边缘检测
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 轮廓查找
```
4. **遍历并提取矩形**:
对于每个找到的轮廓,可以计算其边界框(bounding rectangle)来得到矩形区域:
```python
for contour in contours:
(x, y, w, h) = cv2.boundingRect(contour)
rect_img = img[y:y+h, x:x+w]
```
5. **保存或显示结果**:
```python
cv2.imshow("Rectangle", rect_img)
cv2.waitKey(0) # 等待用户按键
```
如果你想要根据特定条件(比如面积、颜色等)来定位矩形,可能还需要额外的预处理步骤。
阅读全文