OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Classes | Typedefs | Functions
ATP Namespace Reference

THESE FUNCTIONS REQUIRE OPENCV. More...

Classes

class  AtpAnnotatedImage
 For engineering use in ATP. More...
 
class  AtpConfig
 Singleton class maintaining parameters affecting the automatic tie point generation. More...
 
class  AtpGenerator
 Base class for OSSIM-based ATP generators. More...
 
class  AtpTileSource
 Base class for tile sources performing auto tie point extraction. More...
 
class  AutoTiePoint
 Base class for all automatic tiepoints. More...
 
class  MatchPoint
 Maintains quantities associated with single matchpoint peak. More...
 
class  ossimAtpTool
 
class  ossimAtpToolFactory
 
class  ossimCorrelationSource
 Finds auto-tie-points using the corss-correlation-based matching algorithm. More...
 
class  ossimDescriptorSource
 Finds auto-tie-points using the descriptor-based matching algorithm. More...
 

Typedefs

typedef std::vector< std::shared_ptr< AutoTiePoint > > AtpList
 

Functions

IplImage * convertToIpl (const ossimImageData *data)
 Converts an ossimImageData pointer to an IplImage for use in OpenCV. More...
 
IplImage * convertToIpl32 (const ossimImageData *data)
 
void copyIpl32ToOid (IplImage *ipl, ossimImageData *oid)
 
void copyIplToOid (IplImage *ipl, ossimImageData *oid)
 Converts an IPL image to an ossimImageData object: More...
 

Detailed Description

THESE FUNCTIONS REQUIRE OPENCV.

Typedef Documentation

◆ AtpList

typedef std::vector< std::shared_ptr<AutoTiePoint> > ATP::AtpList

Definition at line 137 of file AutoTiePoint.h.

Function Documentation

◆ convertToIpl()

IplImage * ATP::convertToIpl ( const ossimImageData data)

Converts an ossimImageData pointer to an IplImage for use in OpenCV.

Warning: This function allocates memory, all non-null pointers should be free'd using cvReleaseImage.

Definition at line 25 of file AtpOpenCV.cpp.

References CFATAL, CWARN, ossimImageData::getBuf(), ossimImageData::getHeight(), ossimImageData::getNumberOfBands(), ossimImageData::getWidth(), IPL_PIXEL_DEPTH, NUM_BYTES_PER_PIXEL, PIXEL_TYPE, and y.

Referenced by convertToIpl32(), ATP::ossimCorrelationSource::findFeatures(), and ATP::ossimDescriptorSource::getTile().

26 {
27  IplImage *ret=NULL;
28  int numbytes;
29 
30  if(data==NULL)
31  {
32  CWARN<<"convertToIpl::Invalid data ptr."<<endl;;
33  return ret;
34  }
35 
36  //const unsigned char *dataptr = data->getUcharBuf();
37  const PIXEL_TYPE *dataptr = (PIXEL_TYPE*) data->getBuf();
38  if (!dataptr)
39  {
40  CFATAL<<"convertToIpl::ERROR getting the image data! bands/depth not supported"<<endl;
41  return ret;
42  }
43 
44  unsigned int numBands = data->getNumberOfBands();
45  numbytes = NUM_BYTES_PER_PIXEL;
46  if(numBands==1)
47  {
48  //numbytes=1;
49  //numbytes=2;
50  }
51  else
52  {
53  // TODO COLOR IMAGES DON"T WORK RIGHT NOW
54  numbytes=3;
55  // Going to use the function (CvtPlaneToPix(IplImage*src0,src1,src2,src3,dst))
56  CFATAL<<"convertToIpl -- ERROR: multiband feature detection not implemented yet!"<<endl;
57  return ret;
58  }
59 
60  ret = cvCreateImage(cvSize(data->getWidth(), data->getHeight()),IPL_PIXEL_DEPTH, (int)numBands);
61  if(ret)
62  {
63  // <COPY IMAGE INTO IPLIMAGE STRUCTURE IN ALIGNED FORMAT>
64  int lines=data->getHeight();
65  for(int y=0;y<lines;y++)
66  {
67  memcpy(&ret->imageData[y*ret->widthStep],&dataptr[y*ret->width],ret->width*numbytes);
68  }
69  }
70  else
71  {
72  CFATAL<<"convertToIpl::ERROR creating IplImage."<<endl;
73  }
74  return ret;
75 }
virtual ossim_uint32 getWidth() const
virtual ossim_uint32 getNumberOfBands() const
ossim_uint32 y
#define IPL_PIXEL_DEPTH
Definition: AtpOpenCV.cpp:16
virtual ossim_uint32 getHeight() const
#define PIXEL_TYPE
Definition: AtpOpenCV.cpp:17
#define NUM_BYTES_PER_PIXEL
Definition: AtpOpenCV.cpp:18
virtual const void * getBuf() const
#define CFATAL
#define CWARN

◆ convertToIpl32()

IplImage * ATP::convertToIpl32 ( const ossimImageData data)

Definition at line 77 of file AtpOpenCV.cpp.

References convertToIpl().

Referenced by ATP::ossimCorrelationSource::OpenCVCorrelation().

78 {
79  IplImage *indata,*ret32bit;
80  CvSize dim;
81  indata=convertToIpl(data);
82  dim.height=indata->height;
83  dim.width=indata->width;
84  ret32bit=cvCreateImage(dim,IPL_DEPTH_32F,indata->nChannels);
85  cvConvert(indata,ret32bit);
86  cvReleaseImage(&indata);
87  return ret32bit;
88 }
IplImage * convertToIpl(const ossimImageData *data)
Converts an ossimImageData pointer to an IplImage for use in OpenCV.
Definition: AtpOpenCV.cpp:25

◆ copyIpl32ToOid()

void ATP::copyIpl32ToOid ( IplImage *  ipl,
ossimImageData oid 
)

Definition at line 90 of file AtpOpenCV.cpp.

References copyIplToOid(), and IPL_PIXEL_DEPTH.

Referenced by ATP::ossimCorrelationSource::OpenCVCorrelation().

91 {
92  //IplImage *tmp8bit;
93  IplImage *indata;
94  CvSize dim;
95  dim.height=ipl->height;
96  dim.width=ipl->width;
97  indata=cvCreateImage(dim,IPL_PIXEL_DEPTH,ipl->nChannels);
98  cvConvert(ipl,indata);
99  copyIplToOid(indata, oid);
100 }
#define IPL_PIXEL_DEPTH
Definition: AtpOpenCV.cpp:16
void copyIplToOid(IplImage *ipl, ossimImageData *oid)
Converts an IPL image to an ossimImageData object:
Definition: AtpOpenCV.cpp:102

◆ copyIplToOid()

void ATP::copyIplToOid ( IplImage *  ipl,
ossimImageData oid 
)

Converts an IPL image to an ossimImageData object:

Definition at line 102 of file AtpOpenCV.cpp.

References ossimImageData::getBuf(), ossimImageData::getHeight(), ossimImageData::getWidth(), NUM_BYTES_PER_PIXEL, PIXEL_TYPE, and y.

Referenced by copyIpl32ToOid().

103 {
104  const PIXEL_TYPE *iplptr = (const PIXEL_TYPE*) ipl->imageData;
105  PIXEL_TYPE* oidptr = (PIXEL_TYPE*)oid->getBuf();
106  int numbytes = NUM_BYTES_PER_PIXEL; // num bytes per sample
107  for(unsigned int y=0;y<oid->getHeight();y++)
108  {
109  memcpy(&(oidptr[y*oid->getWidth()]),&iplptr[y*ipl->widthStep],oid->getWidth()*numbytes);
110  }
111 }
virtual ossim_uint32 getWidth() const
ossim_uint32 y
virtual ossim_uint32 getHeight() const
#define PIXEL_TYPE
Definition: AtpOpenCV.cpp:17
#define NUM_BYTES_PER_PIXEL
Definition: AtpOpenCV.cpp:18
virtual const void * getBuf() const