用python同时提取物体轮廓 灰度 和彩色并分别显示
时间: 2024-05-15 21:16:18 浏览: 21
下面是一份示例代码,可以同时提取物体轮廓、灰度和彩色图像,并分别显示:
```python
import cv2
import numpy as np
# 读取彩色图像
img = cv2.imread('example.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 提取物体轮廓
contours, hierarchy = cv2.findContours(gray, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 在原图上绘制轮廓
cv2.drawContours(img, contours, -1, (0, 0, 255), 2)
# 显示彩色图像、灰度图像和轮廓
cv2.imshow('color image', img)
cv2.imshow('gray image', gray)
cv2.imshow('contours', np.zeros_like(gray))
cv2.drawContours(np.zeros_like(gray), contours, -1, (255, 255, 255), 2)
cv2.waitKey(0)
```
该代码首先读取一个彩色图像(假设为`example.jpg`),然后将其转换为灰度图像。接着使用OpenCV的`findContours`函数提取物体轮廓,并在原图上绘制这些轮廓。最后,使用`imshow`函数分别显示彩色图像、灰度图像和轮廓。
需要注意的是,在显示轮廓时,我们需要先创建一个与灰度图像相同大小的全黑图像(使用`np.zeros_like`函数),然后在这个图像上绘制轮廓。这是因为轮廓本身只包含物体的边缘信息,不能直接显示。
相关推荐
![](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)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![whl](https://img-home.csdnimg.cn/images/20210720083646.png)