我有一個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