diff options
Diffstat (limited to 'SD-VBS/common/toolbox/toolbox_basic/textons/find_textons1.m')
-rwxr-xr-x | SD-VBS/common/toolbox/toolbox_basic/textons/find_textons1.m | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/SD-VBS/common/toolbox/toolbox_basic/textons/find_textons1.m b/SD-VBS/common/toolbox/toolbox_basic/textons/find_textons1.m new file mode 100755 index 0000000..b192015 --- /dev/null +++ b/SD-VBS/common/toolbox/toolbox_basic/textons/find_textons1.m | |||
@@ -0,0 +1,37 @@ | |||
1 | function [centers,label,post,d2]=find_textons(fv,ncenters,centers_in,n_iter); | ||
2 | % [centers,label,post,d2]=find_textons(FIw,ncenters,centers_in,n_iter); | ||
3 | % | ||
4 | % find textons using kmeans for windowed portion FIw of filtered image | ||
5 | % | ||
6 | % to start with centers pulled randomly from image, set centers_in=[] | ||
7 | |||
8 | [N1,N2] =size(fv); | ||
9 | |||
10 | % take centers randomly from within image | ||
11 | if isempty(centers_in) | ||
12 | rndnum=1+floor(N1*rand(1,ncenters)); | ||
13 | centers_in=fv(rndnum,:); | ||
14 | end | ||
15 | |||
16 | options = foptions; | ||
17 | options(1)=1; % Prints out error values. | ||
18 | options(5) = 0; | ||
19 | if nargin<4 | ||
20 | n_iter=15; | ||
21 | end | ||
22 | options(14) = n_iter; % Number of iterations. | ||
23 | |||
24 | [centers,options,d2,post]=kmeans2(centers_in,fv,options); | ||
25 | |||
26 | |||
27 | % retrieve cluster number assigned to each feature vector | ||
28 | [minval,label]=min(d2,[],2); | ||
29 | |||
30 | |||
31 | h = hist(label(:),[1:max(label(:))]); | ||
32 | a = h>0; | ||
33 | a = cumsum(a); | ||
34 | |||
35 | [nr,nc] = size(label); | ||
36 | label = reshape(a(label(:)),nr,nc); | ||
37 | |||