core/vil1/vil1_memory_image_window.h

Go to the documentation of this file.
00001 // This is core/vil1/vil1_memory_image_window.h
00002 #ifndef vil1_memory_image_window_h_
00003 #define vil1_memory_image_window_h_
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007 //:
00008 // \file
00009 // \brief Operations on a small region of an image
00010 
00011 #include "vil1_memory_image_of.h"
00012 #include <vxl_config.h>
00013 
00014 const int vil1_memory_image_window_maxint = 0x07ffffff;
00015 
00016 //: Operations on a small region of an image.
00017 //  vil1_memory_image_window centres a mask around a pixel in an vil1_memory_image_of,
00018 //  and implements a few comparison operators: SSD, NSSD, NCC.
00019 class vil1_memory_image_window
00020 {
00021  public:
00022   // Constructors/Destructors--------------------------------------------------
00023 
00024   vil1_memory_image_window(const vil1_memory_image_of<vxl_byte>& image, int centre_x, int centre_y, int mask_size);
00025 
00026   // Computations--------------------------------------------------------------
00027 
00028   int sum_abs_diff(const vil1_memory_image_of<vxl_byte>& image2,
00029                    int centre2_x, int centre2_y,
00030                    int early_exit_level = vil1_memory_image_window_maxint);
00031 
00032   int sum_sqr_diff(const vil1_memory_image_of<vxl_byte>& image2,
00033                    int centre2_x, int centre2_y,
00034                    int early_exit_level = vil1_memory_image_window_maxint);
00035 
00036   int normalised_sum_abs_diff(const vil1_memory_image_of<vxl_byte>& image2,
00037                               int centre2_x, int centre2_y,
00038                               double normalise_ratio,
00039                               int early_exit_level = vil1_memory_image_window_maxint);
00040 
00041   double normalised_cross_correlation(const vil1_memory_image_of<vxl_byte>& image2,
00042                                       int centre2_x, int centre2_y);
00043 
00044   float mean_intensity();
00045 
00046  protected:
00047   // Data Members--------------------------------------------------------------
00048   const vil1_memory_image_of<vxl_byte>& image1_;
00049   int mask_size_;
00050   int mask1_col_index_;
00051   int mask1_row_index_;
00052   int centre1_x_;
00053   int centre1_y_;
00054 
00055   void init(int centre_x, int centre_y, int mask_size);
00056 
00057  private:
00058   // Helpers-------------------------------------------------------------------
00059   vil1_memory_image_window(const vil1_memory_image_window& that);
00060   vil1_memory_image_window& operator=(const vil1_memory_image_window& that);
00061 };
00062 
00063 #endif // vil1_memory_image_window_h_

Generated on Sat Nov 22 05:08:29 2008 for core/vil1 by  doxygen 1.5.1