我要应用的皮肤癌图像K表示在灰度图像上聚类,代码如下
im = imread('SSM1_2_orig.jpg');
im = rgb2gray(im);
[idx centroids]=kmeans(double(im(:)),3,'distance','sqEuclidean','Replicates',3);
%imseg = zeros(size(im,1),size(im,2));
%{for i=1:max(idx)
%imseg(idx==i)=i;
%end}
segmented_images = cell(1,3);
for k = 1:3
color = im;
color(im ~= k) = 0;
segmented_images{k} = color;
end
figure(),imshow(segmented_images{1});
figure(),imshow(segmented_images{2});
figure(),imshow(segmented_images{3});
但这只给了我黑色的输出
这是工作代码。笔记:
您永远不会使用聚类的结果k
,而是将原始像素值与而不是聚类的像素值进行比较idx
。
另外,imshow(____, [])
如果图像不是[0-1]或[0-255] ,请记住使用。
im = imread('https://i.stack.imgur.com/ZYp7r.jpg');
im = rgb2gray(im);
[idx, centroids]=kmeans(double(im(:)),3,'distance','sqEuclidean','Replicates',3);
segmented_images = cell(1,3);
for k = 1:3
color = zeros(size(im));
color(idx==k) = im(idx==k);
segmented_images{k} = color;
end
figure(),imshow(segmented_images{1},[]);
figure(),imshow(segmented_images{2},[]);
figure(),imshow(segmented_images{3},[]);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句