K意味着聚类图像处理不起作用

时间:2015-05-21 08:55:18

标签: matlab image-processing machine-learning octave k-means

我尝试过以下代码。

he = imread('hestain.png');
imshow(he), title('H&E image');
cform = makecform('srgb2lab');
lab_he = applycform(he,cform);
ab = double(lab_he(:,:,2:3));
nrows = size(ab,1); %n rows
ncols = size(ab,2); %p columns
ab = reshape(ab,nrows*ncols,2);

nColors = 3;

[cluster_idx, cluster_center] = kmeans(ab,nColors); 

它给了我错误

  

reshape无法从n * 1数组创建n * p matirx。

这有意义,但它有效here

我在八度音程中尝试了相同类型的代码

ed=edge(de,"canny");
imshow(ed);
ed=double(ed);
nrows=size(ed,1);
ncols=size(ed,2);
ed=reshape(ed,nrows*ncols,2)
[cluster_idx, cluster_center]=kmeans(ed,3);
pixel_labels = reshape(cluster_idx,nrows,ncols);
imshow(pixel_labels,[]), title('image labeled by cluster index');

其中de是一些图像。 当我跑的时候我得到了这个错误。

  

错误:重塑:无法将181x181阵列重新整形为32761x2阵列

帮助赞赏

0 个答案:

没有答案