From 0442bca235b9b6d9f4da79f1239a3aed50a14a2b Mon Sep 17 00:00:00 2001 From: Andrey Kamaev Date: Tue, 16 Oct 2012 19:37:12 +0400 Subject: [PATCH] Revert "partially recovered binary compatibility (ticket #2415)" This reverts commit 94b97b7a631abb1f42b4f66cfc7149e6e46203c8. --- .../contrib/detection_based_tracker.hpp | 7 +- .../contrib/src/detection_based_tracker.cpp | 63 ++++++----- modules/core/include/opencv2/core/core.hpp | 16 +-- .../include/opencv2/core/opengl_interop.hpp | 2 +- modules/core/src/command_line_parser.cpp | 106 +++++++----------- modules/core/src/convert.cpp | 10 -- modules/core/src/drawing.cpp | 2 +- modules/core/src/opengl_interop.cpp | 4 +- .../include/opencv2/imgproc/imgproc.hpp | 4 +- modules/imgproc/src/phasecorr.cpp | 4 - .../include/opencv2/videostab/deblurring.hpp | 6 +- 11 files changed, 86 insertions(+), 138 deletions(-) diff --git a/modules/contrib/include/opencv2/contrib/detection_based_tracker.hpp b/modules/contrib/include/opencv2/contrib/detection_based_tracker.hpp index c29031803..332a8290d 100644 --- a/modules/contrib/include/opencv2/contrib/detection_based_tracker.hpp +++ b/modules/contrib/include/opencv2/contrib/detection_based_tracker.hpp @@ -7,6 +7,8 @@ #include +namespace cv +{ class DetectionBasedTracker { public: @@ -167,10 +169,5 @@ class DetectionBasedTracker cv::Rect calcTrackedObjectPositionToShow(int i, ObjectStatus& status) const; void detectInRegion(const cv::Mat& img, const cv::Rect& r, std::vector& detectedObjectsInRegions); }; - -namespace cv -{ - typedef ::DetectionBasedTracker DetectionBasedTracker; - } //end of cv namespace #endif diff --git a/modules/contrib/src/detection_based_tracker.cpp b/modules/contrib/src/detection_based_tracker.cpp index 28606d5be..238ac5c3e 100644 --- a/modules/contrib/src/detection_based_tracker.cpp +++ b/modules/contrib/src/detection_based_tracker.cpp @@ -60,12 +60,15 @@ static inline cv::Rect scale_rect(const cv::Rect& r, float scale) return cv::Rect(x, y, cvRound(width), cvRound(height)); } -void* workcycleObjectDetectorFunction(void* p); +namespace cv +{ + void* workcycleObjectDetectorFunction(void* p); +} -class DetectionBasedTracker::SeparateDetectionWork +class cv::DetectionBasedTracker::SeparateDetectionWork { public: - SeparateDetectionWork(DetectionBasedTracker& _detectionBasedTracker, cv::Ptr _detector); + SeparateDetectionWork(cv::DetectionBasedTracker& _detectionBasedTracker, cv::Ptr _detector); virtual ~SeparateDetectionWork(); bool communicateWithDetectingThread(const Mat& imageGray, vector& rectsWhereRegions); bool run(); @@ -116,7 +119,7 @@ class DetectionBasedTracker::SeparateDetectionWork long long timeWhenDetectingThreadStartedWork; }; -DetectionBasedTracker::SeparateDetectionWork::SeparateDetectionWork(DetectionBasedTracker& _detectionBasedTracker, cv::Ptr _detector) +cv::DetectionBasedTracker::SeparateDetectionWork::SeparateDetectionWork(DetectionBasedTracker& _detectionBasedTracker, cv::Ptr _detector) :detectionBasedTracker(_detectionBasedTracker), cascadeInThread(), isObjectDetectingReady(false), @@ -149,7 +152,7 @@ DetectionBasedTracker::SeparateDetectionWork::SeparateDetectionWork(DetectionBas } } -DetectionBasedTracker::SeparateDetectionWork::~SeparateDetectionWork() +cv::DetectionBasedTracker::SeparateDetectionWork::~SeparateDetectionWork() { if(stateThread!=STATE_THREAD_STOPPED) { LOGE("\n\n\nATTENTION!!! dangerous algorithm error: destructor DetectionBasedTracker::DetectionBasedTracker::~SeparateDetectionWork is called before stopping the workthread"); @@ -159,7 +162,7 @@ DetectionBasedTracker::SeparateDetectionWork::~SeparateDetectionWork() pthread_cond_destroy(&objectDetectorRun); pthread_mutex_destroy(&mutex); } -bool DetectionBasedTracker::SeparateDetectionWork::run() +bool cv::DetectionBasedTracker::SeparateDetectionWork::run() { LOGD("DetectionBasedTracker::SeparateDetectionWork::run() --- start"); pthread_mutex_lock(&mutex); @@ -208,18 +211,18 @@ do { } while(0) #endif -void* workcycleObjectDetectorFunction(void* p) +void* cv::workcycleObjectDetectorFunction(void* p) { - CATCH_ALL_AND_LOG({ ((DetectionBasedTracker::SeparateDetectionWork*)p)->workcycleObjectDetector(); }); + CATCH_ALL_AND_LOG({ ((cv::DetectionBasedTracker::SeparateDetectionWork*)p)->workcycleObjectDetector(); }); try{ - ((DetectionBasedTracker::SeparateDetectionWork*)p)->stateThread = DetectionBasedTracker::SeparateDetectionWork::STATE_THREAD_STOPPED; + ((cv::DetectionBasedTracker::SeparateDetectionWork*)p)->stateThread = cv::DetectionBasedTracker::SeparateDetectionWork::STATE_THREAD_STOPPED; } catch(...) { LOGE0("DetectionBasedTracker: workcycleObjectDetectorFunction: ERROR concerning pointer, received as the function parameter"); } return NULL; } -void DetectionBasedTracker::SeparateDetectionWork::workcycleObjectDetector() +void cv::DetectionBasedTracker::SeparateDetectionWork::workcycleObjectDetector() { static double freq = getTickFrequency(); LOGD("DetectionBasedTracker::SeparateDetectionWork::workcycleObjectDetector() --- start"); @@ -343,7 +346,7 @@ void DetectionBasedTracker::SeparateDetectionWork::workcycleObjectDetector() LOGI("DetectionBasedTracker::SeparateDetectionWork::workcycleObjectDetector: Returning"); } -void DetectionBasedTracker::SeparateDetectionWork::stop() +void cv::DetectionBasedTracker::SeparateDetectionWork::stop() { //FIXME: TODO: should add quickStop functionality pthread_mutex_lock(&mutex); @@ -360,7 +363,7 @@ void DetectionBasedTracker::SeparateDetectionWork::stop() pthread_mutex_unlock(&mutex); } -void DetectionBasedTracker::SeparateDetectionWork::resetTracking() +void cv::DetectionBasedTracker::SeparateDetectionWork::resetTracking() { LOGD("DetectionBasedTracker::SeparateDetectionWork::resetTracking"); pthread_mutex_lock(&mutex); @@ -381,7 +384,7 @@ void DetectionBasedTracker::SeparateDetectionWork::resetTracking() } -bool DetectionBasedTracker::SeparateDetectionWork::communicateWithDetectingThread(const Mat& imageGray, vector& rectsWhereRegions) +bool cv::DetectionBasedTracker::SeparateDetectionWork::communicateWithDetectingThread(const Mat& imageGray, vector& rectsWhereRegions) { static double freq = getTickFrequency(); @@ -431,13 +434,13 @@ bool DetectionBasedTracker::SeparateDetectionWork::communicateWithDetectingThrea return shouldHandleResult; } -DetectionBasedTracker::Parameters::Parameters() +cv::DetectionBasedTracker::Parameters::Parameters() { maxTrackLifetime=5; minDetectionPeriod=0; } -DetectionBasedTracker::InnerParameters::InnerParameters() +cv::DetectionBasedTracker::InnerParameters::InnerParameters() { numLastPositionsToTrack=4; numStepsToWaitBeforeFirstShow=6; @@ -450,7 +453,7 @@ DetectionBasedTracker::InnerParameters::InnerParameters() } -DetectionBasedTracker::DetectionBasedTracker(cv::Ptr mainDetector, cv::Ptr trackingDetector, const Parameters& params) +cv::DetectionBasedTracker::DetectionBasedTracker(cv::Ptr mainDetector, cv::Ptr trackingDetector, const Parameters& params) :separateDetectionWork(), parameters(params), innerParameters(), @@ -471,7 +474,7 @@ DetectionBasedTracker::DetectionBasedTracker(cv::Ptr mainDetector, cv weightsSizesSmoothing.push_back(0.2); } -DetectionBasedTracker::~DetectionBasedTracker() +cv::DetectionBasedTracker::~DetectionBasedTracker() { } @@ -544,7 +547,7 @@ void DetectionBasedTracker::process(const Mat& imageGray) updateTrackedObjects(detectedObjectsInRegions); } -void DetectionBasedTracker::getObjects(std::vector& result) const +void cv::DetectionBasedTracker::getObjects(std::vector& result) const { result.clear(); @@ -558,7 +561,7 @@ void DetectionBasedTracker::getObjects(std::vector& result) const } } -void DetectionBasedTracker::getObjects(std::vector& result) const +void cv::DetectionBasedTracker::getObjects(std::vector& result) const { result.clear(); @@ -571,7 +574,7 @@ void DetectionBasedTracker::getObjects(std::vector& result) const LOGD("DetectionBasedTracker::process: found a object with SIZE %d x %d, rect={%d, %d, %d x %d}", r.width, r.height, r.x, r.y, r.width, r.height); } } -void DetectionBasedTracker::getObjects(std::vector& result) const +void cv::DetectionBasedTracker::getObjects(std::vector& result) const { result.clear(); @@ -583,7 +586,7 @@ void DetectionBasedTracker::getObjects(std::vector& result) const } } -bool DetectionBasedTracker::run() +bool cv::DetectionBasedTracker::run() { if (!separateDetectionWork.empty()) { return separateDetectionWork->run(); @@ -591,14 +594,14 @@ bool DetectionBasedTracker::run() return false; } -void DetectionBasedTracker::stop() +void cv::DetectionBasedTracker::stop() { if (!separateDetectionWork.empty()) { separateDetectionWork->stop(); } } -void DetectionBasedTracker::resetTracking() +void cv::DetectionBasedTracker::resetTracking() { if (!separateDetectionWork.empty()) { separateDetectionWork->resetTracking(); @@ -606,7 +609,7 @@ void DetectionBasedTracker::resetTracking() trackedObjects.clear(); } -void DetectionBasedTracker::updateTrackedObjects(const vector& detectedObjects) +void cv::DetectionBasedTracker::updateTrackedObjects(const vector& detectedObjects) { enum { NEW_RECTANGLE=-1, @@ -727,7 +730,7 @@ void DetectionBasedTracker::updateTrackedObjects(const vector& detectedObj } } -int DetectionBasedTracker::addObject(const Rect& location) +int cv::DetectionBasedTracker::addObject(const Rect& location) { LOGD("DetectionBasedTracker::addObject: new object {%d, %d %dx%d}",location.x, location.y, location.width, location.height); trackedObjects.push_back(TrackedObject(location)); @@ -736,12 +739,12 @@ int DetectionBasedTracker::addObject(const Rect& location) return newId; } -Rect DetectionBasedTracker::calcTrackedObjectPositionToShow(int i) const +Rect cv::DetectionBasedTracker::calcTrackedObjectPositionToShow(int i) const { ObjectStatus status; return calcTrackedObjectPositionToShow(i, status); } -Rect DetectionBasedTracker::calcTrackedObjectPositionToShow(int i, ObjectStatus& status) const +Rect cv::DetectionBasedTracker::calcTrackedObjectPositionToShow(int i, ObjectStatus& status) const { if ( (i < 0) || (i >= (int)trackedObjects.size()) ) { LOGE("DetectionBasedTracker::calcTrackedObjectPositionToShow: ERROR: wrong i=%d", i); @@ -827,7 +830,7 @@ Rect DetectionBasedTracker::calcTrackedObjectPositionToShow(int i, ObjectStatus& return res; } -void DetectionBasedTracker::detectInRegion(const Mat& img, const Rect& r, vector& detectedObjectsInRegions) +void cv::DetectionBasedTracker::detectInRegion(const Mat& img, const Rect& r, vector& detectedObjectsInRegions) { Rect r0(Point(), img.size()); Rect r1 = scale_rect(r, innerParameters.coeffTrackingWindowSize); @@ -864,7 +867,7 @@ void DetectionBasedTracker::detectInRegion(const Mat& img, const Rect& r, vector } } -bool DetectionBasedTracker::setParameters(const Parameters& params) +bool cv::DetectionBasedTracker::setParameters(const Parameters& params) { if ( params.maxTrackLifetime < 0 ) { @@ -882,7 +885,7 @@ bool DetectionBasedTracker::setParameters(const Parameters& params) return true; } -const DetectionBasedTracker::Parameters& DetectionBasedTracker::getParameters() const +const cv::DetectionBasedTracker::Parameters& DetectionBasedTracker::getParameters() const { return parameters; } diff --git a/modules/core/include/opencv2/core/core.hpp b/modules/core/include/opencv2/core/core.hpp index 17bc065f1..5ba8a6389 100644 --- a/modules/core/include/opencv2/core/core.hpp +++ b/modules/core/include/opencv2/core/core.hpp @@ -2139,15 +2139,11 @@ CV_EXPORTS_W void reduce(InputArray src, OutputArray dst, int dim, int rtype, in //! makes multi-channel array out of several single-channel arrays CV_EXPORTS void merge(const Mat* mv, size_t count, OutputArray dst); -CV_EXPORTS void merge(const vector& mv, OutputArray dst ); - //! makes multi-channel array out of several single-channel arrays CV_EXPORTS_W void merge(InputArrayOfArrays mv, OutputArray dst); //! copies each plane of a multi-channel array to a dedicated array CV_EXPORTS void split(const Mat& src, Mat* mvbegin); -CV_EXPORTS void split(const Mat& src, vector& mv ); - //! copies each plane of a multi-channel array to a dedicated array CV_EXPORTS_W void split(InputArray m, OutputArrayOfArrays mv); @@ -2566,7 +2562,7 @@ CV_EXPORTS_W void fillPoly(InputOutputArray img, InputArrayOfArrays pts, Point offset=Point() ); //! draws one or more polygonal curves -CV_EXPORTS void polylines(Mat& img, const Point** pts, const int* npts, +CV_EXPORTS void polylines(Mat& img, const Point* const* pts, const int* npts, int ncontours, bool isClosed, const Scalar& color, int thickness=1, int lineType=8, int shift=0 ); @@ -4014,7 +4010,7 @@ public: //! closes the file and releases all the memory buffers CV_WRAP virtual void release(); //! closes the file, releases all the memory buffers and returns the text string - CV_WRAP string releaseAndGetString(); + CV_WRAP virtual string releaseAndGetString(); //! returns the first element of the top-level mapping CV_WRAP FileNode getFirstTopLevelNode() const; @@ -4557,7 +4553,6 @@ template<> struct ParamType class CV_EXPORTS CommandLineParser { public: - CommandLineParser(int argc, const char* const argv[], const char* keys); CommandLineParser(int argc, const char* const argv[], const string& keys); CommandLineParser(const CommandLineParser& parser); CommandLineParser& operator = (const CommandLineParser& parser); @@ -4579,18 +4574,17 @@ public: getByIndex(index, space_delete, ParamType::type, (void*)&val); return val; } - - bool has(const string& name); + + bool has(const string& name) const; + bool check() const; void about(const string& message); void printMessage() const; void printErrors() const; - void printParams(); protected: - string getString(const string& name); void getByName(const string& name, bool space_delete, int type, void* dst) const; void getByIndex(int index, bool space_delete, int type, void* dst) const; diff --git a/modules/core/include/opencv2/core/opengl_interop.hpp b/modules/core/include/opencv2/core/opengl_interop.hpp index d680d8297..c039a1f31 100644 --- a/modules/core/include/opencv2/core/opengl_interop.hpp +++ b/modules/core/include/opencv2/core/opengl_interop.hpp @@ -221,7 +221,7 @@ public: static Ptr get(const std::string& family, int height = 12, Weight weight = WEIGHT_NORMAL, Style style = STYLE_NORMAL); - void draw(const char* str, int len) const; + void draw(const char* str, size_t len) const; inline const std::string& family() const { return family_; } inline int height() const { return height_; } diff --git a/modules/core/src/command_line_parser.cpp b/modules/core/src/command_line_parser.cpp index b83a89902..840bf8162 100644 --- a/modules/core/src/command_line_parser.cpp +++ b/modules/core/src/command_line_parser.cpp @@ -27,12 +27,9 @@ struct CommandLineParser::Impl vector data; - Impl() { refcount = 1; } - Impl(int argc, const char* const argv[], const char* keys); - vector split_range_string(const string& str, char fs, char ss) const; vector split_string(const string& str, char symbol = ' ', bool create_empty_item = false) const; - string trim_spaces(const string& str) const; + string cat_string(const string& str) const; void apply_params(const string& key, const string& value); void apply_params(int i, string value); @@ -86,39 +83,26 @@ static void from_str(const string& str, int type, void* dst) } } -string CommandLineParser::getString(const string& name) -{ - for (size_t i = 0; i < impl->data.size(); i++) - { - for (size_t j = 0; j < impl->data[i].keys.size(); j++) - { - if (name.compare(impl->data[i].keys[j]) == 0) - { - string v = impl->data[i].def_value; - return v; - } - } - } - return string(); -} - void CommandLineParser::getByName(const string& name, bool space_delete, int type, void* dst) const { try { - string v = ((CommandLineParser*)this)->getString(name); - if( v.empty() ) + for (size_t i = 0; i < impl->data.size(); i++) { - impl->error = true; - impl->error_message += "Unknown parametes " + name + "\n"; - } - else - { - if (space_delete) - v = impl->trim_spaces(v); - from_str(v, type, dst); - return; + for (size_t j = 0; j < impl->data[i].keys.size(); j++) + { + if (name.compare(impl->data[i].keys[j]) == 0) + { + string v = impl->data[i].def_value; + if (space_delete) + v = impl->cat_string(v); + from_str(v, type, dst); + return; + } + } } + impl->error = true; + impl->error_message += "Unknown parametes " + name + "\n"; } catch (std::exception& e) { @@ -137,7 +121,7 @@ void CommandLineParser::getByIndex(int index, bool space_delete, int type, void* if (impl->data[i].number == index) { string v = impl->data[i].def_value; - if (space_delete == true) v = impl->trim_spaces(v); + if (space_delete == true) v = impl->cat_string(v); from_str(v, type, dst); return; } @@ -170,45 +154,36 @@ static bool cmp_params(const CommandLineParserParams & p1, const CommandLinePars CommandLineParser::CommandLineParser(int argc, const char* const argv[], const string& keys) { - impl = new Impl(argc, argv, keys.c_str()); -} - -CommandLineParser::CommandLineParser(int argc, const char* const argv[], const char* keys) -{ - impl = new Impl(argc, argv, keys); -} - -CommandLineParser::Impl::Impl(int argc, const char* const argv[], const char* keys) -{ - refcount = 1; + impl = new Impl; + impl->refcount = 1; // path to application size_t pos_s = string(argv[0]).find_last_of("/\\"); if (pos_s == string::npos) { - path_to_app = ""; - app_name = string(argv[0]); + impl->path_to_app = ""; + impl->app_name = string(argv[0]); } else { - path_to_app = string(argv[0]).substr(0, pos_s); - app_name = string(argv[0]).substr(pos_s + 1, string(argv[0]).length() - pos_s); + impl->path_to_app = string(argv[0]).substr(0, pos_s); + impl->app_name = string(argv[0]).substr(pos_s + 1, string(argv[0]).length() - pos_s); } - error = false; - error_message = ""; + impl->error = false; + impl->error_message = ""; // parse keys - vector k = split_range_string(keys, '{', '}'); + vector k = impl->split_range_string(keys, '{', '}'); int jj = 0; for (size_t i = 0; i < k.size(); i++) { - vector l = split_string(k[i], '|', true); + vector l = impl->split_string(k[i], '|', true); CommandLineParserParams p; - p.keys = split_string(l[0]); + p.keys = impl->split_string(l[0]); p.def_value = l[1]; - p.help_message = trim_spaces(l[2]); + p.help_message = impl->cat_string(l[2]); p.number = -1; if (p.keys[0][0] == '@') { @@ -216,7 +191,7 @@ CommandLineParser::Impl::Impl(int argc, const char* const argv[], const char* ke jj++; } - data.push_back(p); + impl->data.push_back(p); } // parse argv @@ -227,13 +202,13 @@ CommandLineParser::Impl::Impl(int argc, const char* const argv[], const char* ke if (s.find('=') != string::npos && s.find('=') < s.length()) { - vector k_v = split_string(s, '=', true); + vector k_v = impl->split_string(s, '=', true); for (int h = 0; h < 2; h++) { if (k_v[0][0] == '-') k_v[0] = k_v[0].substr(1, k_v[0].length() -1); } - apply_params(k_v[0], k_v[1]); + impl->apply_params(k_v[0], k_v[1]); } else if (s.length() > 1 && s[0] == '-') { @@ -242,16 +217,16 @@ CommandLineParser::Impl::Impl(int argc, const char* const argv[], const char* ke if (s[0] == '-') s = s.substr(1, s.length() - 1); } - apply_params(s, "true"); + impl->apply_params(s, "true"); } else if (s[0] != '-') { - apply_params(jj, s); + impl->apply_params(jj, s); jj++; } } - sort_params(); + impl->sort_params(); } @@ -315,7 +290,7 @@ void CommandLineParser::Impl::sort_params() sort (data.begin(), data.end(), cmp_params); } -string CommandLineParser::Impl::trim_spaces(const string& str) const +string CommandLineParser::Impl::cat_string(const string& str) const { int left = 0, right = (int)str.length(); while( left <= right && str[left] == ' ' ) @@ -330,7 +305,7 @@ string CommandLineParser::getPathToApplication() const return impl->path_to_app; } -bool CommandLineParser::has(const string& name) +bool CommandLineParser::has(const string& name) const { for (size_t i = 0; i < impl->data.size(); i++) { @@ -358,11 +333,6 @@ void CommandLineParser::printErrors() const } } -void CommandLineParser::printParams() -{ - printMessage(); -} - void CommandLineParser::printMessage() const { if (impl->about_message != "") @@ -404,7 +374,7 @@ void CommandLineParser::printMessage() const std::cout << ", "; } } - string dv = impl->trim_spaces(impl->data[i].def_value); + string dv = impl->cat_string(impl->data[i].def_value); if (dv.compare("") != 0) { std::cout << " (value:" << dv << ")"; @@ -424,7 +394,7 @@ void CommandLineParser::printMessage() const std::cout << k; - string dv = impl->trim_spaces(impl->data[i].def_value); + string dv = impl->cat_string(impl->data[i].def_value); if (dv.compare("") != 0) { std::cout << " (value:" << dv << ")"; diff --git a/modules/core/src/convert.cpp b/modules/core/src/convert.cpp index 4cbbf9dae..1f6a85d87 100644 --- a/modules/core/src/convert.cpp +++ b/modules/core/src/convert.cpp @@ -267,11 +267,6 @@ void cv::split(InputArray _m, OutputArrayOfArrays _mv) split(m, dst); } -void cv::split(const Mat& src, vector& mv) -{ - split(_InputArray(src), _OutputArray(mv)); -} - void cv::merge(const Mat* mv, size_t n, OutputArray _dst) { CV_Assert( mv && n > 0 ); @@ -354,11 +349,6 @@ void cv::merge(InputArrayOfArrays _mv, OutputArray _dst) merge(!mv.empty() ? &mv[0] : 0, mv.size(), _dst); } -void cv::merge(const vector& _mv, OutputArray _dst) -{ - merge(_InputArray(_mv), _dst); -} - /****************************************************************************************\ * Generalized split/merge: mixing channels * \****************************************************************************************/ diff --git a/modules/core/src/drawing.cpp b/modules/core/src/drawing.cpp index c48b04801..50e51fb33 100644 --- a/modules/core/src/drawing.cpp +++ b/modules/core/src/drawing.cpp @@ -1730,7 +1730,7 @@ void fillPoly( Mat& img, const Point** pts, const int* npts, int ncontours, } -void polylines( Mat& img, const Point** pts, const int* npts, int ncontours, bool isClosed, +void polylines( Mat& img, const Point* const* pts, const int* npts, int ncontours, bool isClosed, const Scalar& color, int thickness, int line_type, int shift ) { if( line_type == CV_AA && img.depth() != CV_8U ) diff --git a/modules/core/src/opengl_interop.cpp b/modules/core/src/opengl_interop.cpp index d01cfc83c..a54936675 100644 --- a/modules/core/src/opengl_interop.cpp +++ b/modules/core/src/opengl_interop.cpp @@ -1257,7 +1257,7 @@ cv::GlFont::GlFont(const string& _family, int _height, Weight _weight, Style _st #endif } -void cv::GlFont::draw(const char* str, int len) const +void cv::GlFont::draw(const char* str, size_t len) const { #ifndef HAVE_OPENGL (void)str; @@ -1409,7 +1409,7 @@ void cv::render(const string& str, const Ptr& font, Scalar color, Point2 glRasterPos2d(2.0 * (viewport[0] + pos.x) / viewport[2] - 1.0, 1.0 - 2.0 * (viewport[1] + pos.y + font->height()) / viewport[3]); - font->draw(str.c_str(), (int)str.length()); + font->draw(str.c_str(), str.length()); glPopAttrib(); #endif diff --git a/modules/imgproc/include/opencv2/imgproc/imgproc.hpp b/modules/imgproc/include/opencv2/imgproc/imgproc.hpp index 34d59e17a..63f521814 100644 --- a/modules/imgproc/include/opencv2/imgproc/imgproc.hpp +++ b/modules/imgproc/include/opencv2/imgproc/imgproc.hpp @@ -636,10 +636,8 @@ CV_EXPORTS_W void accumulateWeighted( InputArray src, InputOutputArray dst, //! computes PSNR image/video quality metric CV_EXPORTS_W double PSNR(InputArray src1, InputArray src2); -CV_EXPORTS Point2d phaseCorrelate(InputArray src1, InputArray src2, - InputArray window = noArray()); CV_EXPORTS_W Point2d phaseCorrelate(InputArray src1, InputArray src2, - InputArray window, CV_OUT double* response CV_WRAP_DEFAULT(0)); + InputArray window = noArray(), CV_OUT double* response=0); CV_EXPORTS_W void createHanningWindow(OutputArray dst, Size winSize, int type); //! type of the threshold operation diff --git a/modules/imgproc/src/phasecorr.cpp b/modules/imgproc/src/phasecorr.cpp index dd5497f8f..3b6c2eb4a 100644 --- a/modules/imgproc/src/phasecorr.cpp +++ b/modules/imgproc/src/phasecorr.cpp @@ -568,10 +568,6 @@ cv::Point2d cv::phaseCorrelate(InputArray _src1, InputArray _src2, InputArray _w return (center - t); } -cv::Point2d cv::phaseCorrelate(InputArray _src1, InputArray _src2, InputArray _window) -{ - return phaseCorrelate(_src1, _src2, _window, 0); -} void cv::createHanningWindow(OutputArray _dst, cv::Size winSize, int type) { diff --git a/modules/videostab/include/opencv2/videostab/deblurring.hpp b/modules/videostab/include/opencv2/videostab/deblurring.hpp index 2e3235053..d2ab43824 100644 --- a/modules/videostab/include/opencv2/videostab/deblurring.hpp +++ b/modules/videostab/include/opencv2/videostab/deblurring.hpp @@ -63,6 +63,9 @@ public: virtual void setRadius(int val) { radius_ = val; } virtual int radius() const { return radius_; } + virtual void deblur(int idx, Mat &frame) = 0; + + // data from stabilizer virtual void setFrames(const std::vector &val) { frames_ = &val; } @@ -74,9 +77,6 @@ public: virtual void setBlurrinessRates(const std::vector &val) { blurrinessRates_ = &val; } virtual const std::vector& blurrinessRates() const { return *blurrinessRates_; } - virtual void update() {} - virtual void deblur(int idx, Mat &frame) = 0; - protected: int radius_; const std::vector *frames_;