0
的具體標籤(包括數據),我想用Matlab中的kmeans來描述我的問題。 我通過鼠標選擇一個點並將其用於羣集初始化。這工作正常。首先得到k-means
在對數據進行分割後,我將數據重新塑造成適當的樣式,因爲我需要一個矩陣。 現在我只想選擇用戶通過鼠標選擇數據的集羣。 因此,我選擇鼠標座標的索引來選擇我想要分割的標籤。由於其他額外的數據沒有連接或附近的相關數據,但也相同的標籤。
我想在8
所以在這裏附近,只選擇連接組件是我的代碼片段至今:
flatimg = double(reshape(croppedimg,size(croppedimg,1)*size(croppedimg,2),size(croppedimg,3)));
% kmeans
[idx, clusters] = kmeans(flatimg,2,'start',[seedpoint1(3);seedpoint2(3)]);
% form it back to a matrix
k=reshape(idx,size(croppedimg,1),size(croppedimg,2));
%convert point, which is part of the label I want to linear index
selectedobjectpoint = sub2ind(size(croppedimg),seedpoint1(2),seedpoint1(1));
hgplabel = k(selectedobjectpoint);
idx_object = find(k, hgplabel);
% also tried: idx_object = find(k == hgplabel);
我添加了一個截圖,其中顯示了kmeans
直接輸出: 所以我的目標是在這裏只得到「白色」或「黑色」。
幫助或建議表示讚賞。如果您對片段或目標有任何疑問,請隨時提問。
預先感謝您!
這是絕對正確的。作爲最終結果,我希望只有二進制格式的標籤X的連接/鄰近鄰居。 – mchlfchr
查看新的編輯;這應該是bwlabel所做的。另請參閱regionprops。 – Pete
是的,我知道它做了什麼。但我如何獲得連接的組件? 我只看到k-classes的聚類,我想將它縮小到彼此相鄰/相互連接的聚類的一部分。 – mchlfchr