【发布时间】:2017-11-14 10:30:55
【问题描述】:
我正在开发一个在 python 中使用 opencv 的项目,我想在其中检测图像中的云。我已经尝试了很多东西,但我被卡住了。我找不到 hsv 颜色空间的云颜色值的确切范围。这是我尝试过的代码。以下代码检测到一些云,但不是全部。这是代码。我还附上了一张我从这段代码中获得的图像。
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)
【问题讨论】:
-
您在 HSV 颜色空间中为白色分配了 [255,255,255] 的值? HSV 不是 RGB
-
如果我将 [255,255,255] 更改为 [0,0,100] 这是 [255,255,255] 的 hsv,那么它会全部变黑。图像变成全黑..我的代码有什么问题吗?
-
"如果我改变..." 你是否在盲目地尝试数字组合? [30,30,30] 来自哪里?它在 HSV 中代表什么颜色(记住你不是 RGB)
-
[30,30,30] 在 HSV 中是一种深绿色,与你的天空或云彩颜色无关