matlab——生成查找表LUT

依据左超论文建立查找表


原理图

生成条纹级次可能项

-floor(width1) <= K1 <=floor (width1)

-floor(width2) <= K2 <= floor(width2)

按照条纹宽度赋当前k值

按照公式

生成查找表LUT = [ k1 k2 k2p1-k1p2 ]

去除重复值获得查找表LUT。

fun_LUT.m

%生成查找表

function [ lut ] = fun_LUT( width1,width2 )

%!!!注意:width1 > width2

%

show = 1;

Lcm = lcm(width1,width2);

number1 = Lcm/width1;

number2 = Lcm/width2;

for i = -floor(number1/2):floor(number1/2)

n = i - (-floor(number1/2))+1;

start = width1*(n-1)+1;

en_d = width1*n;

A(1,start:en_d) = i;

end

for i = -floor(number2/2):floor(number2/2)

n = i - (-floor(number2/2))+1;

start = width2*(n-1)+1;

en_d = width2*(n);

B(1,start:en_d) = i;

end

if rem(width1,2) == 0

[nouse,length_A] = size(A);

AA = zeros(1,2*length_A);

for n = 1:length_A

AA(2*n-1:2*n) = A(1,n);

end

[nouse,length_B] = size(B);

BB = zeros(1,2*length_B);

for n = 1:length_B

BB(2*n-1:2*n) = B(1,n);

end

dif = length_B-length_A;%(2*length_B-2*length_A)/2;

BB = BB(dif+1:end-dif);

lut = [AA;BB;BB(1,:)*number1-AA(1,:)*number2];

if show == 1

figure;

juxing(1:2*length_A,lut(3,:));

end

%去除重复值

lut = unique(lut','rows');

lut = sortrows(lut,3);

else

lut = [A;B;B(1,:)*number1-A(1,:)*number2];

if show == 1

juxing(1:Lcm,lut(3,:));

end

%去除重复值

lut = unique(lut','rows');

lut = sortrows(lut,3);

end

end

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,859评论 0 33
  • 《ijs》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 5,591评论 0 7
  • 《ilua》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 1...
    叶染柒丶阅读 11,374评论 0 11
  • 今天一天都过得比较休闲,基本上都在玩乌贼,磨炼技术。之前好长一段时间没有好好玩这个游戏,今天刚开始玩的时候发现没有...
    钤鱼摆摆阅读 355评论 1 1
  • 年轮 多了些杠杠 曾几时 细嗅蔷薇 只为淡淡一香 辗转间 轻抚湖水 只贪阵阵微凉 又一年 丁香蒂开 依旧的花漾 不...
    小颜儿你丫阅读 483评论 0 0

友情链接更多精彩内容