The Machine Perception Toolbox

[Introduction]- [News]- [Download]- [Screenshots]- [Manual (pdf)]- [Forums]- [API Reference]- [Repository ]

 

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

MPIImagePyramid Class Template Reference

A container class representing all the patches at all scales in an image. More...

#include <mpiimage.h>

Inheritance diagram for MPIImagePyramid:

Inheritance graph
[legend]
Collaboration diagram for MPIImagePyramid:

Collaboration graph
[legend]
List of all members.

Public Member Functions

const_iterator begin ()
const_iterator begin ()
const_iterator begin ()
const_iterator begin ()
const_iterator end ()
const_iterator end ()
const_iterator end ()
const_iterator end ()
int getClosestScale (float input_scale_factor)
int getClosestScale (float input_scale_factor)
int getClosestScale (float input_scale_factor)
int getClosestScale (float input_scale_factor)
int getMaxScale (float &sf)
float getMaxScale ()
int getMaxScale (float &sf)
float getMaxScale ()
int getMaxScale (float &sf)
float getMaxScale ()
int getMaxScale (float &sf)
float getMaxScale ()
ROI getROI () const
ROI getROI () const
ROI getROI () const
ROI getROI () const
void InitROI ()
void InitROI ()
void InitROI ()
void InitROI ()
 MPIImagePyramid (vector< RImage< T > * > &image, float scale_factor, int window_x, int window_y, float stride)
 MPIImagePyramid (RImage< T > &image, float scale_factor, int window_x, int window_y, float stride)
 MPIImagePyramid (vector< RImage< T > * > &image, float scale_factor, int window_x, int window_y, float stride)
 MPIImagePyramid (RImage< T > &image, float scale_factor, int window_x, int window_y, float stride)
 MPIImagePyramid (vector< RImage< T > * > &image, float scale_factor, int window_x, int window_y, float stride)
 MPIImagePyramid (RImage< T > &image, float scale_factor, int window_x, int window_y, float stride)
 MPIImagePyramid (vector< RImage< T > * > &image, float scale_factor, int window_x, int window_y, float stride)
 MPIImagePyramid (RImage< T > &image, float scale_factor, int window_x, int window_y, float stride)
ROI SetROI (ROI &roi)
ROI SetROI (ROI &roi)
ROI SetROI (ROI &roi)
ROI SetROI (ROI &roi)
 ~MPIImagePyramid ()
 ~MPIImagePyramid ()
 ~MPIImagePyramid ()
 ~MPIImagePyramid ()

Public Attributes

float m_stride
vector< float > scale_factors

Private Member Functions

int imax (const int &x, const int &y) const
int imax (const int &x, const int &y) const
int imax (const int &x, const int &y) const
int imax (const int &x, const int &y) const
int imin (const int &x, const int &y) const
int imin (const int &x, const int &y) const
int imin (const int &x, const int &y) const
int imin (const int &x, const int &y) const
void InitROIvectors ()
void InitROIvectors ()
void InitROIvectors ()
void InitROIvectors ()
int scale (const int &x, const int &y) const
int scale (const int &x, const int &y) const
int scale (const int &x, const int &y) const
int scale (const int &x, const int &y) const
void SetScaleFactors ()
void SetScaleFactors ()
void SetScaleFactors ()
void SetScaleFactors ()
void SetScaleFactorsFloat ()
void SetScaleFactorsFloat ()
void SetScaleFactorsFloat ()
void SetScaleFactorsFloat ()
void SetScaleFactorsNew (int start, int scale_size, float percent)
void SetScaleFactorsNew (int start, int scale_size, float percent)
void SetScaleFactorsNew (int start, int scale_size, float percent)
void SetScaleFactorsNew (int start, int scale_size, float percent)

Private Attributes

vector< RImage< T > * > m_image
vector< RImage< T > * > m_image
vector< RImage< T > * > m_image
vector< RImage< T > * > m_image
ROI m_roi
float m_scale_factor
int m_window_x
int m_window_y
float temp

Detailed Description

template<class T>
class MPIImagePyramid< T >

A container class representing all the patches at all scales in an image.

Typically one iterates through the scales, then iterates through all the patches at that scale

Definition at line 256 of file mac/build/mpisearch.framework/Headers/mpiimage.h.


Constructor & Destructor Documentation

MPIImagePyramid RImage< T > &  image,
float  scale_factor,
int  window_x,
int  window_y,
float  stride
[inline]
 

Definition at line 268 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

00269     : m_scale_factor(scale_factor),
00270     m_window_x(window_x), m_window_y(window_y), m_stride(stride){
00271     m_image.push_back(&image);
00272     SetScaleFactors();
00273     InitROI(); }

MPIImagePyramid vector< RImage< T > * > &  image,
float  scale_factor,
int  window_x,
int  window_y,
float  stride
[inline]
 

Definition at line 275 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

00276     : m_image(image),  m_scale_factor(scale_factor),
00277     m_window_x(window_x), m_window_y(window_y), m_stride(stride){
00278     SetScaleFactors();
00279     InitROI(); }

~MPIImagePyramid  )  [inline]
 

Definition at line 281 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

00281 { }

MPIImagePyramid RImage< T > &  image,
float  scale_factor,
int  window_x,
int  window_y,
float  stride
[inline]
 

Definition at line 268 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00269     : m_scale_factor(scale_factor),
00270     m_window_x(window_x), m_window_y(window_y), m_stride(stride){
00271     m_image.push_back(&image);
00272     SetScaleFactors();
00273     InitROI(); }

MPIImagePyramid vector< RImage< T > * > &  image,
float  scale_factor,
int  window_x,
int  window_y,
float  stride
[inline]
 

Definition at line 275 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00276     : m_image(image),  m_scale_factor(scale_factor),
00277     m_window_x(window_x), m_window_y(window_y), m_stride(stride){
00278     SetScaleFactors();
00279     InitROI(); }

~MPIImagePyramid  )  [inline]
 

Definition at line 281 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00281 { }

MPIImagePyramid RImage< T > &  image,
float  scale_factor,
int  window_x,
int  window_y,
float  stride
[inline]
 

Definition at line 268 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00269     : m_scale_factor(scale_factor),
00270     m_window_x(window_x), m_window_y(window_y), m_stride(stride){
00271     m_image.push_back(&image);
00272     SetScaleFactors();
00273     InitROI(); }

MPIImagePyramid vector< RImage< T > * > &  image,
float  scale_factor,
int  window_x,
int  window_y,
float  stride
[inline]
 

Definition at line 275 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00276     : m_image(image),  m_scale_factor(scale_factor),
00277     m_window_x(window_x), m_window_y(window_y), m_stride(stride){
00278     SetScaleFactors();
00279     InitROI(); }

~MPIImagePyramid  )  [inline]
 

Definition at line 281 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00281 { }

MPIImagePyramid RImage< T > &  image,
float  scale_factor,
int  window_x,
int  window_y,
float  stride
[inline]
 

Definition at line 244 of file src/mpiimage.h.

00245     : m_scale_factor(scale_factor),
00246     m_window_x(window_x), m_window_y(window_y), m_stride(stride){
00247     m_image.push_back(&image);
00248     SetScaleFactors();
00249     InitROI(); }

MPIImagePyramid vector< RImage< T > * > &  image,
float  scale_factor,
int  window_x,
int  window_y,
float  stride
[inline]
 

Definition at line 251 of file src/mpiimage.h.

00252     : m_image(image),  m_scale_factor(scale_factor),
00253     m_window_x(window_x), m_window_y(window_y), m_stride(stride){
00254     SetScaleFactors();
00255     InitROI(); }

~MPIImagePyramid  )  [inline]
 

Definition at line 257 of file src/mpiimage.h.

00257 { }


Member Function Documentation

const_iterator begin  )  [inline]
 

Definition at line 285 of file src/mpiimage.h.

00285                                {
00286     return const_iterator(*this, m_roi.m_min_scale); }

const_iterator begin  )  [inline]
 

Definition at line 309 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00309                                { // cout << "m_roi.m_min_scale: " << m_roi.m_min_scale << endl;
00310     return const_iterator(*this, m_roi.m_min_scale); }

const_iterator begin  )  [inline]
 

Definition at line 309 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00309                                { // cout << "m_roi.m_min_scale: " << m_roi.m_min_scale << endl;
00310     return const_iterator(*this, m_roi.m_min_scale); }

const_iterator begin  )  [inline]
 

Definition at line 309 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

Referenced by MPEyeFinder::eyeSearch(), sampleGrabber::grab(), MPISearchObjectDetector::search(), and CenterSurround::search().

00309                                { // cout << "m_roi.m_min_scale: " << m_roi.m_min_scale << endl;
00310     return const_iterator(*this, m_roi.m_min_scale); }

const_iterator end  )  [inline]
 

Definition at line 287 of file src/mpiimage.h.

00287                              {
00288     return const_iterator(*this, m_roi.m_max_scale); }

const_iterator end  )  [inline]
 

Definition at line 311 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00311                              { // cout << "m_roi.m_max_scale: " << m_roi.m_max_scale << endl;
00312     return const_iterator(*this, m_roi.m_max_scale); }

const_iterator end  )  [inline]
 

Definition at line 311 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00311                              { // cout << "m_roi.m_max_scale: " << m_roi.m_max_scale << endl;
00312     return const_iterator(*this, m_roi.m_max_scale); }

const_iterator end  )  [inline]
 

Definition at line 311 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

Referenced by MPEyeFinder::eyeSearch(), sampleGrabber::grab(), MPISearchObjectDetector::search(), and CenterSurround::search().

00311                              { // cout << "m_roi.m_max_scale: " << m_roi.m_max_scale << endl;
00312     return const_iterator(*this, m_roi.m_max_scale); }

int getClosestScale float  input_scale_factor  )  [inline]
 

Definition at line 440 of file src/mpiimage.h.

00440                                                {
00441     // if scale_factors were a map, could use stl algorithms, but its small so whatever
00442     for(int i = 1; i<scale_factors.size(); ++i)
00443       if(static_cast<float>(scale_factors[i])>input_scale_factor)
00444         return i-1;
00445     return scale_factors.size()-1;
00446   }

int getClosestScale float  input_scale_factor  )  [inline]
 

Definition at line 469 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00469                                                {
00470     // if scale_factors were a map, could use stl algorithms, but its small so whatever
00471     for(int i = 1; i<scale_factors.size(); ++i)
00472       if(static_cast<float>(scale_factors[i])>input_scale_factor)
00473         return i-1;
00474     return scale_factors.size()-1;
00475   }

int getClosestScale float  input_scale_factor  )  [inline]
 

Definition at line 469 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00469                                                {
00470     // if scale_factors were a map, could use stl algorithms, but its small so whatever
00471     for(int i = 1; i<scale_factors.size(); ++i)
00472       if(static_cast<float>(scale_factors[i])>input_scale_factor)
00473         return i-1;
00474     return scale_factors.size()-1;
00475   }

int getClosestScale float  input_scale_factor  )  [inline]
 

Definition at line 469 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

Referenced by MPEyeFinder::setROI().

00469                                                {
00470     // if scale_factors were a map, could use stl algorithms, but its small so whatever
00471     for(int i = 1; i<scale_factors.size(); ++i)
00472       if(static_cast<float>(scale_factors[i])>input_scale_factor)
00473         return i-1;
00474     return scale_factors.size()-1;
00475   }

int getMaxScale float &  sf  )  [inline]
 

Definition at line 294 of file src/mpiimage.h.

00294 {sf = scale_factors[scale_factors.size() - 1]; return scale_factors.size() - 1;}

float getMaxScale  )  [inline]
 

Definition at line 293 of file src/mpiimage.h.

00293 {return scale_factors[scale_factors.size() - 1];}

int getMaxScale float &  sf  )  [inline]
 

Definition at line 318 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00318 {sf = scale_factors[scale_factors.size() - 1]; return scale_factors.size() - 1;}

float getMaxScale  )  [inline]
 

Definition at line 317 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00317 {return scale_factors[scale_factors.size() - 1];}

int getMaxScale float &  sf  )  [inline]
 

Definition at line 318 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00318 {sf = scale_factors[scale_factors.size() - 1]; return scale_factors.size() - 1;}

float getMaxScale  )  [inline]
 

Definition at line 317 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00317 {return scale_factors[scale_factors.size() - 1];}

int getMaxScale float &  sf  )  [inline]
 

Definition at line 318 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

00318 {sf = scale_factors[scale_factors.size() - 1]; return scale_factors.size() - 1;}

float getMaxScale  )  [inline]
 

Definition at line 317 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

00317 {return scale_factors[scale_factors.size() - 1];}

ROI getROI  )  const [inline]
 

Definition at line 439 of file src/mpiimage.h.

00439 { return m_roi; }

ROI getROI  )  const [inline]
 

Definition at line 468 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00468 { return m_roi; }

ROI getROI  )  const [inline]
 

Definition at line 468 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00468 { return m_roi; }

ROI getROI  )  const [inline]
 

Definition at line 468 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

Referenced by MPEyeFinder::setROI().

00468 { return m_roi; }

int imax const int &  x,
const int &  y
const [inline, private]
 

Definition at line 304 of file src/mpiimage.h.

00304 { return(x > y ? x : y);}

int imax const int &  x,
const int &  y
const [inline, private]
 

Definition at line 328 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00328 { return(x > y ? x : y);}

int imax const int &  x,
const int &  y
const [inline, private]
 

Definition at line 328 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00328 { return(x > y ? x : y);}

int imax const int &  x,
const int &  y
const [inline, private]
 

Definition at line 328 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

00328 { return(x > y ? x : y);}

int imin const int &  x,
const int &  y
const [inline, private]
 

Definition at line 305 of file src/mpiimage.h.

00305 { return(x < y ? x : y);}

int imin const int &  x,
const int &  y
const [inline, private]
 

Definition at line 329 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00329 { return(x < y ? x : y);}

int imin const int &  x,
const int &  y
const [inline, private]
 

Definition at line 329 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00329 { return(x < y ? x : y);}

int imin const int &  x,
const int &  y
const [inline, private]
 

Definition at line 329 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

00329 { return(x < y ? x : y);}

void InitROI  )  [inline]
 

Definition at line 387 of file src/mpiimage.h.

00387                 {
00388     m_roi.m_min_x = 0;
00389     m_roi.m_min_y = 0;
00390     m_roi.m_min_scale = 0;
00391     m_roi.m_max_x = m_image[0]->width;
00392     m_roi.m_max_y = m_image[0]->height;
00393     m_roi.m_max_scale = scale_factors.size();
00394     m_roi.m_limit_scale = scale_factors.size();
00395     InitROIvectors();
00396   }

void InitROI  )  [inline]
 

Definition at line 415 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00415                 {
00416     m_roi.m_min_x = 0;
00417     m_roi.m_min_y = 0;
00418     m_roi.m_min_scale = 0;
00419     m_roi.m_max_x = m_image[0]->width;
00420     m_roi.m_max_y = m_image[0]->height;
00421     m_roi.m_max_scale = scale_factors.size();
00422     m_roi.m_limit_scale = scale_factors.size();
00423     InitROIvectors();
00424   }

void InitROI  )  [inline]
 

Definition at line 415 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00415                 {
00416     m_roi.m_min_x = 0;
00417     m_roi.m_min_y = 0;
00418     m_roi.m_min_scale = 0;
00419     m_roi.m_max_x = m_image[0]->width;
00420     m_roi.m_max_y = m_image[0]->height;
00421     m_roi.m_max_scale = scale_factors.size();
00422     m_roi.m_limit_scale = scale_factors.size();
00423     InitROIvectors();
00424   }

void InitROI  )  [inline]
 

Definition at line 415 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

00415                 {
00416     m_roi.m_min_x = 0;
00417     m_roi.m_min_y = 0;
00418     m_roi.m_min_scale = 0;
00419     m_roi.m_max_x = m_image[0]->width;
00420     m_roi.m_max_y = m_image[0]->height;
00421     m_roi.m_max_scale = scale_factors.size();
00422     m_roi.m_limit_scale = scale_factors.size();
00423     InitROIvectors();
00424   }

void InitROIvectors  )  [inline, private]
 

Definition at line 373 of file src/mpiimage.h.

00373                        {
00374     m_roi.vmin_x.clear();
00375     m_roi.vmax_x.clear();
00376     m_roi.vmin_y.clear();
00377     m_roi.vmax_y.clear();
00378     for(unsigned int i=0; i < scale_factors.size(); ++i){
00379       m_roi.vmin_x.push_back(m_roi.m_min_x);
00380       m_roi.vmax_x.push_back(m_roi.m_max_x);
00381       m_roi.vmin_y.push_back(m_roi.m_min_y);
00382       m_roi.vmax_y.push_back(m_roi.m_max_y);
00383     }
00384   }

void InitROIvectors  )  [inline, private]
 

Definition at line 401 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00401                        {
00402     m_roi.vmin_x.clear();
00403     m_roi.vmax_x.clear();
00404     m_roi.vmin_y.clear();
00405     m_roi.vmax_y.clear();
00406     for(unsigned int i=0; i < scale_factors.size(); ++i){
00407       m_roi.vmin_x.push_back(m_roi.m_min_x);
00408       m_roi.vmax_x.push_back(m_roi.m_max_x);
00409       m_roi.vmin_y.push_back(m_roi.m_min_y);
00410       m_roi.vmax_y.push_back(m_roi.m_max_y);
00411     }
00412   }

void InitROIvectors  )  [inline, private]
 

Definition at line 401 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00401                        {
00402     m_roi.vmin_x.clear();
00403     m_roi.vmax_x.clear();
00404     m_roi.vmin_y.clear();
00405     m_roi.vmax_y.clear();
00406     for(unsigned int i=0; i < scale_factors.size(); ++i){
00407       m_roi.vmin_x.push_back(m_roi.m_min_x);
00408       m_roi.vmax_x.push_back(m_roi.m_max_x);
00409       m_roi.vmin_y.push_back(m_roi.m_min_y);
00410       m_roi.vmax_y.push_back(m_roi.m_max_y);
00411     }
00412   }

void InitROIvectors  )  [inline, private]
 

Definition at line 401 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

00401                        {
00402     m_roi.vmin_x.clear();
00403     m_roi.vmax_x.clear();
00404     m_roi.vmin_y.clear();
00405     m_roi.vmax_y.clear();
00406     for(unsigned int i=0; i < scale_factors.size(); ++i){
00407       m_roi.vmin_x.push_back(m_roi.m_min_x);
00408       m_roi.vmax_x.push_back(m_roi.m_max_x);
00409       m_roi.vmin_y.push_back(m_roi.m_min_y);
00410       m_roi.vmax_y.push_back(m_roi.m_max_y);
00411     }
00412   }

int scale const int &  x,
const int &  y
const [inline, private]
 

Definition at line 306 of file src/mpiimage.h.

00306 { return(x * y);}

int scale const int &  x,
const int &  y
const [inline, private]
 

Definition at line 330 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00330 { return(x * y);}

int scale const int &  x,
const int &  y
const [inline, private]
 

Definition at line 330 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00330 { return(x * y);}

int scale const int &  x,
const int &  y
const [inline, private]
 

Definition at line 330 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

00330 { return(x * y);}

ROI SetROI ROI roi  )  [inline]
 

Definition at line 397 of file src/mpiimage.h.

00397                       {
00398     // set ROI to boundaries of image and scales
00399     m_roi = roi;
00400     if(m_roi.m_min_x < 0) m_roi.m_min_x = 0;
00401     if(m_roi.m_max_x > m_image[0]->width) m_roi.m_max_x = m_image[0]->width;
00402     if(m_roi.m_min_y < 0) m_roi.m_min_y = 0;
00403     if(m_roi.m_max_y > m_image[0]->height) m_roi.m_max_y = m_image[0]->height;
00404     if(m_roi.m_min_scale < 0) m_roi.m_min_scale = 0;
00405     if(m_roi.m_max_scale > (int)scale_factors.size()) m_roi.m_max_scale = scale_factors.size();
00406     // if vector parts are empty, initialize them to full image pyramid
00407     if(!m_roi.vmin_x.size() && !m_roi.vmax_x.size() && !m_roi.vmin_y.size() && !m_roi.vmax_y.size()){
00408       InitROIvectors();
00409     }
00410     // if they are not empty but different from correct size, reinitialize them
00411     else {
00412       if((m_roi.vmin_x.size() != scale_factors.size()) || 
00413                                 (m_roi.vmax_x.size() != scale_factors.size()) || 
00414                                 (m_roi.vmin_y.size() != scale_factors.size()) || 
00415                                 (m_roi.vmax_y.size() != scale_factors.size()) ){
00416                                 std::cerr << "MPIImagePyramid::SetROI():  Received inconsistent vector part of ROI! Resetting ROI vectors" << endl;
00417                                 InitROIvectors();
00418       }
00419       // Ok, suppose it has a valid vector part, then
00420       // make sure no vector parts go outside of image boundary
00421       else{
00422                                 for(unsigned int i=0; i < scale_factors.size(); ++i){
00423                                         if(m_roi.vmin_x[i] < 0) m_roi.vmin_x[i] = 0;
00424                                         if(m_roi.vmax_x[i] > m_image[0]->width) m_roi.vmax_x[i] = m_image[0]->width;
00425                                         if(m_roi.vmin_y[i] < 0) m_roi.vmin_y[i] = 0;
00426                                         if(m_roi.vmax_y[i] > m_image[0]->height) m_roi.vmax_y[i] = m_image[0]->height;
00427                                 }
00428       }
00429       // Make sure the ROI holds correct values for the absolute min and max
00430       for(unsigned int i=0; i < scale_factors.size(); ++i){
00431                                 if(m_roi.m_min_x > m_roi.vmin_x[i]) m_roi.m_min_x = m_roi.vmin_x[i];
00432                                 if(m_roi.m_max_x < m_roi.vmax_x[i]) m_roi.m_max_x = m_roi.vmax_x[i];
00433                                 if(m_roi.m_min_y > m_roi.vmin_y[i]) m_roi.m_min_y = m_roi.vmin_y[i];
00434                                 if(m_roi.m_max_y < m_roi.vmax_y[i]) m_roi.m_max_y = m_roi.vmax_y[i];
00435       }
00436     }
00437     return m_roi;
00438   }

ROI SetROI ROI roi  )  [inline]
 

Definition at line 425 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00425                       {
00426     // set ROI to boundaries of image and scales
00427           //std::cout << "MPIImage::SetROI: roi = " << roi << endl;
00428     m_roi = roi;
00429     if(m_roi.m_min_x < 0) m_roi.m_min_x = 0;
00430     if(m_roi.m_max_x > m_image[0]->width) m_roi.m_max_x = m_image[0]->width;
00431     if(m_roi.m_min_y < 0) m_roi.m_min_y = 0;
00432     if(m_roi.m_max_y > m_image[0]->height) m_roi.m_max_y = m_image[0]->height;
00433     if(m_roi.m_min_scale < 0) m_roi.m_min_scale = 0;
00434     if(m_roi.m_max_scale > (int)scale_factors.size()) m_roi.m_max_scale = scale_factors.size();
00435     // if vector parts are empty, initialize them to full image pyramid
00436     if(!m_roi.vmin_x.size() && !m_roi.vmax_x.size() && !m_roi.vmin_y.size() && !m_roi.vmax_y.size()){
00437       InitROIvectors();
00438     }
00439     // if they are not empty but different from correct size, reinitialize them
00440     else {
00441       if((m_roi.vmin_x.size() != scale_factors.size()) || 
00442                                 (m_roi.vmax_x.size() != scale_factors.size()) || 
00443                                 (m_roi.vmin_y.size() != scale_factors.size()) || 
00444                                 (m_roi.vmax_y.size() != scale_factors.size()) ){
00445                                 std::cerr << "MPIImagePyramid::SetROI():  Received inconsistent vector part of ROI! Resetting ROI vectors" << endl;
00446                                 InitROIvectors();
00447       }
00448       // Ok, suppose it has a valid vector part, then
00449       // make sure no vector parts go outside of image boundary
00450       else{
00451                                 for(unsigned int i=0; i < scale_factors.size(); ++i){
00452                                         if(m_roi.vmin_x[i] < 0) m_roi.vmin_x[i] = 0;
00453                                         if(m_roi.vmax_x[i] > m_image[0]->width) m_roi.vmax_x[i] = m_image[0]->width;
00454                                         if(m_roi.vmin_y[i] < 0) m_roi.vmin_y[i] = 0;
00455                                         if(m_roi.vmax_y[i] > m_image[0]->height) m_roi.vmax_y[i] = m_image[0]->height;
00456                                 }
00457       }
00458       // Make sure the ROI holds correct values for the absolute min and max
00459       for(unsigned int i=0; i < scale_factors.size(); ++i){
00460                                 if(m_roi.m_min_x > m_roi.vmin_x[i]) m_roi.m_min_x = m_roi.vmin_x[i];
00461                                 if(m_roi.m_max_x < m_roi.vmax_x[i]) m_roi.m_max_x = m_roi.vmax_x[i];
00462                                 if(m_roi.m_min_y > m_roi.vmin_y[i]) m_roi.m_min_y = m_roi.vmin_y[i];
00463                                 if(m_roi.m_max_y < m_roi.vmax_y[i]) m_roi.m_max_y = m_roi.vmax_y[i];
00464       }
00465     }
00466     return m_roi;
00467   }

ROI SetROI ROI roi  )  [inline]
 

Definition at line 425 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00425                       {
00426     // set ROI to boundaries of image and scales
00427           //std::cout << "MPIImage::SetROI: roi = " << roi << endl;
00428     m_roi = roi;
00429     if(m_roi.m_min_x < 0) m_roi.m_min_x = 0;
00430     if(m_roi.m_max_x > m_image[0]->width) m_roi.m_max_x = m_image[0]->width;
00431     if(m_roi.m_min_y < 0) m_roi.m_min_y = 0;
00432     if(m_roi.m_max_y > m_image[0]->height) m_roi.m_max_y = m_image[0]->height;
00433     if(m_roi.m_min_scale < 0) m_roi.m_min_scale = 0;
00434     if(m_roi.m_max_scale > (int)scale_factors.size()) m_roi.m_max_scale = scale_factors.size();
00435     // if vector parts are empty, initialize them to full image pyramid
00436     if(!m_roi.vmin_x.size() && !m_roi.vmax_x.size() && !m_roi.vmin_y.size() && !m_roi.vmax_y.size()){
00437       InitROIvectors();
00438     }
00439     // if they are not empty but different from correct size, reinitialize them
00440     else {
00441       if((m_roi.vmin_x.size() != scale_factors.size()) || 
00442                                 (m_roi.vmax_x.size() != scale_factors.size()) || 
00443                                 (m_roi.vmin_y.size() != scale_factors.size()) || 
00444                                 (m_roi.vmax_y.size() != scale_factors.size()) ){
00445                                 std::cerr << "MPIImagePyramid::SetROI():  Received inconsistent vector part of ROI! Resetting ROI vectors" << endl;
00446                                 InitROIvectors();
00447       }
00448       // Ok, suppose it has a valid vector part, then
00449       // make sure no vector parts go outside of image boundary
00450       else{
00451                                 for(unsigned int i=0; i < scale_factors.size(); ++i){
00452                                         if(m_roi.vmin_x[i] < 0) m_roi.vmin_x[i] = 0;
00453                                         if(m_roi.vmax_x[i] > m_image[0]->width) m_roi.vmax_x[i] = m_image[0]->width;
00454                                         if(m_roi.vmin_y[i] < 0) m_roi.vmin_y[i] = 0;
00455                                         if(m_roi.vmax_y[i] > m_image[0]->height) m_roi.vmax_y[i] = m_image[0]->height;
00456                                 }
00457       }
00458       // Make sure the ROI holds correct values for the absolute min and max
00459       for(unsigned int i=0; i < scale_factors.size(); ++i){
00460                                 if(m_roi.m_min_x > m_roi.vmin_x[i]) m_roi.m_min_x = m_roi.vmin_x[i];
00461                                 if(m_roi.m_max_x < m_roi.vmax_x[i]) m_roi.m_max_x = m_roi.vmax_x[i];
00462                                 if(m_roi.m_min_y > m_roi.vmin_y[i]) m_roi.m_min_y = m_roi.vmin_y[i];
00463                                 if(m_roi.m_max_y < m_roi.vmax_y[i]) m_roi.m_max_y = m_roi.vmax_y[i];
00464       }
00465     }
00466     return m_roi;
00467   }

ROI SetROI ROI roi  )  [inline]
 

Definition at line 425 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

Referenced by MPEyeFinder::setROI().

00425                       {
00426     // set ROI to boundaries of image and scales
00427           //std::cout << "MPIImage::SetROI: roi = " << roi << endl;
00428     m_roi = roi;
00429     if(m_roi.m_min_x < 0) m_roi.m_min_x = 0;
00430     if(m_roi.m_max_x > m_image[0]->width) m_roi.m_max_x = m_image[0]->width;
00431     if(m_roi.m_min_y < 0) m_roi.m_min_y = 0;
00432     if(m_roi.m_max_y > m_image[0]->height) m_roi.m_max_y = m_image[0]->height;
00433     if(m_roi.m_min_scale < 0) m_roi.m_min_scale = 0;
00434     if(m_roi.m_max_scale > (int)scale_factors.size()) m_roi.m_max_scale = scale_factors.size();
00435     // if vector parts are empty, initialize them to full image pyramid
00436     if(!m_roi.vmin_x.size() && !m_roi.vmax_x.size() && !m_roi.vmin_y.size() && !m_roi.vmax_y.size()){
00437       InitROIvectors();
00438     }
00439     // if they are not empty but different from correct size, reinitialize them
00440     else {
00441       if((m_roi.vmin_x.size() != scale_factors.size()) || 
00442                                 (m_roi.vmax_x.size() != scale_factors.size()) || 
00443                                 (m_roi.vmin_y.size() != scale_factors.size()) || 
00444                                 (m_roi.vmax_y.size() != scale_factors.size()) ){
00445                                 std::cerr << "MPIImagePyramid::SetROI():  Received inconsistent vector part of ROI! Resetting ROI vectors" << endl;
00446                                 InitROIvectors();
00447       }
00448       // Ok, suppose it has a valid vector part, then
00449       // make sure no vector parts go outside of image boundary
00450       else{
00451                                 for(unsigned int i=0; i < scale_factors.size(); ++i){
00452                                         if(m_roi.vmin_x[i] < 0) m_roi.vmin_x[i] = 0;
00453                                         if(m_roi.vmax_x[i] > m_image[0]->width) m_roi.vmax_x[i] = m_image[0]->width;
00454                                         if(m_roi.vmin_y[i] < 0) m_roi.vmin_y[i] = 0;
00455                                         if(m_roi.vmax_y[i] > m_image[0]->height) m_roi.vmax_y[i] = m_image[0]->height;
00456                                 }
00457       }
00458       // Make sure the ROI holds correct values for the absolute min and max
00459       for(unsigned int i=0; i < scale_factors.size(); ++i){
00460                                 if(m_roi.m_min_x > m_roi.vmin_x[i]) m_roi.m_min_x = m_roi.vmin_x[i];
00461                                 if(m_roi.m_max_x < m_roi.vmax_x[i]) m_roi.m_max_x = m_roi.vmax_x[i];
00462                                 if(m_roi.m_min_y > m_roi.vmin_y[i]) m_roi.m_min_y = m_roi.vmin_y[i];
00463                                 if(m_roi.m_max_y < m_roi.vmax_y[i]) m_roi.m_max_y = m_roi.vmax_y[i];
00464       }
00465     }
00466     return m_roi;
00467   }

void SetScaleFactors  )  [inline, private]
 

Definition at line 323 of file src/mpiimage.h.

00323                         {
00324     // Find maximum scales
00325     int max_y_scale_factor = static_cast<int>(m_image[0]->height / (m_window_y+1));
00326     int max_x_scale_factor = static_cast<int>(m_image[0]->width / (m_window_x+1));
00327     if (max_x_scale_factor && max_y_scale_factor){
00328       int scale_factor = 1;
00329       while((scale_factor < max_y_scale_factor) && (scale_factor < max_x_scale_factor)){
00330         scale_factors.push_back(scale_factor);
00331         temp = imax (scale_factor+1, static_cast<int>(scale_factor*m_scale_factor));
00332         scale_factor = (int)temp;
00333       }
00334       // make the last scale such that the window gets as close as possible to the full image
00335       scale_factor = imin(max_x_scale_factor,max_y_scale_factor);
00336       scale_factors.push_back(scale_factor);
00337     }
00338   }

void SetScaleFactors  )  [inline, private]
 

Definition at line 351 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00351                         {
00352     // Find maximum scales
00353     int max_y_scale_factor = static_cast<int>(m_image[0]->height / (m_window_y+1));
00354     int max_x_scale_factor = static_cast<int>(m_image[0]->width / (m_window_x+1));
00355     if (max_x_scale_factor && max_y_scale_factor){
00356       int scale_factor = 1;
00357       while((scale_factor < max_y_scale_factor) && (scale_factor < max_x_scale_factor)){
00358         scale_factors.push_back(scale_factor);
00359         temp = imax (scale_factor+1, static_cast<int>(scale_factor*m_scale_factor));
00360         scale_factor = (int)temp;
00361       }
00362       // make the last scale such that the window gets as close as possible to the full image
00363       scale_factor = imin(max_x_scale_factor,max_y_scale_factor);
00364       scale_factors.push_back(scale_factor);
00365     }
00366   }

void SetScaleFactors  )  [inline, private]
 

Definition at line 351 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00351                         {
00352     // Find maximum scales
00353     int max_y_scale_factor = static_cast<int>(m_image[0]->height / (m_window_y+1));
00354     int max_x_scale_factor = static_cast<int>(m_image[0]->width / (m_window_x+1));
00355     if (max_x_scale_factor && max_y_scale_factor){
00356       int scale_factor = 1;
00357       while((scale_factor < max_y_scale_factor) && (scale_factor < max_x_scale_factor)){
00358         scale_factors.push_back(scale_factor);
00359         temp = imax (scale_factor+1, static_cast<int>(scale_factor*m_scale_factor));
00360         scale_factor = (int)temp;
00361       }
00362       // make the last scale such that the window gets as close as possible to the full image
00363       scale_factor = imin(max_x_scale_factor,max_y_scale_factor);
00364       scale_factors.push_back(scale_factor);
00365     }
00366   }

void SetScaleFactors  )  [inline, private]
 

Definition at line 351 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

00351                         {
00352     // Find maximum scales
00353     int max_y_scale_factor = static_cast<int>(m_image[0]->height / (m_window_y+1));
00354     int max_x_scale_factor = static_cast<int>(m_image[0]->width / (m_window_x+1));
00355     if (max_x_scale_factor && max_y_scale_factor){
00356       int scale_factor = 1;
00357       while((scale_factor < max_y_scale_factor) && (scale_factor < max_x_scale_factor)){
00358         scale_factors.push_back(scale_factor);
00359         temp = imax (scale_factor+1, static_cast<int>(scale_factor*m_scale_factor));
00360         scale_factor = (int)temp;
00361       }
00362       // make the last scale such that the window gets as close as possible to the full image
00363       scale_factor = imin(max_x_scale_factor,max_y_scale_factor);
00364       scale_factors.push_back(scale_factor);
00365     }
00366   }

void SetScaleFactorsFloat  )  [inline, private]
 

Definition at line 307 of file src/mpiimage.h.

00307                              {
00308       // Find maximum scales
00309       float max_y_scale_factor = static_cast<int>(m_image[0]->height / (m_window_y+1));
00310       float max_x_scale_factor = static_cast<int>(m_image[0]->width / (m_window_x+1));
00311       if (max_x_scale_factor && max_y_scale_factor){
00312           float scale_factor = 1.0f;
00313           while((scale_factor < max_y_scale_factor) && (scale_factor < max_x_scale_factor)){
00314               scale_factors.push_back(scale_factor);
00315               temp = (float)(static_cast<int>(scale_factor*m_scale_factor*(float)m_window_x + .99999f))/(float)m_window_x;
00316               scale_factor = temp;
00317           }
00318           // make the last scale such that the window gets as close as possible to the full image
00319           scale_factor = min(max_x_scale_factor,max_y_scale_factor);
00320           scale_factors.push_back(scale_factor);
00321       }
00322   }

void SetScaleFactorsFloat  )  [inline, private]
 

Definition at line 331 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00331                              {
00332       // Find maximum scales
00333       float max_y_scale_factor = static_cast<int>(m_image[0]->height / (m_window_y+1));
00334       float max_x_scale_factor = static_cast<int>(m_image[0]->width / (m_window_x+1));
00335       if (max_x_scale_factor && max_y_scale_factor){
00336           float scale_factor = 1.0f;
00337           while((scale_factor < max_y_scale_factor) && (scale_factor < max_x_scale_factor)){
00338               //cout << "creating scale_factor: " << scale_factor << endl; 
00339               scale_factors.push_back(scale_factor);
00340               // cout << "scale_factor*m_scale_factor*(float)m_window_x: "<< scale_factor*m_scale_factor*(float)m_window_x << endl;
00341               // cout << "(float)(static_cast<int>(scale_factor*m_scale_factor*(float)m_window_x + .99999f)): " << 
00342               //    (float)(static_cast<int>(scale_factor*m_scale_factor*(float)m_window_x + .99999f)) << endl;
00343               temp = (float)(static_cast<int>(scale_factor*m_scale_factor*(float)m_window_x + .99999f))/(float)m_window_x;
00344               scale_factor = temp;
00345           }
00346           // make the last scale such that the window gets as close as possible to the full image
00347           scale_factor = min(max_x_scale_factor,max_y_scale_factor);
00348           scale_factors.push_back(scale_factor);
00349       }
00350   }

void SetScaleFactorsFloat  )  [inline, private]
 

Definition at line 331 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00331                              {
00332       // Find maximum scales
00333       float max_y_scale_factor = static_cast<int>(m_image[0]->height / (m_window_y+1));
00334       float max_x_scale_factor = static_cast<int>(m_image[0]->width / (m_window_x+1));
00335       if (max_x_scale_factor && max_y_scale_factor){
00336           float scale_factor = 1.0f;
00337           while((scale_factor < max_y_scale_factor) && (scale_factor < max_x_scale_factor)){
00338               //cout << "creating scale_factor: " << scale_factor << endl; 
00339               scale_factors.push_back(scale_factor);
00340               // cout << "scale_factor*m_scale_factor*(float)m_window_x: "<< scale_factor*m_scale_factor*(float)m_window_x << endl;
00341               // cout << "(float)(static_cast<int>(scale_factor*m_scale_factor*(float)m_window_x + .99999f)): " << 
00342               //    (float)(static_cast<int>(scale_factor*m_scale_factor*(float)m_window_x + .99999f)) << endl;
00343               temp = (float)(static_cast<int>(scale_factor*m_scale_factor*(float)m_window_x + .99999f))/(float)m_window_x;
00344               scale_factor = temp;
00345           }
00346           // make the last scale such that the window gets as close as possible to the full image
00347           scale_factor = min(max_x_scale_factor,max_y_scale_factor);
00348           scale_factors.push_back(scale_factor);
00349       }
00350   }

void SetScaleFactorsFloat  )  [inline, private]
 

Definition at line 331 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

00331                              {
00332       // Find maximum scales
00333       float max_y_scale_factor = static_cast<int>(m_image[0]->height / (m_window_y+1));
00334       float max_x_scale_factor = static_cast<int>(m_image[0]->width / (m_window_x+1));
00335       if (max_x_scale_factor && max_y_scale_factor){
00336           float scale_factor = 1.0f;
00337           while((scale_factor < max_y_scale_factor) && (scale_factor < max_x_scale_factor)){
00338               //cout << "creating scale_factor: " << scale_factor << endl; 
00339               scale_factors.push_back(scale_factor);
00340               // cout << "scale_factor*m_scale_factor*(float)m_window_x: "<< scale_factor*m_scale_factor*(float)m_window_x << endl;
00341               // cout << "(float)(static_cast<int>(scale_factor*m_scale_factor*(float)m_window_x + .99999f)): " << 
00342               //    (float)(static_cast<int>(scale_factor*m_scale_factor*(float)m_window_x + .99999f)) << endl;
00343               temp = (float)(static_cast<int>(scale_factor*m_scale_factor*(float)m_window_x + .99999f))/(float)m_window_x;
00344               scale_factor = temp;
00345           }
00346           // make the last scale such that the window gets as close as possible to the full image
00347           scale_factor = min(max_x_scale_factor,max_y_scale_factor);
00348           scale_factors.push_back(scale_factor);
00349       }
00350   }

void SetScaleFactorsNew int  start,
int  scale_size,
float  percent
[inline, private]
 

Definition at line 339 of file src/mpiimage.h.

00339                                                                    {
00340     //Find maximum scales
00341     int max_y_scale_factor = static_cast<int>(m_image[0]->height / (m_window_y+1));
00342     int max_x_scale_factor = static_cast<int>(m_image[0]->width / (m_window_x+1));
00343     if (max_x_scale_factor && max_y_scale_factor){
00344       int max_scale_factor = imin(max_x_scale_factor, max_y_scale_factor);
00345       int current_scale = 0;
00346       int previous_scale = start;
00347       int previous_point, current_point;
00348       scale_factors.push_back(start);
00349       while(current_scale < max_scale_factor){
00350         current_scale = previous_scale+1;
00351         previous_point = scale(previous_scale, scale_size) + (scale(previous_scale, scale_size) * percent);
00352         while(current_scale < max_scale_factor){
00353           current_point = scale(current_scale, scale_size) - (scale(current_scale, scale_size) * percent);
00354           if(current_point < previous_point)
00355             current_scale++;
00356           else{
00357             if(current_scale - 1 == previous_scale)
00358               current_scale++;//to make sure next scale != to previous scale
00359             scale_factors.push_back(current_scale - 1);
00360             previous_scale = current_scale - 1;
00361             break;
00362           }
00363         }
00364       }
00365       // make the last scale such that the window gets as close as possible to the full image
00366       // if gap between previous_scale and max_scale then also add prior scale
00367       current_point = scale(max_scale_factor, scale_size) - (scale(max_scale_factor, scale_size) * percent);
00368       if(current_point > previous_point && (max_scale_factor - 1) > previous_scale)
00369         scale_factors.push_back(max_scale_factor -1);
00370       scale_factors.push_back(max_scale_factor);
00371     }
00372   }

void SetScaleFactorsNew int  start,
int  scale_size,
float  percent
[inline, private]
 

Definition at line 367 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

00367                                                                    {
00368     //Find maximum scales
00369     int max_y_scale_factor = static_cast<int>(m_image[0]->height / (m_window_y+1));
00370     int max_x_scale_factor = static_cast<int>(m_image[0]->width / (m_window_x+1));
00371     if (max_x_scale_factor && max_y_scale_factor){
00372       int max_scale_factor = imin(max_x_scale_factor, max_y_scale_factor);
00373       int current_scale = 0;
00374       int previous_scale = start;
00375       int previous_point, current_point;
00376       scale_factors.push_back(start);
00377       while(current_scale < max_scale_factor){
00378         current_scale = previous_scale+1;
00379         previous_point = scale(previous_scale, scale_size) + (scale(previous_scale, scale_size) * percent);
00380         while(current_scale < max_scale_factor){
00381           current_point = scale(current_scale, scale_size) - (scale(current_scale, scale_size) * percent);
00382           if(current_point < previous_point)
00383             current_scale++;
00384           else{
00385             if(current_scale - 1 == previous_scale)
00386               current_scale++;//to make sure next scale != to previous scale
00387             scale_factors.push_back(current_scale - 1);
00388             previous_scale = current_scale - 1;
00389             break;
00390           }
00391         }
00392       }
00393       // make the last scale such that the window gets as close as possible to the full image
00394       // if gap between previous_scale and max_scale then also add prior scale
00395       current_point = scale(max_scale_factor, scale_size) - (scale(max_scale_factor, scale_size) * percent);
00396       if(current_point > previous_point && (max_scale_factor - 1) > previous_scale)
00397         scale_factors.push_back(max_scale_factor -1);
00398       scale_factors.push_back(max_scale_factor);
00399     }
00400   }

void SetScaleFactorsNew int  start,
int  scale_size,
float  percent
[inline, private]
 

Definition at line 367 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

00367                                                                    {
00368     //Find maximum scales
00369     int max_y_scale_factor = static_cast<int>(m_image[0]->height / (m_window_y+1));
00370     int max_x_scale_factor = static_cast<int>(m_image[0]->width / (m_window_x+1));
00371     if (max_x_scale_factor && max_y_scale_factor){
00372       int max_scale_factor = imin(max_x_scale_factor, max_y_scale_factor);
00373       int current_scale = 0;
00374       int previous_scale = start;
00375       int previous_point, current_point;
00376       scale_factors.push_back(start);
00377       while(current_scale < max_scale_factor){
00378         current_scale = previous_scale+1;
00379         previous_point = scale(previous_scale, scale_size) + (scale(previous_scale, scale_size) * percent);
00380         while(current_scale < max_scale_factor){
00381           current_point = scale(current_scale, scale_size) - (scale(current_scale, scale_size) * percent);
00382           if(current_point < previous_point)
00383             current_scale++;
00384           else{
00385             if(current_scale - 1 == previous_scale)
00386               current_scale++;//to make sure next scale != to previous scale
00387             scale_factors.push_back(current_scale - 1);
00388             previous_scale = current_scale - 1;
00389             break;
00390           }
00391         }
00392       }
00393       // make the last scale such that the window gets as close as possible to the full image
00394       // if gap between previous_scale and max_scale then also add prior scale
00395       current_point = scale(max_scale_factor, scale_size) - (scale(max_scale_factor, scale_size) * percent);
00396       if(current_point > previous_point && (max_scale_factor - 1) > previous_scale)
00397         scale_factors.push_back(max_scale_factor -1);
00398       scale_factors.push_back(max_scale_factor);
00399     }
00400   }

void SetScaleFactorsNew int  start,
int  scale_size,
float  percent
[inline, private]
 

Definition at line 367 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

00367                                                                    {
00368     //Find maximum scales
00369     int max_y_scale_factor = static_cast<int>(m_image[0]->height / (m_window_y+1));
00370     int max_x_scale_factor = static_cast<int>(m_image[0]->width / (m_window_x+1));
00371     if (max_x_scale_factor && max_y_scale_factor){
00372       int max_scale_factor = imin(max_x_scale_factor, max_y_scale_factor);
00373       int current_scale = 0;
00374       int previous_scale = start;
00375       int previous_point, current_point;
00376       scale_factors.push_back(start);
00377       while(current_scale < max_scale_factor){
00378         current_scale = previous_scale+1;
00379         previous_point = scale(previous_scale, scale_size) + (scale(previous_scale, scale_size) * percent);
00380         while(current_scale < max_scale_factor){
00381           current_point = scale(current_scale, scale_size) - (scale(current_scale, scale_size) * percent);
00382           if(current_point < previous_point)
00383             current_scale++;
00384           else{
00385             if(current_scale - 1 == previous_scale)
00386               current_scale++;//to make sure next scale != to previous scale
00387             scale_factors.push_back(current_scale - 1);
00388             previous_scale = current_scale - 1;
00389             break;
00390           }
00391         }
00392       }
00393       // make the last scale such that the window gets as close as possible to the full image
00394       // if gap between previous_scale and max_scale then also add prior scale
00395       current_point = scale(max_scale_factor, scale_size) - (scale(max_scale_factor, scale_size) * percent);
00396       if(current_point > previous_point && (max_scale_factor - 1) > previous_scale)
00397         scale_factors.push_back(max_scale_factor -1);
00398       scale_factors.push_back(max_scale_factor);
00399     }
00400   }


Member Data Documentation

vector< RImage<T>* > m_image [private]
 

Definition at line 297 of file src/mpiimage.h.

vector< RImage<T>* > m_image [private]
 

Definition at line 321 of file mac/build/mpisearch.framework/Versions/Current/Headers/mpiimage.h.

vector< RImage<T>* > m_image [private]
 

Definition at line 321 of file mac/build/mpisearch.framework/Versions/A/Headers/mpiimage.h.

vector< RImage<T>* > m_image [private]
 

Definition at line 321 of file mac/build/mpisearch.framework/Headers/mpiimage.h.

ROI m_roi [private]
 

Definition at line 298 of file src/mpiimage.h.

Referenced by MPIScaledImage::MPIScaledImage().

float m_scale_factor [private]
 

Definition at line 299 of file src/mpiimage.h.

float m_stride
 

Definition at line 292 of file src/mpiimage.h.

Referenced by MPIScaledImage::MPIScaledImage().

int m_window_x [private]
 

Definition at line 300 of file src/mpiimage.h.

Referenced by MPIScaledImage::MPIScaledImage().

int m_window_y [private]
 

Definition at line 300 of file src/mpiimage.h.

Referenced by MPIScaledImage::MPIScaledImage().

vector< float > scale_factors
 

Definition at line 291 of file src/mpiimage.h.

Referenced by MPIImagePyramid::const_iterator::getScale().

float temp [private]
 

Definition at line 301 of file src/mpiimage.h.


The documentation for this class was generated from the following files:
Generated on Mon Nov 8 17:08:37 2004 for MPT by  doxygen 1.3.9.1