如何使用opencv python检测图像中的云

时间:2017-11-14 10:30:56

标签: python opencv

我正在使用python中的opencv进行一个项目,我想在其中检测图像中的云。我已经尝试了很多东西,但我被卡住了。我无法找到hsv色彩空间的确切云色值范围。这是我试过的代码。下面的代码检测了一些云,但不是全部。这是code.i还附加了一个我从这段代码中得到的图像。

enter image description here

import cv2
import numpy as np

img = cv2.imread('E:/sky.jpg', 1)
hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

white = np.array([255, 255, 255])
lowerBound = np.array([30,30,30])

mask = cv2.inRange(hsv, lowerBound, white)

res = cv2.bitwise_and(img, img, mask=mask)
cv2.imwrite("E:/clouds.jpg",res)

cv2.imshow("mywindow",res)

cv2.waitKey(0)

1 个答案:

答案 0 :(得分:0)

尽量不要将图像更改为HSV色彩空间。 删除行

hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

其余代码清楚地表明您正在使用基于RGB颜色的方案,而您不知道HSV是什么。坦率地说,我认为你不需要首先使用HSV色彩空间。即使使用灰度图像表示也可以完成。