我是靠谱客的博主 真实自行车,最近开发中收集的这篇文章主要介绍matlab中的档怎么找出来,MATLAB中使用查找表_LUT,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

使用查找表(LUT)的理解

两个重要函数,makelut和applylut

针对的是2×2或者3×3的邻域,2×2邻域总共有4个像素,每个像素有2中状态,0或1,那么根据排列组合共有16种状态,3×3邻域有9个像素,共有512种状态,

我们把这些状态编码,编码的方式如:

256 32 4

128 16 2

64 8 1

3×3邻域中相应位置相乘,得到矩阵A,A每个元素相加,最后得到一个0~511中的某个整数,加上1,调整到1~512区间。

那么对于矩阵B

0 0 0

0 1 0

0 1 0

0*256+0*32+4*0+128*0+16*1+2*0+64*0+8*1+1*0=24 结果加1,得25

那么f(B)=25,这样就建立了映射,B这种格式的3×3矩阵对应值为25

现在用makelut函数来构造一个查找表:

lut=makelut(@fun,3);

lut返回的是一个512长度的列向量,向量的元素为1或者0,为1的时候表示满足fun函数的要求,为0的时候不满足fun函数的要求。

比如fun函数的具体实现为:

function is_end_point= fcn(nhood)

is_end_point=nhood(2,2) & (sum(nhood(: )==2);

这里nhood为3×3构造元素,上述方程表示,nhood(2,2)表示为中心点的元素为1,并且nhood这个3×3矩阵中只能有连个元素为1,因为sum(nhood(:)==2,也就是表示线段的末端。

那么现在makelut(@fun,3)就开始构造查找表:

512 对应矩阵 1 1 1 不满足sum(nhood(:)==2)这个条件返回0

1 1 1

1 1 1

?

25 对应0 0 0 满足fun函数的条件,返回1

0 1 0

0 1 0

?

1 对应0 0 0 不满足fun函数的条件,返回为0

0 0 0

0 0 0

这样从512~1依次计算是否满足fun函数条件,满足的返回1,不满足的返回0.

那么返回值lut 为512×1的向量,按顺序代表512~1,也就是512个不同的矩阵中,是否

最后

以上就是真实自行车为你收集整理的matlab中的档怎么找出来,MATLAB中使用查找表_LUT的全部内容,希望文章能够帮你解决matlab中的档怎么找出来,MATLAB中使用查找表_LUT所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(114)

评论列表共有 0 条评论

立即
投稿
返回
顶部