我有一个96x96像素的灰度面部图像。我试图找到眼睛中心和嘴角。我在面部图像上应用了一个gabor滤镜(theta = pi/2,lamda = 1.50),并且在卷积后得到像这样的滤镜输出。k-means聚类中心?
正如你可以从输出的Gabor眼睛和嘴角看到清晰可辨。我申请scikit k均值聚类组像素起来4群(2只眼和2唇角落)
data = output.reshape(-1,96*96)
estimator = KMeans(n_clusters=4)
estimator.fit(data)
centroids = np.asarray(estimator.cluster_centers_)
print 'Cluster centers', centroids.shape
print 'Labels', estimator.labels_, estimator.labels_.shape
输出
Input X,y: (100, 96, 96) (1783, 1)
Gabor Filters (1, 9, 9)
Final output X,y (100, 96, 96) (0,)
Shape estimator.cluster_centers_: (4, 9216)
现在问题来了:如何绘制质心的x,y 4个集群中心的坐标?我会看到眼睛中心和嘴角
更多信息:我绘制estimator.cluster_centers_,输出就像一本代码书。我看不到群集质心的坐标。
我使用的步骤在本文中所描述:http://jyxy.tju.edu.cn/Precision/MOEMS/doc/p36.pdf
看来我可能需要降低维度到2d找到聚类中心。应用阈值是一个不错的主意:)但是即使在阈值之后,9216中高强度像素的维数也超过了100个。不可能将它带到2d? – pbu 2015-03-31 14:04:24
@pbu对不起,我感到困惑。我的意思是,在对图像中的像素进行阈值处理后,可以提取每个暗像素的(x,y)坐标,以便从每幅图像中提取〜100(x,y)位置,然后运行K - 表示这组二维点。我会添加一个例子。 – lmjohns3 2015-04-02 00:35:13
@pbu我刚刚读了你链接的论文,这也是他们正在做的。仔细阅读部分IV-B和IV-C。 – lmjohns3 2015-04-02 01:55:45