From d7180b7db32cb5ba1fe1c4cca723c9bca36a4169 Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Fri, 24 Nov 2017 15:04:31 +0100 Subject: [PATCH] Bugfixes and improved bending energy --- .../MooreBoundaryTrackingAlgorithm.cpp | 31 +++++++------------ AdvancedVision/allContoursTestprogramma.cpp | 5 +++ 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/AdvancedVision/MooreBoundaryTrackingAlgorithm.cpp b/AdvancedVision/MooreBoundaryTrackingAlgorithm.cpp index d3847f1..568f425 100644 --- a/AdvancedVision/MooreBoundaryTrackingAlgorithm.cpp +++ b/AdvancedVision/MooreBoundaryTrackingAlgorithm.cpp @@ -6,8 +6,8 @@ // 7 0 1 // 6 X 2 // 5 4 3 -int rotateX[] = { 0, 1, 1, 1, 0, -1, -1, -1 }; -int rotateY[] = { -1, -1, 0, 1, 1, 1, 0, -1 }; +volatile int rotateX[] = { 0, 1, 1, 1, 0, -1, -1, -1 }; +volatile int rotateY[] = { -1, -1, 0, 1, 1, 1, 0, -1 }; int allContours(Mat binaryImage, vector>& contourVecVec) { @@ -41,10 +41,10 @@ int allContours(Mat binaryImage, vector>& contourVecVec) int dir = discoverNext(binaryImage, b0, discoverNextRelativeDirection(b0, c0)); - if (dir < 0) - { - cout << "Er is niks aan de hand! " << " : " << b0 << " - " << c0 << endl; - } + //if (dir < 0) + //{ + // cout << "Er is niks aan de hand! " << " : " << b0 << " - " << c0 << endl; + //} b1 = getDirPos(b0, dir); c1 = getDirPos(b0, (dir + 7) % 8); @@ -136,28 +136,19 @@ void flip(vector> &vec) } } -bool isInsideContours(vector>& vec, Point point) -{ - for (vector cont : vec) - { - int i = pointPolygonTest(cont, point, false); - - if (i >= 0) - return true; - } - - return false; -} - double getBendingEnergy(const vector& contour) { double energy = 0; + int dir = 0; + int prevdir = 0; Point previousPoint = contour[contour.size() - 1]; for (Point p : contour) { - energy += discoverNextRelativeDirection(previousPoint, p); + dir = discoverNextRelativeDirection(previousPoint, p); + energy += (dir - prevdir + 8) % 8; + prevdir = dir; previousPoint = p; } diff --git a/AdvancedVision/allContoursTestprogramma.cpp b/AdvancedVision/allContoursTestprogramma.cpp index acf9667..ec0f607 100644 --- a/AdvancedVision/allContoursTestprogramma.cpp +++ b/AdvancedVision/allContoursTestprogramma.cpp @@ -6,6 +6,9 @@ // // Jan Oostindie, dd 8-11-2016 // +//#pragma GCC push_options +//#pragma GCC optimize ("O0") + #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" #include @@ -117,3 +120,5 @@ int main(int argc, char *argv[]) return 0; } + +//#pragma GCC pop_options \ No newline at end of file