如何用opencv找到图片中所有的轮廓并根据给定的左上和右下坐标进行轮廓匹配找到正好符合要求的轮廓
时间: 2024-03-25 19:37:02 浏览: 18
首先,使用OpenCV中的findContours函数可以找到图像中的所有轮廓,代码如下:
```
import cv2
image = cv2.imread('image.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 127, 255, 0)
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
```
其中,findContours函数需要三个参数:
- 输入图像(一般是灰度图像)
- 轮廓检索模式(例如RETR_TREE)
- 轮廓逼近方法(例如CHAIN_APPROX_SIMPLE)
接下来,我们可以遍历所有的轮廓,使用cv2.boundingRect函数获取每个轮廓的边界框左上角和右下角的坐标,代码如下:
```
for contour in contours:
x, y, w, h = cv2.boundingRect(contour)
if x >= left and x + w <= right and y >= top and y + h <= bottom:
# 这个轮廓符合要求,可以进行相关操作
```
其中,left、top、right、bottom是给定的左上和右下坐标。
在上述代码中,我们判断了每个轮廓是否在给定的坐标范围内。如果符合要求,就可以进行相关操作了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)