繁体   English   中英

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

[英]how to detect clouds in image using opencv python

我正在使用在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色彩空间。 删除线

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM