From bf49c43770db98cc53eb55e2a77aaabb5605bc69 Mon Sep 17 00:00:00 2001 From: berak Date: Tue, 16 Oct 2018 18:43:44 +0200 Subject: [PATCH 1/2] face: cleanup after #18484 --- modules/face/src/mace.cpp | 36 +++++++++++++----------------------- 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/modules/face/src/mace.cpp b/modules/face/src/mace.cpp index 7f7c7b95a..14a3a5eb0 100644 --- a/modules/face/src/mace.cpp +++ b/modules/face/src/mace.cpp @@ -119,9 +119,9 @@ struct MACEImpl CV_FINAL : MACE { int IMGSIZE_2X = IMGSIZE * 2; int TOTALPIXEL = IMGSIZE_2X * IMGSIZE_2X; - Mat_ D(TOTALPIXEL, 1, 0.0); - Mat_ S(TOTALPIXEL, size, 0.0); - Mat_ SPLUS(size, TOTALPIXEL, 0.0); + Mat_ D(TOTALPIXEL, 1, 0.0); + Mat_ S(TOTALPIXEL, size, Vec2d(0,0)); + Mat_ SPLUS(size, TOTALPIXEL, Vec2d(0,0)); for (int i=0; i dftImg = isdft ? images[i] : dftImage(images[i]); for (int l=0; l DSQ; cv::sqrt(D, DSQ); + Mat_ DINV = TOTALPIXEL * size / DSQ; -#if 0 // https://github.com/opencv/opencv_contrib/issues/1848 - // FIXIT What is expected here? complex numbers math? - // D(,)[1] is 0 (always) - Mat sq; cv::sqrt(D, sq); // Per-element sqrt(): sq(,)[1] is 0 (always) - Mat_ DINV = TOTALPIXEL * size / sq; // "per-element" division which provides "Inf" -#else - Mat sq; cv::sqrt(D.reshape(1).col(0), sq); - Mat_ DINV(TOTALPIXEL, 1, Vec2d(0, 0)); - DINV.reshape(1).col(0) = TOTALPIXEL * size / sq; -#endif - Mat_ DINV_S(TOTALPIXEL, size, 0.0); - Mat_ SPLUS_DINV(size, TOTALPIXEL, 0.0); + Mat_ DINV_S(TOTALPIXEL, size); + Mat_ SPLUS_DINV(size, TOTALPIXEL); for (int l=0; l SPLUS_DINV_S = SPLUS_DINV * S; - Mat_ SPLUS_DINV_S_INV(size, size); - Mat_ SPLUS_DINV_S_INV_1(2*size, 2*size); + Mat_ SPLUS_DINV_S_INV_1(2*size, 2*size, 0.0); for (int l=0; l SPLUS_DINV_S_INV(size, size); for (int l=0; l Hmace = DINV_S * SPLUS_DINV_S_INV; - Mat_ C(size,1, Vec2d(1,0)); + Mat_ C(size, 1, Vec2d(1,0)); maceFilter = Mat(Hmace * C).reshape(2,IMGSIZE_2X); } From 6bd26d33f35999a11efc8761404016da9a2577b1 Mon Sep 17 00:00:00 2001 From: Mohammad Haghighat Date: Wed, 17 Oct 2018 11:26:58 -0700 Subject: [PATCH 2/2] Merge pull request #1847 from mhaghighat:master * Checker for empty region * Update trackerKCF.cpp * Update trackerKCF.cpp * Update trackerKCF.cpp * fix whitespace --- modules/tracking/src/trackerKCF.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/tracking/src/trackerKCF.cpp b/modules/tracking/src/trackerKCF.cpp index 3d629bd5c..474dceb5b 100644 --- a/modules/tracking/src/trackerKCF.cpp +++ b/modules/tracking/src/trackerKCF.cpp @@ -675,6 +675,10 @@ namespace cv{ if(region.width>img.cols)region.width=img.cols; if(region.height>img.rows)region.height=img.rows; + // return false if region is empty + if (region.empty()) + return false; + patch=img(region).clone(); // add some padding to compensate when the patch is outside image border