Commit 6983774d authored by Vladislav Sovrasov's avatar Vladislav Sovrasov

reg: use IOArrays in public API

parent 81049548
...@@ -136,7 +136,7 @@ public: ...@@ -136,7 +136,7 @@ public:
* \param[in] img1 Original image * \param[in] img1 Original image
* \param[out] img2 Warped image * \param[out] img2 Warped image
*/ */
virtual void warp(const cv::Mat& img1, cv::Mat& img2) const; virtual void warp(InputArray img1, OutputArray img2) const;
/*! /*!
* Warps image to a new coordinate frame. The calculation is img2(x)=img1(T(x)), so in fact * Warps image to a new coordinate frame. The calculation is img2(x)=img1(T(x)), so in fact
...@@ -145,7 +145,7 @@ public: ...@@ -145,7 +145,7 @@ public:
* \param[in] img1 Original image * \param[in] img1 Original image
* \param[out] img2 Warped image * \param[out] img2 Warped image
*/ */
virtual void inverseWarp(const cv::Mat& img1, cv::Mat& img2) const = 0; virtual void inverseWarp(InputArray img1, OutputArray img2) const = 0;
/*! /*!
* Calculates the inverse map * Calculates the inverse map
......
...@@ -69,7 +69,7 @@ public: ...@@ -69,7 +69,7 @@ public:
*/ */
~MapAffine(void); ~MapAffine(void);
void inverseWarp(const cv::Mat& img1, cv::Mat& img2) const; void inverseWarp(InputArray img1, OutputArray img2) const;
cv::Ptr<Map> inverseMap(void) const; cv::Ptr<Map> inverseMap(void) const;
......
...@@ -63,7 +63,7 @@ public: ...@@ -63,7 +63,7 @@ public:
* \param[in,out] res Map from img1 to img2, stored in a smart pointer. If present as input, * \param[in,out] res Map from img1 to img2, stored in a smart pointer. If present as input,
* it is an initial rough estimation that the mapper will try to refine. * it is an initial rough estimation that the mapper will try to refine.
*/ */
virtual void calculate(const cv::Mat& img1, const cv::Mat& img2, cv::Ptr<Map>& res) const = 0; virtual void calculate(InputArray img1, InputArray img2, cv::Ptr<Map>& res) const = 0;
/* /*
* Returns a map compatible with the Mapper class * Returns a map compatible with the Mapper class
......
...@@ -55,7 +55,7 @@ public: ...@@ -55,7 +55,7 @@ public:
MapperGradAffine(void); MapperGradAffine(void);
~MapperGradAffine(void); ~MapperGradAffine(void);
virtual void calculate(const cv::Mat& img1, const cv::Mat& img2, cv::Ptr<Map>& res) const; virtual void calculate(InputArray img1, InputArray img2, cv::Ptr<Map>& res) const;
cv::Ptr<Map> getMap(void) const; cv::Ptr<Map> getMap(void) const;
}; };
......
...@@ -55,7 +55,7 @@ public: ...@@ -55,7 +55,7 @@ public:
MapperGradEuclid(void); MapperGradEuclid(void);
~MapperGradEuclid(void); ~MapperGradEuclid(void);
virtual void calculate(const cv::Mat& img1, const cv::Mat& img2, cv::Ptr<Map>& res) const; virtual void calculate(InputArray img1, InputArray img2, cv::Ptr<Map>& res) const;
cv::Ptr<Map> getMap(void) const; cv::Ptr<Map> getMap(void) const;
}; };
......
...@@ -55,7 +55,7 @@ public: ...@@ -55,7 +55,7 @@ public:
MapperGradProj(void); MapperGradProj(void);
~MapperGradProj(void); ~MapperGradProj(void);
virtual void calculate(const cv::Mat& img1, const cv::Mat& img2, cv::Ptr<Map>& res) const; virtual void calculate(InputArray img1, InputArray img2, cv::Ptr<Map>& res) const;
cv::Ptr<Map> getMap(void) const; cv::Ptr<Map> getMap(void) const;
}; };
......
...@@ -55,7 +55,7 @@ public: ...@@ -55,7 +55,7 @@ public:
MapperGradShift(void); MapperGradShift(void);
virtual ~MapperGradShift(void); virtual ~MapperGradShift(void);
virtual void calculate(const cv::Mat& img1, const cv::Mat& img2, cv::Ptr<Map>& res) const; virtual void calculate(InputArray img1, InputArray img2, cv::Ptr<Map>& res) const;
cv::Ptr<Map> getMap(void) const; cv::Ptr<Map> getMap(void) const;
}; };
......
...@@ -55,7 +55,7 @@ public: ...@@ -55,7 +55,7 @@ public:
MapperGradSimilar(void); MapperGradSimilar(void);
~MapperGradSimilar(void); ~MapperGradSimilar(void);
virtual void calculate(const cv::Mat& img1, const cv::Mat& img2, cv::Ptr<Map>& res) const; virtual void calculate(InputArray img1, InputArray img2, cv::Ptr<Map>& res) const;
cv::Ptr<Map> getMap(void) const; cv::Ptr<Map> getMap(void) const;
}; };
......
...@@ -59,7 +59,7 @@ public: ...@@ -59,7 +59,7 @@ public:
*/ */
MapperPyramid(const Mapper& baseMapper); MapperPyramid(const Mapper& baseMapper);
void calculate(const cv::Mat& img1, const cv::Mat& img2, cv::Ptr<Map>& res) const; void calculate(InputArray img1, InputArray img2, cv::Ptr<Map>& res) const;
cv::Ptr<Map> getMap(void) const; cv::Ptr<Map> getMap(void) const;
......
...@@ -69,7 +69,7 @@ public: ...@@ -69,7 +69,7 @@ public:
*/ */
~MapProjec(void); ~MapProjec(void);
void inverseWarp(const cv::Mat& img1, cv::Mat& img2) const; void inverseWarp(InputArray img1, OutputArray img2) const;
cv::Ptr<Map> inverseMap(void) const; cv::Ptr<Map> inverseMap(void) const;
......
...@@ -69,7 +69,7 @@ public: ...@@ -69,7 +69,7 @@ public:
*/ */
~MapShift(void); ~MapShift(void);
void inverseWarp(const cv::Mat& img1, cv::Mat& img2) const; void inverseWarp(InputArray img1, OutputArray img2) const;
cv::Ptr<Map> inverseMap(void) const; cv::Ptr<Map> inverseMap(void) const;
......
...@@ -49,7 +49,7 @@ Map::~Map(void) ...@@ -49,7 +49,7 @@ Map::~Map(void)
} }
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
void Map::warp(const Mat& img1, Mat& img2) const void Map::warp(InputArray img1, OutputArray img2) const
{ {
Ptr<Map> invMap(inverseMap()); Ptr<Map> invMap(inverseMap());
invMap->inverseWarp(img1, img2); invMap->inverseWarp(img1, img2);
......
...@@ -62,8 +62,9 @@ MapAffine::~MapAffine(void) ...@@ -62,8 +62,9 @@ MapAffine::~MapAffine(void)
} }
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
void MapAffine::inverseWarp(const Mat& img1, Mat& img2) const void MapAffine::inverseWarp(InputArray _img1, OutputArray img2) const
{ {
Mat img1 = _img1.getMat();
// Rows and columns in destination // Rows and columns in destination
Mat dest_r, dest_c; Mat dest_r, dest_c;
dest_r.create(img1.size(), CV_32FC1); dest_r.create(img1.size(), CV_32FC1);
......
...@@ -56,9 +56,9 @@ MapperGradAffine::~MapperGradAffine(void) ...@@ -56,9 +56,9 @@ MapperGradAffine::~MapperGradAffine(void)
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
void MapperGradAffine::calculate( void MapperGradAffine::calculate(InputArray _img1, InputArray image2, cv::Ptr<Map>& res) const
const cv::Mat& img1, const cv::Mat& image2, cv::Ptr<Map>& res) const
{ {
Mat img1 = _img1.getMat();
Mat gradx, grady, imgDiff; Mat gradx, grady, imgDiff;
Mat img2; Mat img2;
...@@ -70,7 +70,7 @@ void MapperGradAffine::calculate( ...@@ -70,7 +70,7 @@ void MapperGradAffine::calculate(
// We have initial values for the registration: we move img2 to that initial reference // We have initial values for the registration: we move img2 to that initial reference
res->inverseWarp(image2, img2); res->inverseWarp(image2, img2);
} else { } else {
img2 = image2; img2 = image2.getMat();
} }
// Get gradient in all channels // Get gradient in all channels
......
...@@ -57,8 +57,9 @@ MapperGradEuclid::~MapperGradEuclid(void) ...@@ -57,8 +57,9 @@ MapperGradEuclid::~MapperGradEuclid(void)
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
void MapperGradEuclid::calculate( void MapperGradEuclid::calculate(
const cv::Mat& img1, const cv::Mat& image2, cv::Ptr<Map>& res) const InputArray _img1, InputArray image2, cv::Ptr<Map>& res) const
{ {
Mat img1 = _img1.getMat();
Mat gradx, grady, imgDiff; Mat gradx, grady, imgDiff;
Mat img2; Mat img2;
...@@ -70,7 +71,7 @@ void MapperGradEuclid::calculate( ...@@ -70,7 +71,7 @@ void MapperGradEuclid::calculate(
// We have initial values for the registration: we move img2 to that initial reference // We have initial values for the registration: we move img2 to that initial reference
res->inverseWarp(image2, img2); res->inverseWarp(image2, img2);
} else { } else {
img2 = image2; img2 = image2.getMat();
} }
// Matrices with reference frame coordinates // Matrices with reference frame coordinates
......
...@@ -57,8 +57,9 @@ MapperGradProj::~MapperGradProj(void) ...@@ -57,8 +57,9 @@ MapperGradProj::~MapperGradProj(void)
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
void MapperGradProj::calculate( void MapperGradProj::calculate(
const cv::Mat& img1, const cv::Mat& image2, cv::Ptr<Map>& res) const InputArray _img1, InputArray image2, cv::Ptr<Map>& res) const
{ {
Mat img1 = _img1.getMat();
Mat gradx, grady, imgDiff; Mat gradx, grady, imgDiff;
Mat img2; Mat img2;
...@@ -70,7 +71,7 @@ void MapperGradProj::calculate( ...@@ -70,7 +71,7 @@ void MapperGradProj::calculate(
// We have initial values for the registration: we move img2 to that initial reference // We have initial values for the registration: we move img2 to that initial reference
res->inverseWarp(image2, img2); res->inverseWarp(image2, img2);
} else { } else {
img2 = image2; img2 = image2.getMat();
} }
// Get gradient in all channels // Get gradient in all channels
......
...@@ -57,8 +57,9 @@ MapperGradShift::~MapperGradShift(void) ...@@ -57,8 +57,9 @@ MapperGradShift::~MapperGradShift(void)
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
void MapperGradShift::calculate( void MapperGradShift::calculate(
const cv::Mat& img1, const cv::Mat& image2, cv::Ptr<Map>& res) const InputArray _img1, InputArray image2, cv::Ptr<Map>& res) const
{ {
Mat img1 = _img1.getMat();
Mat gradx, grady, imgDiff; Mat gradx, grady, imgDiff;
Mat img2; Mat img2;
...@@ -68,7 +69,7 @@ void MapperGradShift::calculate( ...@@ -68,7 +69,7 @@ void MapperGradShift::calculate(
// We have initial values for the registration: we move img2 to that initial reference // We have initial values for the registration: we move img2 to that initial reference
res->inverseWarp(image2, img2); res->inverseWarp(image2, img2);
} else { } else {
img2 = image2; img2 = image2.getMat();
} }
// Get gradient in all channels // Get gradient in all channels
......
...@@ -57,8 +57,9 @@ MapperGradSimilar::~MapperGradSimilar(void) ...@@ -57,8 +57,9 @@ MapperGradSimilar::~MapperGradSimilar(void)
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
void MapperGradSimilar::calculate( void MapperGradSimilar::calculate(
const cv::Mat& img1, const cv::Mat& image2, cv::Ptr<Map>& res) const InputArray _img1, InputArray image2, cv::Ptr<Map>& res) const
{ {
Mat img1 = _img1.getMat();
Mat gradx, grady, imgDiff; Mat gradx, grady, imgDiff;
Mat img2; Mat img2;
...@@ -70,7 +71,7 @@ void MapperGradSimilar::calculate( ...@@ -70,7 +71,7 @@ void MapperGradSimilar::calculate(
// We have initial values for the registration: we move img2 to that initial reference // We have initial values for the registration: we move img2 to that initial reference
res->inverseWarp(image2, img2); res->inverseWarp(image2, img2);
} else { } else {
img2 = image2; img2 = image2.getMat();
} }
// Get gradient in all channels // Get gradient in all channels
......
...@@ -54,8 +54,9 @@ MapperPyramid::MapperPyramid(const Mapper& baseMapper) ...@@ -54,8 +54,9 @@ MapperPyramid::MapperPyramid(const Mapper& baseMapper)
} }
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
void MapperPyramid::calculate(const Mat& img1, const Mat& image2, Ptr<Map>& res) const void MapperPyramid::calculate(InputArray _img1, InputArray image2, Ptr<Map>& res) const
{ {
Mat img1 = _img1.getMat();
Mat img2; Mat img2;
if(!res.empty()) { if(!res.empty()) {
...@@ -63,7 +64,7 @@ void MapperPyramid::calculate(const Mat& img1, const Mat& image2, Ptr<Map>& res) ...@@ -63,7 +64,7 @@ void MapperPyramid::calculate(const Mat& img1, const Mat& image2, Ptr<Map>& res)
res->inverseWarp(image2, img2); res->inverseWarp(image2, img2);
} else { } else {
res = baseMapper_.getMap(); res = baseMapper_.getMap();
img2 = image2; img2 = image2.getMat();
} }
cv::Ptr<Map> ident = baseMapper_.getMap(); cv::Ptr<Map> ident = baseMapper_.getMap();
......
...@@ -62,8 +62,9 @@ MapProjec::~MapProjec(void) ...@@ -62,8 +62,9 @@ MapProjec::~MapProjec(void)
} }
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
void MapProjec::inverseWarp(const Mat& img1, Mat& img2) const void MapProjec::inverseWarp(InputArray _img1, OutputArray img2) const
{ {
Mat img1 = _img1.getMat();
// Rows and columns in destination // Rows and columns in destination
Mat dest_r, dest_c; Mat dest_r, dest_c;
dest_r.create(img1.size(), CV_32FC1); dest_r.create(img1.size(), CV_32FC1);
......
...@@ -61,8 +61,9 @@ MapShift::~MapShift(void) ...@@ -61,8 +61,9 @@ MapShift::~MapShift(void)
} }
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
void MapShift::inverseWarp(const Mat& img1, Mat& img2) const void MapShift::inverseWarp(InputArray _img1, OutputArray img2) const
{ {
Mat img1 = _img1.getMat();
// Rows and columns in destination // Rows and columns in destination
Mat dest_r, dest_c; Mat dest_r, dest_c;
dest_r.create(img1.size(), CV_32FC1); dest_r.create(img1.size(), CV_32FC1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment