【error: Unknown C++ exception from OpenCV code】

项目场景:

通过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的资料,发现【error: Unknown C++ exception from OpenCV code】_第1张图片
也就是说当待处理的数据data必须一个元素占一行,我这里是对单个特征进行聚类,因此我的data的形状应该是n行1列,n为像元的个数。


解决方案:

执行kmeans之前加上这句代码:image_1 = image.reshape((image.shape[0]*image.shape[1],1))

你可能感兴趣的:(bug记录,python)