lvqcode.m

来自「毕业设计做的...用LBG算法实现矢量量化的算法..matlab」· M 代码 · 共 36 行

M
36
字号
function [index,y]=lvqcode(x,v)%eeeeeeeeeeeeee
v=double(v);
xorig=x;
nx=size(x,1);
ny=size(x,2);
x=double(x);
s=sqrt(size(v,2));
%划分块
%--------------------------------
x1=im2col(x,[s s],'distinct');
x=x1';
%---------------------------------

c=size(v,1);
n=size(x,1);

%------------最近近邻编码--------------------
for i=1:n
mini=(((repmat(x(i,:),[c 1])-v(:,:)).^2))';
if(not (size(x,2)==1))
    mini=(sum(mini))';
end
mini=sqrt(mini);

m=min(mini);
temp=find(mini==m);
if(length(temp)==1)
    index(i)=temp;
else
index(i)=temp(1);
end
clear temp;
end
%------------------------------------------------------
%y=col2im(index,[1 1],[nx/s ny/s],'distinct');
y=reshape(index,nx/s,ny/s);

⌨️ 快捷键说明

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