一、光斑图像的模拟

首先,仿真得到如下图所示的光斑阵列图像,仿真参数如下:微透镜数目为72×72,每个微透镜所占的像素数为36×36,CCD相机像素数则为2592×2592;

如何计算一张图片的质心 python 图像质心计算_如何计算一张图片的质心 python

图1 仿真得到的光斑图像

二、重心法原理

在子孔径光斑质心计算方面,最为简单直接的方法是重心法,其计算公式如下:

 

如何计算一张图片的质心 python 图像质心计算_斜率_02

 

 


式中[x(i),y(i)]分别表示第i个子孔径在x,y方向上的质心位置, 

如何计算一张图片的质心 python 图像质心计算_技术支持_03

分别表示点(m,n)处的像素坐标, 如何计算一张图片的质心 python 图像质心计算_数据_04表示的是点(m,n)处像素的强度。通过将当前质心位置与标定质心位置进行比较,即可得到待测波前的斜率:

将图1所示的光斑阵列图像代入到上式中,即可求解得到XY方向上的质心数据,

X方向质心数据为72*72大小的矩阵,如下图所示:

如何计算一张图片的质心 python 图像质心计算_如何计算一张图片的质心 python_05

图2 X方向质心数据

Y方向质心数据为72*72大小的矩阵,如下图所示:

如何计算一张图片的质心 python 图像质心计算_斜率_06

图3 X方向质心数据

三、资源获取

上述matab程序可从如下链接处获取:


资源中提供了仿真参考质心光斑图像/偏移质心光斑图像,进而可求解波前斜率,进一步重构出待测波前。最后,提供其他技术支持,包括哈特曼波前传感仿真模拟,以及波前重构等算法。

 

------------恢复内容开始------------

一、光斑图像的模拟

首先,仿真得到如下图所示的光斑阵列图像,仿真参数如下:微透镜数目为72×72,每个微透镜所占的像素数为36×36,CCD相机像素数则为2592×2592;

如何计算一张图片的质心 python 图像质心计算_如何计算一张图片的质心 python

图1 仿真得到的光斑图像

二、重心法原理

在子孔径光斑质心计算方面,最为简单直接的方法是重心法,其计算公式如下:

 

$\left. \begin{matrix}

   x(i)=\frac{\sum\limits_{m=1}^{M}{\sum\limits_{n=1}^{N}{{{x}_{mn}}{{I}_{mn}}}}}{\sum\limits_{m=1}^{M}{\sum\limits_{n=1}^{N}{{{I}_{mn}}}}}  \\

   y(i)=\frac{\sum\limits_{m=1}^{M}{\sum\limits_{n=1}^{N}{{{y}_{mn}}{{I}_{mn}}}}}{\sum\limits_{m=1}^{M}{\sum\limits_{n=1}^{N}{{{I}_{mn}}}}}  \\

 

x
         
         
          (
         
         
          i
         
         
          )
         
         
          =
         
         
          
           
            
             ∑
            
            
             
              m
             
             
              =
             
             
              1
             
            
            
             M
            
           
           
            
             
              ∑
             
             
              
               n
              
              
               =
              
              
               1
              
             
             
              N
             
            
            
             
              
               x
              
              
               
                m
               
               
                n
               
              
             
             
              
               I
              
              
               
                m
               
               
                n
               
              
             
            
           
          
          
           
            
             ∑
            
            
             
              m
             
             
              =
             
             
              1
             
            
            
             M
            
           
           
            
             
              ∑
             
             
              
               n
              
              
               =
              
              
               1
              
             
             
              N
             
            
            
             
              I
             
             
              
               m
              
              
               n
              
             
            
           
          
         
        
       
      
     
     
      
       
        
         
          y
         
         
          (
         
         
          i
         
         
          )
         
         
          =
         
         
          
           
            
             ∑
            
            
             
              m
             
             
              =
             
             
              1
             
            
            
             M
            
           
           
            
             
              ∑
             
             
              
               n
              
              
               =
              
              
               1
              
             
             
              N
             
            
            
             
              
               y
              
              
               
                m
               
               
                n
               
              
             
             
              
               I
              
              
               
                m
               
               
                n
               
              
             
            
           
          
          
           
            
             ∑
            
            
             
              m
             
             
              =
             
             
              1
             
            
            
             M
            
           
           
            
             
              ∑
             
             
              
               n
              
              
               =
              
              
               1
              
             
             
              N
             
            
            
             
              I
             
             
              
               m
              
              
               n
              
             
            
           
          
         
        
       
      
     
    
    
     }
    
   
   
    \left. \begin{matrix} x(i)=\frac{\sum\limits_{m=1}^{M}{\sum\limits_{n=1}^{N}{<!-- -->{<!-- -->{x}_{mn}}{<!-- -->{I}_{mn}}}}}{\sum\limits_{m=1}^{M}{\sum\limits_{n=1}^{N}{<!-- -->{<!-- -->{I}_{mn}}}}} \\ y(i)=\frac{\sum\limits_{m=1}^{M}{\sum\limits_{n=1}^{N}{<!-- -->{<!-- -->{y}_{mn}}{<!-- -->{I}_{mn}}}}}{\sum\limits_{m=1}^{M}{\sum\limits_{n=1}^{N}{<!-- -->{<!-- -->{I}_{mn}}}}} \\ \end{matrix} \right\}
   
  
 </span><span ><span ><span class="minner"><span ><span class="mtable"><span class="col-align-c"><span ><span ><span  style="height: 4.01058em;"><span style="top: -6.01058em;"><span ><span >x</span><span class="mopen">(</span><span >i</span><span class="mclose">)</span><span class="mrel">=</span><span ><span class="mfrac"><span ><span ><span  style="height: 2.13029em;"><span style="top: -2.19em;"><span ><span ><span class="mop op-limits mtight"><span ><span ><span  style="height: 1.5811em;"><span style="top: -1.87368em; margin-left: 0em;"><span class="sizing reset-size3 size1 mtight"><span ><span >m</span><span class="mrel mtight">=</span><span >1</span></span></span></span><span style="top: -2.75001em;"><span><span class="mop op-symbol small-op mtight">∑</span></span></span><span style="top: -3.7em; margin-left: 0em;"><span class="sizing reset-size3 size1 mtight"><span ><span  style="margin-right: 0.10903em;">M</span></span></span></span></span><span ></span></span></span></span><span ><span class="mop op-limits mtight"><span ><span ><span  style="height: 1.5811em;"><span style="top: -1.87368em; margin-left: 0em;"><span class="sizing reset-size3 size1 mtight"><span ><span >n</span><span class="mrel mtight">=</span><span >1</span></span></span></span><span style="top: -2.75001em;"><span><span class="mop op-symbol small-op mtight">∑</span></span></span><span style="top: -3.7em; margin-left: 0em;"><span class="sizing reset-size3 size1 mtight"><span ><span  style="margin-right: 0.10903em;">N</span></span></span></span></span><span ></span></span></span></span><span ><span ><span ><span ><span  style="margin-right: 0.07847em;">I</span></span><span ><span ><span ><span  style="height: 0.164543em;"><span style="top: -2.357em; margin-right: 0.0714286em;"><span class="sizing reset-size3 size1 mtight"><span ><span >m</span><span >n</span></span></span></span></span><span ></span></span></span></span></span></span></span></span></span></span></span><span style="top: -4.13029em;"><span ><span ><span class="mop op-limits mtight"><span ><span ><span  style="height: 1.5811em;"><span style="top: -1.87368em; margin-left: 0em;"><span class="sizing reset-size3 size1 mtight"><span ><span >m</span><span class="mrel mtight">=</span><span >1</span></span></span></span><span style="top: -2.75001em;"><span><span class="mop op-symbol small-op mtight">∑</span></span></span><span style="top: -3.7em; margin-left: 0em;"><span class="sizing reset-size3 size1 mtight"><span ><span  style="margin-right: 0.10903em;">M</span></span></span></span></span><span ></span></span></span></span><span ><span class="mop op-limits mtight"><span ><span ><span  style="height: 1.5811em;"><span style="top: -1.87368em; margin-left: 0em;"><span class="sizing reset-size3 size1 mtight"><span ><span >n</span><span class="mrel mtight">=</span><span >1</span></span></span></span><span style="top: -2.75001em;"><span><span class="mop op-symbol small-op mtight">∑</span></span></span><span style="top: -3.7em; margin-left: 0em;"><span class="sizing reset-size3 size1 mtight"><span ><span  style="margin-right: 0.10903em;">N</span></span></span></span></span><span ></span></span></span></span><span ><span ><span ><span ><span >x</span></span><span ><span ><span ><span  style="height: 0.164543em;"><span style="top: -2.357em; margin-right: 0.0714286em;"><span class="sizing reset-size3 size1 mtight"><span ><span >m</span><span >n</span></span></span></span></span><span ></span></span></span></span></span></span><span ><span ><span ><span  style="margin-right: 0.07847em;">I</span></span><span ><span ><span ><span  style="height: 0.164543em;"><span style="top: -2.357em; margin-right: 0.0714286em;"><span class="sizing reset-size3 size1 mtight"><span ><span >m</span><span >n</span></span></span></span></span><span ></span></span></span></span></span></span></span></span></span></span></span></span><span ></span></span></span></span></span></span></span><span style="top: -2.25em;"><span ><span  style="margin-right: 0.03588em;">y</span><span class="mopen">(</span><span >i</span><span class="mclose">)</span><span class="mrel">=</span><span ><span class="mfrac"><span ><span ><span  style="height: 2.13029em;"><span style="top: -2.19em;"><span ><span ><span class="mop op-limits mtight"><span ><span ><span  style="height: 1.5811em;"><span style="top: -1.87368em; margin-left: 0em;"><span class="sizing reset-size3 size1 mtight"><span ><span >m</span><span class="mrel mtight">=</span><span >1</span></span></span></span><span style="top: -2.75001em;"><span><span class="mop op-symbol small-op mtight">∑</span></span></span><span style="top: -3.7em; margin-left: 0em;"><span class="sizing reset-size3 size1 mtight"><span ><span  style="margin-right: 0.10903em;">M</span></span></span></span></span><span ></span></span></span></span><span ><span class="mop op-limits mtight"><span ><span ><span  style="height: 1.5811em;"><span style="top: -1.87368em; margin-left: 0em;"><span class="sizing reset-size3 size1 mtight"><span ><span >n</span><span class="mrel mtight">=</span><span >1</span></span></span></span><span style="top: -2.75001em;"><span><span class="mop op-symbol small-op mtight">∑</span></span></span><span style="top: -3.7em; margin-left: 0em;"><span class="sizing reset-size3 size1 mtight"><span ><span  style="margin-right: 0.10903em;">N</span></span></span></span></span><span ></span></span></span></span><span ><span ><span ><span ><span  style="margin-right: 0.07847em;">I</span></span><span ><span ><span ><span  style="height: 0.164543em;"><span style="top: -2.357em; margin-right: 0.0714286em;"><span class="sizing reset-size3 size1 mtight"><span ><span >m</span><span >n</span></span></span></span></span><span ></span></span></span></span></span></span></span></span></span></span></span><span style="top: -4.13029em;"><span ><span ><span class="mop op-limits mtight"><span ><span ><span  style="height: 1.5811em;"><span style="top: -1.87368em; margin-left: 0em;"><span class="sizing reset-size3 size1 mtight"><span ><span >m</span><span class="mrel mtight">=</span><span >1</span></span></span></span><span style="top: -2.75001em;"><span><span class="mop op-symbol small-op mtight">∑</span></span></span><span style="top: -3.7em; margin-left: 0em;"><span class="sizing reset-size3 size1 mtight"><span ><span  style="margin-right: 0.10903em;">M</span></span></span></span></span><span ></span></span></span></span><span ><span class="mop op-limits mtight"><span ><span ><span  style="height: 1.5811em;"><span style="top: -1.87368em; margin-left: 0em;"><span class="sizing reset-size3 size1 mtight"><span ><span >n</span><span class="mrel mtight">=</span><span >1</span></span></span></span><span style="top: -2.75001em;"><span><span class="mop op-symbol small-op mtight">∑</span></span></span><span style="top: -3.7em; margin-left: 0em;"><span class="sizing reset-size3 size1 mtight"><span ><span  style="margin-right: 0.10903em;">N</span></span></span></span></span><span ></span></span></span></span><span ><span ><span ><span ><span  style="margin-right: 0.03588em;">y</span></span><span ><span ><span ><span  style="height: 0.164543em;"><span style="top: -2.357em; margin-right: 0.0714286em;"><span class="sizing reset-size3 size1 mtight"><span ><span >m</span><span >n</span></span></span></span></span><span ></span></span></span></span></span></span><span ><span ><span ><span  style="margin-right: 0.07847em;">I</span></span><span ><span ><span ><span  style="height: 0.164543em;"><span style="top: -2.357em; margin-right: 0.0714286em;"><span class="sizing reset-size3 size1 mtight"><span ><span >m</span><span >n</span></span></span></span></span><span ></span></span></span></span></span></span></span></span></span></span></span></span><span ></span></span></span></span></span></span></span></span><span ></span></span></span></span></span></span><span class="mclose"><span class="delimsizing mult"><span ><span ><span  style="height: 3.85002em;"><span style="top: -0.69999em;"><span class="delimsizinginner delim-size4"><span>⎭</span></span></span><span style="top: -0.69999em;"><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top: -0.99999em;"><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top: -1.29999em;"><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top: -1.59999em;"><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top: -1.89999em;"><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top: -2.19999em;"><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top: -3.15001em;"><span class="delimsizinginner delim-size4"><span>⎬</span></span></span><span style="top: -4.30001em;"><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top: -4.60001em;"><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top: -4.90001em;"><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top: -5.20001em;"><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top: -5.50001em;"><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top: -5.80001em;"><span class="delimsizinginner delim-size4"><span>⎪</span></span></span><span style="top: -6.10002em;"><span class="delimsizinginner delim-size4"><span>⎫</span></span></span></span><span ></span></span></span></span></span></span></span></span></span></span></span></p>

式中[x(i),y(i)]分别表示第i个子孔径在x,y方向上的质心位置,

x
    
    
     
      m
     
     
      n
     
    
   
  
  
   {<!-- -->{x}_{mn}}
  
 
</span><span ><span ><span ><span ><span ><span >x</span></span><span ><span ><span ><span  style="height: 0.151392em;"><span style="top: -2.55em; margin-right: 0.05em;"><span ><span ><span >m</span><span >n</span></span></span></span></span><span ></span></span></span></span></span></span></span></span></span></span>、<span ><span class="katex"><span class="katex-mathml">

 
  
   
    
     y
    
    
     
      m
     
     
      n
     
    
   
  
  
   {<!-- -->{y}_{mn}}
  
 
</span><span ><span ><span ><span ><span ><span  style="margin-right: 0.03588em;">y</span></span><span ><span ><span ><span  style="height: 0.151392em;"><span style="top: -2.55em; margin-right: 0.05em;"><span ><span ><span >m</span><span >n</span></span></span></span></span><span ></span></span></span></span></span></span></span></span></span></span> 分别表示点(m,n)处的像素坐标, <span ><span class="katex"><span class="katex-mathml">

 
  
   
    
     I
    
    
     
      m
     
     
      n
     
    
   
  
  
   {<!-- -->{I}_{mn}}
  
 
</span><span ><span ><span ><span ><span ><span  style="margin-right: 0.07847em;">I</span></span><span ><span ><span ><span  style="height: 0.151392em;"><span style="top: -2.55em; margin-right: 0.05em;"><span ><span ><span >m</span><span >n</span></span></span></span></span><span ></span></span></span></span></span></span></span></span></span></span>表示的是点(m,n)处像素的强度。通过将当前质心位置与标定质心位置进行比较,即可得到待测波前的斜率:</p>

将图1所示的光斑阵列图像代入到上式中,即可求解得到XY方向上的质心数据,

X方向质心数据为72*72大小的矩阵,如下图所示:

如何计算一张图片的质心 python 图像质心计算_如何计算一张图片的质心 python_05

图2 X方向质心数据

Y方向质心数据为72*72大小的矩阵,如下图所示:

如何计算一张图片的质心 python 图像质心计算_斜率_06

图3 X方向质心数据