【发布时间】:2021-10-30 04:09:33
【问题描述】:
我正在尝试根据颜色估算卫星照片上的植被面积(以平方米为单位)。我没有训练数据集,因此无法进行机器学习。所以我知道结果不会很好,但我还是试试看。
为此,我通过 cv2.inRange 对颜色应用了过滤器。
import numpy as np
import cv2
img = cv2.imread('staticmap.png')
upperbound = np.array([70, 255,255])
lowerbound = np.array([40, 40,40])
mask = cv2.inRange(img, lowerbound, upperbound)
imask = mask>0
white = np.full_like(img, [255,255,255], np.uint8)
result = np.zeros_like(img, np.uint8)
result[imask] = white[imask]
cv2.imshow(winname = 'satellite image', mat = img)
cv2.imshow('vegetation detection', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
这给出了以下结果
所以看来检测还不算太差。 现在,我想从白色像素的密度中检测出有植被的区域和没有植被的区域。我想像这样的输出:
是否有任何开放的 cv 函数可以做到这一点?
【问题讨论】:
标签: python opencv computer-vision image-segmentation satellite-image