3
我想將rgb圖像轉換爲灰度圖,然後使用matlab的kmean函數對其進行聚類。使用k-mean灰度圖像處理
這裏是我的代碼
he = imread('tumor2.jpg');
%convert into a grayscale image
ab=rgb2gray(he);
nrows = size(ab,1);
ncols = size(ab,2);
%convert the image into a column vector
ab = reshape(ab,nrows*ncols,1);
%nColors=no of clusters
nColors = 3;
%cluster_idx is a n x 1 vector where cluster_idx(i) is the index of cluster assigned to ith pixel
[cluster_idx, cluster_center ,cluster_sum] = kmeans(ab,nColors,'distance','sqEuclidean','Replicates',1,'EmptyAction','drop');
figure;
%converting vector into a matrix of dimensions equal to that of original
%image dimensions (nrows x ncols)
pixel_labels = reshape(cluster_idx,nrows,ncols);
pixel_labels
imshow(pixel_labels,[]), title('image labeled by cluster index');
問題
1)輸出圖像始終是一個純白色的圖像。 我試過下面的鏈接給出的解決方案,但在這種情況下圖像的輸出是一個普通的灰色圖像。
2)當我執行我的代碼第二時間,執行不進行超出K均值函數(它喜歡有一個無限循環)。因此在這種情況下沒有輸出。
您可以發佈示例圖片嗎? –
這很好奇,因爲如果我設置30個'nColors',那麼我會爲攝影師圖像獲得3個簇。可能有更多kmeans經驗的人可以幫助 –
警告:在複製1 – dhama