00001 #ifndef _HOMOGRAPHY_IMAGEGRADIENTS_HPP_
00002 #define _HOMOGRAPHY_IMAGEGRADIENTS_HPP_
00003
00004 #include <image/Image.hpp>
00005
00006 namespace jafar {
00007
00008 namespace homography {
00009
00010 class ImageGradients {
00011 public:
00012 ImageGradients(const jafar::image::Image& source, double derivationSigma = 1.0);
00013 inline void sampleGx(jafar::image::Image& dst, float x, float y) const
00014 {
00015 cvGetRectSubPix(m_imggx, dst, cvPoint2D32f(x,y));
00016 }
00017 inline void sampleGy(jafar::image::Image& dst, float x, float y) const
00018 {
00019 cvGetRectSubPix(m_imggy, dst, cvPoint2D32f(x,y));
00020 }
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 inline const float* gx(int x, int y) const
00038 {
00039 return reinterpret_cast<const float*>(m_imggx.data(y)) + x;
00040 }
00041 inline const float* gy(int x, int y) const
00042 {
00043 return reinterpret_cast<const float*>(m_imggy.data(y)) + x;
00044 }
00045 public:
00046 jafar::image::Image m_imggx, m_imggy;
00047 };
00048
00049 }
00050
00051 }
00052
00053 #endif