我正在使用python中的opencv进行一个项目,我想在其中检测图像中的云。我已经尝试了很多东西,但我被卡住了。我无法找到hsv色彩空间的确切云色值范围。这是我试过的代码。下面的代码检测了一些云,但不是全部。这是code.i还附加了一个我从这段代码中得到的图像。
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)
答案 0 :(得分:0)
尽量不要将图像更改为HSV色彩空间。 删除行
hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
其余代码清楚地表明您正在使用基于RGB颜色的方案,而您不知道HSV是什么。坦率地说,我认为你不需要首先使用HSV色彩空间。即使使用灰度图像表示也可以完成。