主权项 |
一种基于最小二乘法的高光物体表面相位快速恢复方法,其特征在于:采用以下步骤:步骤1:基于投影栅相位法投射N张正弦光栅到被测物体表面,进而采集得到N张光栅图片,采用以下步骤确定光栅图片中要参与相位计算的有效像素点:步骤1.1:对于像素坐标为(x,y)的像素点,依据其在N张光栅图片中的灰度值,统计该像素点处于区间[0,255)内的灰度值对应的光栅图片的张数m,若m满足3≤m≤N,则该像素点为初步有效像素点;步骤1.2:针对初步有效像素点在步骤1.1所述m张光栅图片中的灰度值,若共计m‑1个相邻灰度值的相移量只等于δ或δ‑2π,则该初步有效像素点为有效像素点;其中δ=2π/N;步骤1.3:重复步骤1.1至步骤1.2,对所有像素点进行判断,得到光栅图片中要参与相位计算的有效像素点;步骤2:对于像素坐标为(x,y)的有效像素点,用有效像素点的m个有效灰度值建立求解相位值的线性方程组:将该有效像素点的m个有效灰度值代入以下方程<math><![CDATA[<mrow><msub><mi>a</mi><mn>0</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>a</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mi>c</mi><mi>o</mi><mi>s</mi><mfrac><mrow><mn>2</mn><mi>π</mi><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow><mi>N</mi></mfrac><mo>+</mo><msub><mi>a</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mi>sin</mi><mfrac><mrow><mn>2</mn><mi>π</mi><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow><mi>N</mi></mfrac><mo>-</mo><msub><mi>I</mi><mi>n</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn></mrow>]]></math><img file="FDA0000903777430000011.GIF" wi="1661" he="135" /></maths>得到由m个线性方程组成的求解相位值<img file="FDA0000903777430000012.GIF" wi="168" he="77" />的线性方程组,其中I<sub>n</sub>(x,y)为该有效像素点在第n张光栅图像中灰度值;a<sub>0</sub>(x,y)=a(x,y),<img file="FDA0000903777430000013.GIF" wi="1469" he="71" />a(x,y)为平均灰度,b(x,y)为图像的灰度调制,<img file="FDA0000903777430000014.GIF" wi="174" he="78" />为待求解的相位值,a(x,y)、b(x,y)、<img file="FDA0000903777430000015.GIF" wi="173" he="77" />在线性方程组中为未知量;步骤3:用最小二乘法解步骤2的线性方程组,得到最优解,解的形式如下:<math><![CDATA[<mrow><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>a</mi><mn>0</mn></msub><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mtd></mtr><mtr><mtd><msub><mi>a</mi><mn>1</mn></msub><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mtd></mtr><mtr><mtd><msub><mi>a</mi><mn>2</mn></msub><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mtd></mtr></mtable></mfenced><mo>=</mo><msup><mi>A</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mi>B</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000903777430000016.GIF" wi="550" he="223" /></maths>其中:<math><![CDATA[<mrow><mi>A</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>m</mi></mtd><mtd><mrow><mi>Σ</mi><mi>cos</mi><mfrac><mrow><mn>2</mn><mi>π</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mi>N</mi></mfrac></mrow></mtd><mtd><mrow><mi>Σ</mi><mi>sin</mi><mfrac><mrow><mn>2</mn><mi>π</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mi>N</mi></mfrac></mrow></mtd></mtr><mtr><mtd><mrow><mi>Σ</mi><mi>cos</mi><mfrac><mrow><mn>2</mn><mi>π</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mi>N</mi></mfrac></mrow></mtd><mtd><mrow><msup><mi>Σcos</mi><mn>2</mn></msup><mfrac><mrow><mn>2</mn><mi>π</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mi>N</mi></mfrac></mrow></mtd><mtd><mrow><mi>Σ</mi><mi>cos</mi><mfrac><mrow><mn>2</mn><mi>π</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mi>N</mi></mfrac><mi>sin</mi><mfrac><mrow><mn>2</mn><mi>π</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mi>N</mi></mfrac></mrow></mtd></mtr><mtr><mtd><mrow><mi>Σ</mi><mi>sin</mi><mfrac><mrow><mn>2</mn><mi>π</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mi>N</mi></mfrac></mrow></mtd><mtd><mrow><mi>Σ</mi><mi>cos</mi><mfrac><mrow><mn>2</mn><mi>π</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mi>N</mi></mfrac><mi>sin</mi><mfrac><mrow><mn>2</mn><mi>π</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mi>N</mi></mfrac></mrow></mtd><mtd><mrow><msup><mi>Σsin</mi><mn>2</mn></msup><mfrac><mrow><mn>2</mn><mi>π</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mi>N</mi></mfrac></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000903777430000021.GIF" wi="1973" he="342" /></maths><math><![CDATA[<mrow><mi>B</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><msub><mi>ΣI</mi><mi>n</mi></msub><mrow><mo>(</mo><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>ΣI</mi><mi>n</mi></msub><mrow><mo>(</mo><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mo>)</mo></mrow><mi>cos</mi><mfrac><mrow><mn>2</mn><mi>π</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mi>N</mi></mfrac></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>ΣI</mi><mi>n</mi></msub><mrow><mo>(</mo><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mo>)</mo></mrow><mi>sin</mi><mfrac><mrow><mn>2</mn><mi>π</mi><mrow><mo>(</mo><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow><mi>N</mi></mfrac></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000903777430000022.GIF" wi="819" he="391" /></maths>矩阵A和B(x,y)中的求和运算为有效像素点(x,y)处m个有效灰度值之间的求和运算,其中求和运算的变量n取m个有效灰度值对应的光栅图片在N张光栅图片中的序号;步骤4:将步骤3得到的最优解代入相位值求解公式:<img file="FDA0000903777430000023.GIF" wi="630" he="150" />得到像素坐标为(x,y)的有效像素点的高精度相位值<img file="FDA0000903777430000024.GIF" wi="191" he="78" />步骤5:重复步骤2至步骤4,直至得到所有有效像素点的高精度相位值。 |