cnts = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[-2]是在做什么
时间: 2024-05-21 12:11:39 浏览: 13
cnts = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[-2] 这段代码是在寻找二值图像(mask)中的所有轮廓(contours),其中 cv2.RETR_EXTERNAL 表示只检测最外层的轮廓,cv2.CHAIN_APPROX_SIMPLE 表示压缩水平、垂直和对角线方向,只保留端点的轮廓信息。函数返回两个值,第一个是轮廓信息,第二个是层次信息,因此使用 [-2] 取最后一个值作为轮廓信息保存在变量 cnts 中。
相关问题
用中文分析以下代码 cnts = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[-2]
这段代码使用了OpenCV库中的findContours函数,其作用是在二值图像中查找轮廓。函数的参数包括三个:mask表示输入的二值图像,RETR_EXTERNAL表示只查找最外层轮廓,CHAIN_APPROX_SIMPLE表示轮廓的存储方式为仅存储轮廓的端点。函数的返回值是一个包含所有轮廓的列表,而cnts则表示列表中的第二个元素,即所有轮廓的坐标点数组。这段代码的作用是获取二值图像mask中所有外层轮廓的坐标点数组。
cnts = cv2.findContours(edged.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)[1]
这行代码是使用OpenCV库中的findContours函数来寻找图像中的轮廓。该函数的第一个参数是二值图像,第二个参数是轮廓检索模式,第三个参数是轮廓逼近方法。函数返回一个包含所有轮廓的列表,每个轮廓都是由一系列(x,y)坐标表示的点构成的numpy数组。在这个例子中,我们使用了copy()方法来复制edged图像,以避免在原始图像上进行修改。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.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)