Abstract:
A centroiding method is provided for an optical tracking system including a laser used for countermeasuring purposes in which a pencil thin laser beam is accurately positioned onto a target through the use of centroiding techniques for ascertaining the position not only of the target but also the laser beam, with the centroiding techniques resulting in a sub-pixel level resolution. The sub-pixel resolution permits utilization of smaller cost-effective focal plane arrays by giving the small focal plane array a resolution associated with much larger focal plane arrays.

Description:
RELATED APPLICATIONS 
       [0001]    This application is a divisional of Ser. No. 12/228,511 filed Aug. 11, 2008 which claims rights under 35 USC §119(e) from U.S. Provisional Application Ser. No. 61/010,495 filed Jan. 7, 2008, the contents of which are incorporated herein by reference. 
     
    
     STATEMENT OF GOVERNMENT INTEREST 
       [0002]    This invention was made with United States Government support under Contract No. HSSCHQ-04-C-00342 awarded by the Department of Homeland Security. The United States Government has certain rights in this invention. 
     
    
     FIELD OF THE INVENTION 
       [0003]    This invention relates to providing countermeasure energy in a very tight pencil beam onto an incoming missile target, and more particularly to a method for precisely pointing the very tight pencil beam onto the target. 
       BACKGROUND 
       [0004]    COUNTERMANPAD Applications abound in which countermeasures are used to deflect or defeat an incoming shoulder-fired missile. In order to divert or defeat the incoming missile, infrared laser radiation is projected towards the target with a so-called jam code which confuses the seeker in the missile and causes the missile to be diverted away from its intended target. 
         [0005]    Countermeasuring incoming missiles can be accomplished utilizing flares, and if the incoming missile is a heat-seeking missile, then the heat-seeking missile will follow all the flares as opposed to the original target. 
         [0006]    However, if the target is large, meaning it has large bright engines which produce a significant IR signature, then the incoming missile will home in on the rather large thermal signature from the aircraft, such as a 747. If an IR countermeasure laser is used to countermeasure the missile and if its beam is too wide, there will not be enough energy on the missile&#39;s seeker and the missile will still home in on the bright engine. Thus, there is a requirement for a pencil thin laser beam to concentrate sufficiently high energy onto the missile&#39;s seeker. 
         [0007]    If one had an infinitely high-power laser, one could tolerate a wide beam. However, this is not practical and in order to minimize laser power as well as size, it is more appropriate to generate a pencil-thin laser beam which concentrates its energy in a very small but intense spot. The intensity of this laser beam is such that it completely drowns out the thermal signature of a large target. 
         [0008]    However, when generating a pencil-thin laser beam, pointing accuracy is of utmost importance. For instance, for such a pencil-thin laser beam there is a requirement that the pointing accuracy be less than a detector&#39;s Instantaneous-Field-of-View (IFOV), which at 8 miles is of less than 4 feet. 
         [0009]    Ascertaining where the target is to this pointing accuracy is extremely difficult because the IR image of the target is blurred out on the focal plane array normally used and overlaps numbers of pixels. Normally, the resolution is limited to the IFOV of a pixel. For a Focal Plane Array (FPA), the angular error is associated with the size of a pixel, whereas the requirement is on the order of ¼ of a pixel&#39;s IFOV. 
         [0010]    While auto boresighting techniques are utilized to establish the exact position of the laser beam in space, the center of energy of the blur is difficult to ascertain, especially when utilizing a focal point of array having a resolution limited by the pixel IFOV. 
         [0011]    It is therefore important to be able to ascertain laser pointing direction and the IR image center to an accuracy better than that associated with the IFOV of a pixel. 
         [0012]    As will be appreciated with a very tight pencil-thin laser beam used for concentrating energy in a very small cross-section, it is exceedingly important to be able to take the blurred out IR missile plume image which can overlap a number of pixels on the focal plane array and determine the exact point at which the laser beam is to be aimed to accuracies greater than the pixel level resolution of the array. 
         [0013]    More particularly, detector arrays used in countermeasure systems employ a focal plane array onto which energy is imaged. The resolution of the focal plane array is determined by the size of the array and the pixel size. For very large arrays, such as 1028×1028 arrays, pixel size is very small and resolution is only limited by this small pixel size. In some cases pixel size can be under 10 microns and with improved optics the images can be focused down to such a small spot. 
         [0014]    However, these large arrays are costly and exceed weight constraints. More importantly, the read out of so many pixels simultaneously or in rapid succession is difficult and requires a considerable amount of processing. There is therefore a need to provide the same resolution as a large array in a small affordable 128×128 array. To do this one needs sub-pixel resolution. 
         [0015]    All things being equal, the size of the pixels determine the effective pixel IFOV and up until the present time, the resolution that determines the location of the target has been limited by the inability of small arrays to resolve focal plane array images below pixel level. 
         [0016]    To put it another way, depending on how much jam energy one wants to put on the target, the efficiency of the jamming is related to how large the aircraft is, because the larger the aircraft, the brighter the engine. The brighter the engine, the more energy that must be focused onto the target to sufficiently increase the jam-to-signal ratio or J to S. Depending on the platform one uses, one has to generate a considerable J to S for bright engines. 
         [0017]    One can either spread energy out into the environment like a big flashlight beam, but it is very weak compared to the bright engine. Thus, in order to project sufficient energy onto the target, one has to shrink the beam to pencil thinness, thus to concentrate the energy into a small spot. This means that track accuracy is very tight or the spot will miss the target. 
       SUMMARY OF INVENTION 
       [0018]    In order to reduce the tracking error and to overcome the resolution associated with a small focal plane array, the subject invention calculates the center of energy or centroid of the IR image, namely the rocket plume, and utilizes this center-of-energy point as the aiming point for the system. 
         [0019]    It has been found with the subject algorithm, that one can locate the center of energy of the target image by interpolation to an accuracy better than 0.25 of a pixel. This means that one can narrow the effective IFOV of a pixel and thus determine target position more accurately; and in fact accurately enough to put the pencil thin laser beam directly on the missile seeker head. 
         [0020]    The ability to interpolate to better than a pixel level is dependent upon the signal-to-noise ratio of the system, with the larger the signal-to-noise ratio the better the subject interpolation algorithm works. 
         [0021]    In one embodiment, the subject interpolation algorithm is utilized both to ascertain the centroid of the laser beam, which is quite narrow to begin with, and then applies the same algorithm to detect the centroid of the infrared target image. 
         [0022]    Using the subject technique, the point at which the laser is aimed in space can be ascertained to accuracies in excess of pixel level accuracy, as can be the center of energy of the infrared target image. 
         [0023]    Having successfully ascertained the laser pointing direction utilizing the subject technique, and having then used the subject algorithm to ascertain the center of energy of the infrared target image, one can drive the center of energy of the target image to coincide with the pointing direction of the laser. At this point, the laser beam will be projected onto the target with an error corresponding to a 0.25 pixel effective IFOV. 
         [0024]    The algorithm describing the detection of the centroid of the laser beam or IR target image will be described hereinafter. 
         [0025]    Essential for the subject algorithm is the overlapping of the image with a number of pixels, and this is normally the case. If the image is too tightly focused it will not overlap adjoining pixels. If such is the case, the system is set up with the focal plane array slightly offset from the focal plane to provide the necessary defocus. 
         [0026]    To provide sub-pixel level resolution in a small array, in essence, the subject algorithm considers only a portion of the focal point array, for instance a 3×3 array. The algorithm then obtains the values of the overlapping image along three vertical lines corresponding in position to the center of the respective pixels. Those values are summed and divided by the sum of the values to provide an average value in the X direction. Likewise, in the Y direction, for horizontal rows running through the centers of the three pixels, one can determine by the subject averaging technique, the average position of the image in the Y direction. 
         [0027]    This being the case, it is possible to obtain the position of the centroid of the image to an accuracy less than a 0.25 pixel width, thus to give a laser pointing error of less than 0.25 pixel effective IFOV. This permits accurate determination of both the position of the laser beam and the position of the target to such accuracy that a thin laser beam can be projected directly onto the target. 
         [0028]    More particularly, the subject algorithm includes the following steps.
       1. Seed the algorithm with the brightest pixel in the image;   2. Make sure that the brightest pixel is far away from the edge to perform the centroiding process;   3. Determine the average background around the brightest pixel to be centroided;   4. Limit the area to be centroided;   5. Calculate the target intensity by summing intensities on the centroided area;   6. Remove the background from the target intensity;   7. Calculate the offset for the centroid in the X direction, which is each row&#39;s intensities in the centroid is multiplied by a multiplier;   8. Calculate the row coordinate for the centroid by adding the weighted sum to the current row and dividing by the total target intensity;   9. Calculate the offset for the centroid in the Y direction in which each column&#39;s intensities in the centroided area is multiplied by a multiplier; and   10. Calculate the column coordinate for the centroid by adding the weighted sum and dividing by the total target intensity.       
 
         [0039]    What is now presented is the centroid equation set that implements the above algorithm: 
         [0000]    
       
         
               
             
           
               
                   
               
             
             
               
                 Centroid Equation Set 
               
               
                   
               
               
                 Output Equations are 
               
               
                   
               
               
                 
                   
                     
                       
                           
                         
                           
                             
                               
                                 row_centroid 
                                 = 
                                 
                                   row_seed 
                                   + 
                                   
                                     ( 
                                     
                                       
                                         weighted_sum 
                                          
                                         
                                           “ 
                                           row 
                                           ” 
                                         
                                       
                                       total_intensity 
                                     
                                     ) 
                                   
                                 
                               
                             
                           
                           
                             
                               
                                 col_centroid 
                                 = 
                                 
                                   col_seed 
                                   + 
                                   
                                     ( 
                                     
                                       
                                         weighted_sum 
                                          
                                         
                                           “ 
                                           col 
                                           ” 
                                         
                                       
                                       total_intensity 
                                     
                                     ) 
                                   
                                 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                   
               
               
                 The seed is the pixel having the highest energy. The “weighted sum”  
               
               
                 terms are generated by the following summations: 
               
               
                   
               
               
                 
                   
                     
                       
                         weighted_sum 
                         = 
                         
                           
                             
                               ∑ 
                               
                                 I 
                                 CSR 
                               
                               
                                 I 
                                 CER 
                               
                             
                              
                             
                               ( 
                               
                                 
                                   ∑ 
                                   
                                     I 
                                     CSC 
                                   
                                   
                                     I 
                                     CEC 
                                   
                                 
                                  
                                 
                                   
                                     P 
                                      
                                     
                                       ( 
                                       
                                         row 
                                         , 
                                         col 
                                       
                                       ) 
                                     
                                   
                                    
                                   
                                       
                                   
                                    
                                   total_background 
                                 
                               
                               ) 
                             
                           
                           - 
                           multiplier 
                         
                       
                     
                   
                 
               
               
                   
               
               
                 Reversing the row and columns summations changes the weighted  
               
               
                 sum to apply to either row or column. 
               
               
                 The multiplier term is computed by an offset against an arbitrary  
               
               
                 value called “half centroid size” 
               
               
                   
               
               
                 Given I CER  ≡ “Centroid End Row”  
               
               
                 Given I CSR  ≡ “Centroid Start Row”  
               
               
                 Given I CEC  ≡ “Centroid End Column”  
               
               
                 Given I CSC  ≡ “Centroid Start Column”  
               
               
                 Given P ≡ Pixel Intensity as function row and column 
               
               
                 Then 
               
               
                         Total_Intensity   =       ∑     I   CSR       I   CER              ∑     I   CSC       I   CEC            P        (     row   ,   column     )               
Lastly the “total_Intensity” is itself just a summation about the seed pixel 
               
             
          
         
       
     
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0040]    These and other features of the subject invention will be better understood in connection with the Detailed Description in conjunction with the Drawings, of which: 
           [0041]      FIG. 1  is a diagrammatic illustration of the use of a pencil thin jamming beam against an incoming threat, indicating that the required aiming accuracy can be achieved by applying the subject technique to bring down the effective instantaneous field of view of a pixel to 0.25 IFOV; 
           [0042]      FIG. 2  is a block diagram illustrating the subject countermeasuring system, including a modulated laser, a focal plane array, and an IR target image, along with the utilization of a laser beam combiner; 
           [0043]      FIG. 3  is a diagrammatic illustration of an auto boresighted laser beam position on a 3×3 focal plane array, also illustrating the detected center of energy of an image blur overlapping multiple pixels, with the center of energy of the blur being moved to correspond to the laser boresight direction, also illustrating the resolution of the focal plane array to be that associated with one pixel; 
           [0044]      FIG. 4  is a diagrammatic illustration of the subject interpolation algorithm for determining the center of the image blur, indicating summing of energy along vertical columns and horizontal rows which pass through the centers of associated pixels; 
           [0045]      FIG. 5  is a diagrammatic illustration of the determination of the laser beam direction utilizing the subject interpolation algorithm to find the center of energy of a blurred target image; 
           [0046]      FIG. 6  is a diagrammatic illustration of one embodiment of the subject invention, including a focal plane array, a laser and an optical parametric oscillator in which the output of the optical parametric oscillator is directed to a laser beam combiner both for projection out into the environment of the laser beam and for laser boresighting purposes; and, 
           [0047]      FIGS. 7A  and B are graphs of tracker centroid errors versus signal-to-noise ratio for a blurred IR image and the image of the laser of  FIG. 6 , also showing three-dimensional image intensity graphs corresponding, respectively, to the blurred infrared image and the laser image on the focal plane array. 
       
    
    
     DETAILED DESCRIPTION 
       [0048]    Referring now to  FIG. 1 , an incoming missile  10  having a seeker head  12  is shown traveling towards its intended target. In order to countermeasure the missile, a pencil thin laser beam  14  is directed towards the missile head. This beam carries a jam code that includes a jamming sequence. The position in space of the pencil thin beam needs to be directly on seeker head  12  to an accuracy of less than a pixel IFOV. Should the angular error exceed more than a pixel IFOV, it is possible that the pencil thin beam may miss its target completely. 
         [0049]    More particularly, the effective instantaneous field of view (IFOV) of a singe pixel  16  is shown at  17  and subtends an angle greater than one which would intercept the missile. However, by techniques described herein, despite pixel overlap of the IR target image, the effective resolution of a single pixel can be increased fourfold. This means that the effective IFOV  17  can be cut by ¼ to subtend a 0.25 effective IFOV angle as shown at  18 . The result with this accuracy is that a pencil thin laser beam spot will hit jam head  12 . 
         [0050]    Referring now to  FIG. 2 , a typical countermeasure system includes a laser  20  modulated with a jam code  22 , projected towards a laser beam combiner  24 , which redirects the beam from laser  20  to out along axis  26  towards an incoming missile  28 . 
         [0051]    The position of optical axis  26 , and therefore the direction of the outgoing beam, is determined by directing a portion of the laser output towards a focal plane array  30 , from which the position in space of the outgoing beam is ascertained using auto boresighting techniques. 
         [0052]    Thereafter, an IR image  32  of the hot rocket exhaust of missile  28  is imaged onto the focal plane array so that the position of the incoming missile may be ascertained. 
         [0053]    The laser pointing head is gimballed such that the laser beam from laser  20  is centered on the infrared target image. This is accomplished by imaging the laser beam on the focal plane array and moving the infrared target image detected by the focal plane array to the sensed position of the laser beam. 
         [0054]    However, as mentioned above, for small arrays the infrared image of the plume from the target extends over multiple pixels on the focal plane array. Its center of energy, which determines the point in space where the missile is located must be ascertained, typically to a resolution better than the single pixel resolution of the array. In one embodiment, the subject system improves this single pixel resolution fourfold. 
         [0055]    Referring to  FIG. 3 , a portion of the focal plane array, here a 3×3 portion, is indicated at  40 . Auto boresighting techniques and corrections to be discussed herein provide the precise and corrected position  42  of the laser beam. Also indicated is the detected IR image  44 , which as can be seen straddles four pixels, namely pixels  46 ,  48 ,  50  and  52  of array  40 . 
         [0056]    It is the purpose of the interpolation algorithm to find the center of energy of blur  44 , here illustrated at  54 . As illustrated by arrow  56 , this permits moving the detected center of energy to coincide with the auto boresight position. This is done by gimbaling the laser to move the direction of the projected laser beam to end up on the target whose position is ascertained by the detected center of energy of the blur. Put another way, the detected center of energy of the blur is moved to be coincident with the auto boresight corrected position  42 . 
         [0057]    As can be seen at  58 , in one embodiment the target blur is smeared out in a Gaussean fashion, such that it overlaps more than one pixel. The resolution of the array is determined by the pixel size of pixel  60 , in one embodiment 30 microns on a side. 
         [0058]    It is the purpose of the subject invention to provide aiming accuracy better than a single pixel IFOV, at least for a 128×128 array having 30 micron pixels. 
         [0059]    Referring now to  FIG. 4 , how the center of energy of the blur for the target is ascertained as follows: 
         [0060]    For the X direction, one measures detected radiation along three columns, x 1 , x 2  x 3 , which are centered on the respective pixels through which the columns pass. 
         [0061]    Likewise, in the Y direction, rows y 1 , y 2 , and y 3  pass through the centers of the corresponding pixels. 
         [0062]    The radiation incident on vertically-spaced pixels along columns x 1 , x 2 , and x 3  is summed, with the sum of the sums being divided by the sum of all of the detected radiation on the pixels of the array. The same is true for the Y direction. 
         [0063]    This scenario has been described by the aforementioned centroiding equations. These equations locate the center of energy of the detected blurred image so that even though the blur overlaps numbers of pixels, its center can be ascertained to less than a pixel width in accuracy. 
         [0064]    Referring to  FIG. 5 , the same technique is utilized to determine the center of energy of the outgoing laser beam, which is shown at  66  to overlap at least three pixels. 
         [0065]    While the image of the laser beam on the focal plane array is quite a bit smaller than the blurred image of the target, it is important in the subject invention to be able to ascertain with sub-pixel level accuracy its position. 
         [0066]    Thus, when the detected center of energy of the target blur is made coincident with the center of energy of the target laser beam, less than pixel level accuracy is achieved. 
         [0067]    Referring now to  FIG. 6  in one operative embodiment, a focal plane array  70  with a 1×1 detection kernel with guardband is positioned behind optical assembly  72  which focuses infrared radiation  74  from a missile  76  onto the focal plane array. Here, sensor processor assembly  78  processes the output of the focal plane array. 
         [0068]    Laser  80  is coupled to an optical parametric oscillator (OPO)  82  via a fiber optic interface  84 , with the output of the OPO being re-directed by a prism  86  in a module  88  through a laser beam combiner  90  and onto a re-directing prism  92 , which re-directs the laser beam back to the laser beam combiner and then to the focal plane array. The position of the laser beam image on the focal plane array specifies the aiming direction of the laser, and this position is refined by the subject interpolation algorithm. 
         [0069]    The position of laser beam  94  in space is thus first determined by picking off a portion of the laser beam from the optical parametric oscillator and determining its position, again through the utilization of the subject interpolation algorithm. 
         [0070]    Likewise, the infrared return from missile  76  passes through the laser beam combiner  90  and onto the focal plane array as the aforementioned blur. 
         [0071]    As will be discussed hereinafter, the utilization of the laser beam combiner degrades the signal-to-noise ratio of the system due to aperture blockage. To the extent that this blockage is minimized the signal-to-noise ratio is increased. The above reduction of the effective single pixel IFOV in one embodiment requires a signal-to-noise ratio greater than 20. 
         [0072]    Referring now to  FIGS. 7A and 7B , what is seen are graphs of the IR tracking error and laser boresight error graphed against signal-to-noise ratio. 
         [0073]    To the right of  FIG. 7A  is a three-dimensional representation of the target blur intensity indicating a fairly pronounced center region and side lobes. 
         [0074]    It can be seen from the graph of  FIG. 7A  that a signal-to-noise ratio of 20 provides a tracker error of less than one pixel width, and in this case 0.25 of the pixel, leading to an effective 0.25 IFOV for the pixel. 
         [0075]    Note that if the signal-to-noise ratio less than about 8, there is no advantage with the subject interpolating algorithm. 
         [0076]    Likewise, referring to  FIG. 7B , although the laser beam has a considerably better defined cross-section and shape, with a signal-to-noise ratio of about 100, the tracker/laser boresight error is again less than one pixel width, and in this case is also 0.25 of the pixel. 
         [0077]    The algorithm for interpolation is provided below. 
         [0000]    
       
         
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 function [row_centroid,col_centroid] = 
               
               
                   
                 determine_target_centroid(data,row_seed,col_seed) 
               
               
                   
                 % Target Centroid calculation; 
               
               
                   
                 % initial values for track error 
               
               
                   
                 %  background_width = 7; 
               
               
                   
                 %  half_centroid_size = 2; 
               
               
                   
                 %  centroid_width =3; 
               
               
                   
                 % initial values for laser (boresight error) 
               
               
                   
                 background_width = 29; 
               
               
                   
                 half_centroid_size = 2; 
               
               
                   
                 centroid_width =25; 
               
               
                   
                 % maxval = max(max(data)); 
               
               
                   
                 % maxval = max(max(data(29:35,29:35))); 
               
               
                   
                 % given the seed which is the brightest pixel in the 
               
               
                   
                 image.We will use that one for the 
               
               
                   
                 % centroid 
               
               
                   
                 brightest_pixel_row = round(row_seed); 
               
               
                   
                 brightest_pixel_col = round(col_seed); 
               
               
                   
                 brightest_pixel_intensity = 
               
               
                   
                 data(brightest_pixel_row,brightest_pixel_col); 
               
               
                   
                 % Make sure the brightest pixel is far away from the edge 
               
               
                   
                 to perform the 
               
               
                   
                 % centroid. This is the function of the size of the 
               
               
                   
                 centroid 
               
               
                   
                 [obstructed_edge,row,col] = 
               
               
                   
                 Check_detection_edges(brightest_pixel_row,... 
               
               
                   
                 brightest_pixel_col,background_width,half_centroid_size,data); 
               
               
                   
                 % Now determine the average background around the hit to be 
               
               
                   
                 centroided 
               
               
                   
                 [average_background] = 
               
               
                   
                 determine_target_background(brightest_pixel_row,... 
               
               
                   
                 brightest_pixel_col,obstructed_edge,half_centroid_size,data, 
               
               
                   
                 centroid_width); 
               
               
                   
                 total_background = average_background * centroid_width; 
               
               
                   
                 % limits of the area to centroid 
               
               
                   
                 centroid_start_row = brightest_pixel_row − 
               
               
                   
                 half_centroid_size; 
               
               
                   
                 centroid_end_row = brightest_pixel_row + 
               
               
                   
                 half_centroid_size; 
               
               
                   
                 centroid_start_col = brightest_pixel_col − 
               
               
                   
                 half_centroid_size; 
               
               
                   
                 centroid_end_col = brightest_pixel_col + 
               
               
                   
                 half_centroid_size; 
               
               
                   
                 % Total target intensity is calculated by summimg the 
               
               
                   
                 intensities on the 
               
               
                   
                 % centroid area 
               
               
                   
                 total_intensity =0; 
               
               
                   
                 for i = centroid_start_row : centroid_end_row 
               
               
                   
                   for j = centroid_start_col : centroid_end_col 
               
               
                   
                     pixel_intensity = data(i,j); 
               
               
                   
                     total_intensity = total_intensity + 
               
               
                   
                 pixel_intensity; 
               
               
                   
                     pixel_array(i,j) = pixel_intensity; 
               
               
                   
                   end 
               
               
                   
                 end 
               
               
                   
                 % Removing the background from the target intensity 
               
               
                   
                 total_intensity = total_intensity − average_background; 
               
               
                   
                 if total_intensity &gt; 0 
               
               
                   
                   weighted_sum = 0; 
               
               
                   
                   multiplier = − half_centroid_size; 
               
               
                   
                   % calculation of the offset for the centroid 
               
               
                   
                   % each rows intensities in centroid area are multiplied 
               
               
                   
                 by a multiplier 
               
               
                   
                   for i = centroid_start_row : centroid_end_row 
               
               
                   
                     weighted_row =0; 
               
               
                   
                     for j=centroid_start_col : centroid_end_col 
               
               
                   
                       weighted_row = weighted_row + pixel_array(i,j); 
               
               
                   
                     end 
               
               
                   
                     weighted_sum = weighted_sum + (weighted_row− 
               
               
                   
                 total_background)*multiplier; 
               
               
                   
                     multiplier = multiplier +1; 
               
               
                   
                   end 
               
               
                   
                   % the row coordinate for centroid is calculated by 
               
               
                   
                 adding weighted sum 
               
               
                   
                   % to current row and dividing up by the total target 
               
               
                   
                 intensity 
               
               
                   
                   row_centroid = row_seed + 
               
               
                   
                 (weighted_sum/total_intensity); 
               
               
                   
                   weighted_sum = 0; 
               
               
                   
                   multiplier = − half_centroid_size; 
               
               
                   
                   % each columns intensities in centroid area are 
               
               
                   
                 multiplied by a multiplier 
               
               
                   
                   for i = centroid_start_col : centroid_end_col 
               
               
                   
                     weighted_col =0; 
               
               
                   
                     for j=centroid_start_row : centroid_end_row 
               
               
                   
                       weighted_col = weighted_col + pixel_array(j,i); 
               
               
                   
                     end 
               
               
                   
                     weighted_sum = weighted_sum + (weighted_col− 
               
               
                   
                 total_background)*multiplier; 
               
               
                   
                     multiplier = multiplier +1; 
               
               
                   
                   end 
               
               
                   
                   % the column coordinate for centroid is calculated by 
               
               
                   
                 adding weighted sum 
               
               
                   
                   % to current column and dividing up by the total target 
               
               
                   
                 intensity 
               
               
                   
                   col_centroid = col_seed + 
               
               
                   
                  (weighted_sum/total_intensity); 
               
               
                   
                 else 
               
               
                   
                   row_centroid = brightest_pixel_row; 
               
               
                   
                   col_centroid = brightest_pixel_col; 
               
               
                   
                 end 
               
               
                   
                   
               
             
          
         
       
     
         [0078]    It can therefore be seen that the laser aiming accuracy is critically dependent upon reducing the effective pixel IFOV which improves the resolution of the focal plane array, thus to more accurately direct the pencil-thin laser beam onto the target.