opencv python实现草木天空的识别
时间: 2023-08-13 17:08:34 浏览: 48
OpenCV Python可以用于草木天空的识别。以下是一个简单的示例代码:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('sky.jpg')
# 将图像转换为HSV颜色空间
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 设定绿色草地和蓝色天空的颜色范围
lower_green = np.array([40, 40, 40])
upper_green = np.array([70, 255, 255])
lower_blue = np.array([100, 50, 50])
upper_blue = np.array([130, 255, 255])
# 对图像进行颜色过滤,得到草地和天空的掩模图像
mask_green = cv2.inRange(hsv, lower_green, upper_green)
mask_blue = cv2.inRange(hsv, lower_blue, upper_blue)
# 对掩模图像进行形态学操作,去除噪声
kernel = np.ones((5,5), np.uint8)
mask_green = cv2.morphologyEx(mask_green, cv2.MORPH_OPEN, kernel)
mask_blue = cv2.morphologyEx(mask_blue, cv2.MORPH_OPEN, kernel)
# 合并草地和天空的掩模图像
mask = cv2.bitwise_or(mask_green, mask_blue)
# 对原图像进行掩模操作,得到草木天空的图像
result = cv2.bitwise_and(img, img, mask=mask)
# 显示结果
cv2.imshow('result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,我们首先读取了草木天空的图像。然后将图像转换为HSV颜色空间,并设定颜色范围,得到草地和天空的掩模图像。接着对掩模图像进行形态学操作,去除噪声,并合并草地和天空的掩模图像。最后对原图像进行掩模操作,得到草木天空的图像。运行代码后,可以看到只有草木天空的部分被保留下来。