【发布时间】:2012-06-18 13:30:11
【问题描述】:
好的,所以我必须说 OpenCV 提供的示例 K-means 算法程序相当混乱。即使花了整个下午都没有得到完整的画面。以下是我想问的几个问题:
1) 我如何将给定的图像转换为单列矩阵,因为 K-means 函数只接受这样的矩阵作为输入?我知道我必须使用 CvMat 函数,但无法弄清楚到底如何。
2) 是否可以根据颜色强度进行聚类,使用一些预先确定的强度作为种子值?
最后但并非最不重要的一点是,如果有人可以提供任何详细解释 K-means 的链接,您将不胜感激。我已经经历了willowgarage和aishack的解释,仍然存在疑问。提前致谢!!
这正是我想要做的: 假设这是提供的图像
我的代码输出应该是这样的:
如您所见,在第二张图像中,由于阴影导致的效果被移除,我们得到了具有明确颜色层的图像。
现在我正在应用以下方法 首先,我根据图像的相应 LAB 值选择种子颜色。然后在获得种子值后,我尝试使用 K-means 聚类将相似的颜色聚类成一个确定的颜色层。 (如上图所示)。
【问题讨论】:
-
您到底想用 KMeans 和图像做什么?预期的结果是什么(逻辑上?)?