发明名称 一种基于质量图导引法和枝切法的干涉相位图解缠方法
摘要 本发明公开了一种基于质量图导引法和枝切法的干涉相位图解缠方法,首先采用枝切法对干涉相位图进行初步解缠,得到解缠相位图和解缠相位的二值分布图,再基于枝切法中的枝切线分布图和解缠相位的二值分布图找到未解缠区域与解缠区域边界线上的未解缠像素点,根据质量图找出与枝切线上未解缠像素点相邻的已解缠像素点中质量最好的点,将该点作为起始参考点用质量图导引法解缠与其相邻的未解缠区域中的像素,即用枝切线上的像素相位使两侧不连通的区域的相位连续起来,然后利用质量图导引法解缠被枝切线隔开的小部分非连通区域,大大降低了要解缠图像的大小,即可降低质量图导引法的计算量,进而减少了运算时间。
申请公布号 CN103279945B 申请公布日期 2015.11.25
申请号 CN201310150474.X 申请日期 2013.04.26
申请人 北京理工大学 发明人 佟洁;王霞;王萌;路陆;金伟其
分类号 G06T7/00(2006.01)I 主分类号 G06T7/00(2006.01)I
代理机构 北京理工大学专利中心 11120 代理人 付雷杰;李爱英
主权项 一种基于质量图导引法和枝切法的干涉相位图解缠方法,其特征在于,包括如下步骤:步骤一,计算干涉相位图f<sub>O</sub>(x,y)的残差点,根据残差点设置枝切线,得到枝切线分布图f<sub>B</sub>(x,y);步骤二,选择枝切法解缠的开始点,采用枝切法解缠干涉相位图,得到解缠的相位图f<sub>u</sub>(x,y)以及该图对应的二值分布图f<sub>b</sub>(x,y);步骤三,采用质量图导引法求出干涉相位图的质量图f<sub>q</sub>(x,y),具体为:首先采用传统解缠算法分别沿x方向和y方向解缠相位图,得到相位图f<sub>x</sub>(x,y)和f<sub>y</sub>(x,y);分别计算相位图f<sub>x</sub>(x,y)和f<sub>y</sub>(x,y)中像素(i,j)相位与相邻像素相位的平均值<img file="FDA0000783831150000011.GIF" wi="151" he="86" />和<img file="FDA0000783831150000012.GIF" wi="178" he="92" /><maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mover><msub><mi>f</mi><mi>x</mi></msub><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mi>f</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>f</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>f</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>f</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><msub><mi>f</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow><mn>5</mn></mfrac><mo>;</mo></mrow>]]></math><img file="FDA0000783831150000013.GIF" wi="1053" he="109" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mover><msub><mi>f</mi><mi>y</mi></msub><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mi>f</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>f</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>f</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>f</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><msub><mi>f</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow><mn>5</mn></mfrac><mo>;</mo></mrow>]]></math><img file="FDA0000783831150000014.GIF" wi="1097" he="110" /></maths>然后计算各点相位与平均值的差:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>x</mi></msubsup><mo>=</mo><msub><mi>f</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>-</mo><mover><msub><mi>f</mi><mi>x</mi></msub><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>,</mo><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi></mrow><mi>x</mi></msubsup><mo>=</mo><msub><mi>f</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>-</mo><mover><msub><mi>f</mi><mi>x</mi></msub><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>,</mo><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi></mrow><mi>x</mi></msubsup><mo>=</mo><msub><mi>f</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>-</mo><mover><msub><mi>f</mi><mi>x</mi></msub><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000783831150000015.GIF" wi="1800" he="93" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn></mrow><mi>x</mi></msubsup><mo>=</mo><msub><mi>f</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><mover><msub><mi>f</mi><mi>x</mi></msub><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>,</mo><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow><mi>x</mi></msubsup><mo>=</mo><msub><mi>f</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><mover><msub><mi>f</mi><mi>x</mi></msub><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000783831150000016.GIF" wi="1254" he="92" /></maths>和<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>y</mi></msubsup><mo>=</mo><msub><mi>f</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>-</mo><mover><msub><mi>f</mi><mi>y</mi></msub><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000783831150000017.GIF" wi="499" he="95" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi></mrow><mi>y</mi></msubsup><mo>=</mo><msub><mi>f</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>-</mo><mover><msub><mi>f</mi><mi>y</mi></msub><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>,</mo><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi></mrow><mi>y</mi></msubsup><mo>=</mo><msub><mi>f</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>-</mo><mover><msub><mi>f</mi><mi>y</mi></msub><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>,</mo><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn></mrow><mi>y</mi></msubsup><mo>=</mo><msub><mi>f</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><mover><msub><mi>f</mi><mi>y</mi></msub><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000783831150000018.GIF" wi="1944" he="95" /></maths><maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow><mi>y</mi></msubsup><mo>=</mo><msub><mi>f</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><mover><msub><mi>f</mi><mi>y</mi></msub><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000783831150000019.GIF" wi="640" he="95" /></maths>最后,像素点(i,j)处的质量Q(i,j)为:<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><mtable><mtr><mtd><mrow><mi>Q</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo></mrow></mtd></mtr><mtr><mtd><mrow><msqrt><mrow><msup><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi></mrow><mi>x</mi></msubsup><mn>2</mn></msup><mi>+</mi><msup><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mi>-</mi><mn>1</mn><mo>,</mo><mi>j</mi></mrow><mi>x</mi></msubsup><mn>2</mn></msup><mi>+</mi><msup><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mi>+1</mi></mrow><mi>x</mi></msubsup><mn>2</mn></msup><mi>+</mi><msup><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow><mi>x</mi></msubsup><mn>2</mn></msup><mo>+</mo><msup><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>x</mi></msubsup><mn>2</mn></msup></mrow></msqrt><mo>+</mo><msqrt><mrow><msup><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mo>,</mo><mi>j</mi></mrow><mi>y</mi></msubsup><mn>2</mn></msup><mi>+</mi><msup><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mi>-</mi><mn>1</mn><mo>,</mo><mi>j</mi></mrow><mi>y</mi></msubsup><mn>2</mn></msup><mi>+</mi><msup><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mi>+1</mi></mrow><mi>y</mi></msubsup><mn>2</mn></msup><mi>+</mi><msup><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn></mrow><mi>y</mi></msubsup><mn>2</mn></msup><mo>+</mo><msup><msubsup><mi>&Delta;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>y</mi></msubsup><mn>2</mn></msup></mrow></msqrt></mrow></mtd></mtr></mtable><mo>;</mo></mrow>]]></math><img file="FDA0000783831150000021.GIF" wi="1942" he="303" /></maths>步骤四,找出所有既位于所述步骤二的枝切线分布图f<sub>B</sub>(x,y)中枝切线上又位于所述步骤二的二值分布图f<sub>b</sub>(x,y)中未解缠区域内的未解缠像素点M<sub>i</sub>;步骤五,根据所述步骤二的二值分布图f<sub>b</sub>(x,y)和步骤四中得到的未解缠像素点M<sub>i</sub>,找到与每一个未解缠像素点M<sub>i</sub>相邻的已解缠像素点,将所有未解缠像素点的相邻的已解缠像素点组成相邻像素点集合;所述相邻的已解缠像素点为该未解缠像素点所在未解缠区域外,且与该未解缠像素点在水平或在竖直方向上相邻的像素点;步骤六,利用步骤三得到的质量图f<sub>q</sub>(x,y)找出相邻像素点集合中质量最小的点M<sub>q</sub>,将该点作为参考点,该点的相位值为参考相位值;步骤七,以参考点M<sub>q</sub>为中心,利用质量图导引法解缠与该点相邻的未解缠的区域中的像素点的相位,在解缠过程中更新解缠的相位图f<sub>u</sub>(x,y),得到更新后解缠的相位图f<sub>u</sub>′(x,y),然后求解该更新后解缠的相位图f<sub>u</sub>′(x,y)对应的二值分布图f<sub>b</sub>′(x,y),用该二值分布图f<sub>b</sub>′(x,y)更新原来的二值分布图f<sub>b</sub>(x,y),即:f<sub>b</sub>(x,y)=f<sub>b</sub>′(x,y),具体方法为:S701、在参考点M<sub>q</sub>相邻的未解缠区域内,以M<sub>q</sub>作为相位展开的参考点,把该点的所有相邻的未解缠像素点分别进行相位展开,将相位展开像素点标记为已展开点;同时把已展开点各自相邻的未解缠点按质量值的大小排序存放到一个毗邻队列Q中;S702、取出毗邻队列Q中质量值最小的点,以该点的其中一个相邻的相位展开像素点为参考点进行相位展开,并标记该质量值最小点为已展开点,把该质量值最小点的相邻的未解缠点放入毗邻队列Q中,并按质量值大小对队列Q重新排序;S703、执行S701,直到毗邻队列Q为空;步骤八,对步骤七的二值分布图f<sub>b</sub>(x,y)的像素值进行求和运算,并判断和值是否为0:如果和值不为0,执行步骤四至步骤八;如果和值为0,结束干涉相位解缠过程,执行步骤九;步骤九、输出步骤七的更新后解缠的相位图f<sub>u</sub>′(x,y)。
地址 100081 北京市海淀区中关村南大街5号