value changes when running each time
1 次查看(过去 30 天)
显示 更早的评论
x=imread('im9.bmp');
HSV = rgb2hsv(x);
H = HSV(:,:,1); H = H(:);
S = HSV(:,:,2); S = S(:);
V = HSV(:,:,3); V = V(:);
idx = kmeans([H S V], 3,'distance','sqEuclidean');
tabulate(idx)
the percentage for each idx gets changed every time i run the program,whay i am getting like this,kindly assist
3 个评论
Walter Roberson
2013-3-22
kmeans still uses random initialization when you use reshape(), unless you provide the starting centroids like I showed below.
回答(1 个)
Youssef Khmou
2013-3-5
编辑:Youssef Khmou
2013-3-5
hi kash,
i quote , from Wikipedia : " Commonly used initialization methods are Forgy and Random Partition" so each time you run the code : Random partition is the cause of that small change , so here is what you can do :
you run the code 10 times , each time you store that variable, it is then a R.V calculate its mean and STD , and conclude .
9 个评论
Teja Muppirala
2013-3-22
Are you sure you have typed everything correctly?
x = imread('peppers.png');
HSV = rgb2hsv(x);
C=HSV(102:104,102:104);
idx = kmeans(reshape(HSV, [], 3),3,'distance','sqEuclidean','Start',C);
tabulate(idx)
For me, no matter how many times I run this, I always get the same result:
Value Count Percent
1 74013 37.64%
2 99481 50.60%
3 23114 11.76%
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!