test4.m

来自「快速高斯变换的程序」· M 代码 · 共 61 行

M
61
字号
RGB = imread('smhouse.ppm');
sz = size(RGB);
HSV = rgb2luv(RGB);
H=HSV(:,:,1);
S=HSV(:,:,2);
V=HSV(:,:,3);
figure, imshow(RGB);
figure; imshow(H,[]);
figure, imshow(S,[]);
figure, imshow(V,[]);
[X, Y] = meshgrid(1:sz(1), 1:sz(2));
X = X(:)';Y = Y(:)';
H=H(:)';S=S(:)';V=V(:)';
H = (H-min(H))./range(H);
S = (S-min(S))./range(S);
V = (V-min(V))./range(V);
X = (X-min(X))./range(X);
Y = (Y-min(Y))./range(Y);
X = X/4;
Y = Y/4;
data = [H;S;V;X;Y];

h = .1
p = 3
Kc = 50
e = 4
itmax = 5
K = 4
[mode, cidx] = meanshift(data,h,'steepdesc',p,Kc,e,itmax,K);
figure;

sr = ones(size(H))*255;
sg = sr;
sb = zeros(size(H));

sr(cidx==1) = 255;
sg(cidx==1) = 0;
sb(cidx==1) = 0;

sr(cidx==2) = 0;
sg(cidx==2) = 255;
sb(cidx==2) = 0;


sr(cidx==3) = 0;
sg(cidx==3) = 0;
sb(cidx==3) = 255;

sr(cidx==4) = 255;
sg(cidx==4) = 0;
sb(cidx==4) = 255;

sr = reshape(sr, sz(1), sz(2));
sg = reshape(sg, sz(1), sz(2));
sb = reshape(sb, sz(1), sz(2));

srgb(:,:,1) = sr;
srgb(:,:,2) = sg;
srgb(:,:,3) = sb;

image(srgb/255);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?