用于检测彩色对象的聚类算法

时间:2014-09-14 03:53:17

标签: opencv cluster-analysis image-segmentation

是否可以使用任何聚类算法,使用opencv根据颜色将对象划分为2个聚类,以便能够计算2个不同颜色的数量(颜色对于所有对象不完全相同,但它们相似)图像中的物体?

到目前为止,以下代码是我所取得的成就 def getThresholdsKmeans(imageFile): im = cv2.imread(imageFile); im = ndimage.gaussian_filter(im,10) gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY); gray = gray.ravel(); gray = np.float32(gray); criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER,10,1); flags = cv2.KMEANS_RANDOM_CENTERS;
compactness,labels,centers = cv2.kmeans(gray,3,criteria,10,0) print centers return centers

我使用函数返回的值并对图像进行阈值处理。

1 个答案:

答案 0 :(得分:0)

您可以使用cv::kmeans
对于每个像素,提取三个颜色值并将其插入data矩阵 这导致输入图像行和三列中具有像素数的矩阵 将此矩阵用作data参数。根据您的定义,参数K将为2或3(两个彩色对象+背景颜色?)。