通过opencv的kmeans模块对遥感图像进行分割
error: Unknown C++ exception from OpenCV code
c = (cv.TERM_CRITERIA_EPS+ cv.TERM_CRITERIA_MAX_ITER,10, 0.1)
k=2
ret, label, center = cv.kmeans(image, k, None, c, 10, cv.KMEANS_RANDOM_CENTERS)
有的说是opencv的版本太高了,python版本低导致的。觉得换版本太麻烦了就没有尝试。于是查看了关于opencv的资料,发现
也就是说当待处理的数据data必须一个元素占一行,我这里是对单个特征进行聚类,因此我的data的形状应该是n行1列,n为像元的个数。
执行kmeans之前加上这句代码:image_1 = image.reshape((image.shape[0]*image.shape[1],1))