matlab练习程序(makelut/applylut)

cl;
bw=[eye(3) eye(3);eye(3) eye(3)]; %要处理的矩阵
f=eye(3); %模板矩阵,其实是需要使用到的逻辑
lut=makelut(@(nbood) isequal(nbood,f),3); %生成查表向量,将f矩阵这样的逻辑应用到3*3的nbood上
bw1=applylut(bw,lut); %应用查表向量。方法:遍历bw所有pixel,如果哪个pixel和f完全相同的,则bw1中相应位置的pixel置1,否则置0
bw,f,bw1 %看看结果

%%另一种使用makelut的方法
lut=makelut(@(nbood) (nbood(1,1)==1&&nbood(2,2)==1),2); %自己定义处理2*2模板中的逻辑处理nbood,这里用到的逻辑是[1 0;0 1]这样一个矩阵
bw2=applylut(bw,lut);
bw,bw2

你可能感兴趣的:(matlab)