我用python写了一个代码,从OpenCV进行K均值聚类,以找到屋顶图像的空白区域。
首先,我从Google Earth上获得了一栋建筑物的屋顶的图像,我的目标是检测该屋顶的空白区域。此图像是屋顶的示例,绿线描述了我要检测的空白区域
要检测到我使用K均值聚类将该图像按K = 3进行聚类。
我想知道如何测量所做的性能,并检查该代码是否真的出现空白区域,以及该特定图像中性能的百分比!
这是我的代码:
img = cv2.imread('Studying Dataset/2.png')
orig = img = gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = cv2.GaussianBlur(img,(27,27),5)
z = img.reshape((-1,1))
z = np.float32(z)
criteria=(cv2.TERM_CRITERIA_EPS+ cv2.TERM_CRITERIA_MAX_ITER, 20, 5.0)
K=3
ret, lable1, center1 = cv2.kmeans(z, K, None, criteria, 10, cv2.KMEANS_RANDOM_CENTERS)
center1 = np.uint8(center1)
res1 = center1[lable1.flatten()]
output1 = res1.reshape((img.shape))
cv2.imwrite('result1.png',output1)
希望有人可以帮助我,谢谢