diff --git a/modules/contrib/include/opencv2/contrib/detection_based_tracker.hpp b/modules/contrib/include/opencv2/contrib/detection_based_tracker.hpp index c290318035f4f2af330fb5248dbf00c4846942f0..332a8290dc3d0c1eec972f24d38dca6b4038fe4f 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 <vector> +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<cv::Rect>& 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 28606d5becb14cce2640e16c563d3e0f03d49a2a..238ac5c3e94cc39c8859a0050f43b8e4db76c9dc 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<DetectionBasedTracker::IDetector> _detector); + SeparateDetectionWork(cv::DetectionBasedTracker& _detectionBasedTracker, cv::Ptr<DetectionBasedTracker::IDetector> _detector); virtual ~SeparateDetectionWork(); bool communicateWithDetectingThread(const Mat& imageGray, vector<Rect>& rectsWhereRegions); bool run(); @@ -116,7 +119,7 @@ class DetectionBasedTracker::SeparateDetectionWork long long timeWhenDetectingThreadStartedWork; }; -DetectionBasedTracker::SeparateDetectionWork::SeparateDetectionWork(DetectionBasedTracker& _detectionBasedTracker, cv::Ptr<DetectionBasedTracker::IDetector> _detector) +cv::DetectionBasedTracker::SeparateDetectionWork::SeparateDetectionWork(DetectionBasedTracker& _detectionBasedTracker, cv::Ptr<DetectionBasedTracker::IDetector> _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<Rect>& rectsWhereRegions) +bool cv::DetectionBasedTracker::SeparateDetectionWork::communicateWithDetectingThread(const Mat& imageGray, vector<Rect>& 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<IDetector> mainDetector, cv::Ptr<IDetector> trackingDetector, const Parameters& params) +cv::DetectionBasedTracker::DetectionBasedTracker(cv::Ptr<IDetector> mainDetector, cv::Ptr<IDetector> trackingDetector, const Parameters& params) :separateDetectionWork(), parameters(params), innerParameters(), @@ -471,7 +474,7 @@ DetectionBasedTracker::DetectionBasedTracker(cv::Ptr<IDetector> 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<cv::Rect>& result) const +void cv::DetectionBasedTracker::getObjects(std::vector<cv::Rect>& result) const { result.clear(); @@ -558,7 +561,7 @@ void DetectionBasedTracker::getObjects(std::vector<cv::Rect>& result) const } } -void DetectionBasedTracker::getObjects(std::vector<Object>& result) const +void cv::DetectionBasedTracker::getObjects(std::vector<Object>& result) const { result.clear(); @@ -571,7 +574,7 @@ void DetectionBasedTracker::getObjects(std::vector<Object>& 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<ExtObject>& result) const +void cv::DetectionBasedTracker::getObjects(std::vector<ExtObject>& result) const { result.clear(); @@ -583,7 +586,7 @@ void DetectionBasedTracker::getObjects(std::vector<ExtObject>& 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<Rect>& detectedObjects) +void cv::DetectionBasedTracker::updateTrackedObjects(const vector<Rect>& detectedObjects) { enum { NEW_RECTANGLE=-1, @@ -727,7 +730,7 @@ void DetectionBasedTracker::updateTrackedObjects(const vector<Rect>& 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<Rect>& detectedObjectsInRegions) +void cv::DetectionBasedTracker::detectInRegion(const Mat& img, const Rect& r, vector<Rect>& 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 17bc065f16e30b318355aba11f922acc94948d29..5ba8a638909416081f9c8ba41e33b09095f6c585 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<Mat>& 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<Mat>& 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<uint64> 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<T>::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 d680d82979e4a5c2ae2ed9330c4a0d255539891d..c039a1f315ac15c4aa7ddd7b9775bbc9bc5d361a 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<GlFont> 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 b83a89902791e62f7148c1abdd00de30206d533f..840bf8162a5cf6e8d66cb312275fe50241bb10e0 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<CommandLineParserParams> data; - Impl() { refcount = 1; } - Impl(int argc, const char* const argv[], const char* keys); - vector<string> split_range_string(const string& str, char fs, char ss) const; vector<string> 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() ) - { - impl->error = true; - impl->error_message += "Unknown parametes " + name + "\n"; - } - else + for (size_t i = 0; i < impl->data.size(); i++) { - 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<string> k = split_range_string(keys, '{', '}'); + vector<string> k = impl->split_range_string(keys, '{', '}'); int jj = 0; for (size_t i = 0; i < k.size(); i++) { - vector<string> l = split_string(k[i], '|', true); + vector<string> 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<string> k_v = split_string(s, '=', true); + vector<string> 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 4cbbf9daef3edbc4d6ced79781781b161cf0b5ae..1f6a85d8762e82f6e130dd6b9854926c3b8752e6 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<Mat>& 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<Mat>& _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 c48b04801ad4af94df45dc0653ef281c81236007..50e51fb334021adb28a6cd76efd274dc8f5e4973 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 d01cfc83c45ea2cd62b212133541512f82289017..a549366752a3532017b5e0f925eb4b21cc44030f 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<GlFont>& 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 34d59e17a9ac0d593bdb386ee255711e4092ada0..63f52181407dc0456a369e6f19dc99219ee18789 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 dd5497f8f4c817c46ce85b694996e3f0c3b94d05..3b6c2eb4ab18f20b487ccf159ff499adb84227d5 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 2e32350530640a67cfdd0c0cc3dcfeb2ecd89468..d2ab43824b886e1e3395236c65e6ac5245efab73 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<Mat> &val) { frames_ = &val; } @@ -74,9 +77,6 @@ public: virtual void setBlurrinessRates(const std::vector<float> &val) { blurrinessRates_ = &val; } virtual const std::vector<float>& blurrinessRates() const { return *blurrinessRates_; } - virtual void update() {} - virtual void deblur(int idx, Mat &frame) = 0; - protected: int radius_; const std::vector<Mat> *frames_;