From 5e39ab7af3dc7007f32c6b7897843409ae12756f Mon Sep 17 00:00:00 2001 From: "Dongkyun, Son" Date: Tue, 25 Oct 2016 14:33:24 +0900 Subject: [PATCH] [PATCH] Fix FTBFS with GCC 6 (#1307821) Signed-off-by: Yaakov Selkowitz Signed-off-by: Dongkyun, Son --- modules/contrib/src/chamfermatching.cpp | 39 +++++++++++++-------------------- 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/modules/contrib/src/chamfermatching.cpp b/modules/contrib/src/chamfermatching.cpp index 64d77cf..dbe27f3 100644 --- a/modules/contrib/src/chamfermatching.cpp +++ b/modules/contrib/src/chamfermatching.cpp @@ -966,10 +966,8 @@ void ChamferMatcher::Matching::computeDistanceTransform(Mat& edges_img, Mat& dis for (int y=0;y(y,x)[0]=x; - annotate_img.at(y,x)[1]=y; - } + annotate_img.at(y,x)[0]=x; + annotate_img.at(y,x)[1]=y; uchar edge_val = edges_img.at(y,x); if( (edge_val!=0) ) { @@ -1013,10 +1011,8 @@ void ChamferMatcher::Matching::computeDistanceTransform(Mat& edges_img, Mat& dis dist_img.at(ny,nx) = dist; q.push(std::make_pair(nx,ny)); - if (&annotate_img!=NULL) { - annotate_img.at(ny,nx)[0]=annotate_img.at(y,x)[0]; - annotate_img.at(ny,nx)[1]=annotate_img.at(y,x)[1]; - } + annotate_img.at(ny,nx)[0]=annotate_img.at(y,x)[0]; + annotate_img.at(ny,nx)[1]=annotate_img.at(y,x)[1]; } } } @@ -1106,27 +1102,22 @@ ChamferMatcher::Match* ChamferMatcher::Matching::localChamferDistance(Point offs } float cost = (sum_distance/truncate_)/addr.size(); + float* optr = orientation_img.ptr(y)+x; + float sum_orientation = 0; + int cnt_orientation = 0; + for (size_t i=0;i(y)+x; - float sum_orientation = 0; - int cnt_orientation = 0; - - for (size_t i=0;iorientations[i]>=-CV_PI && (*(optr+addr[i]))>=-CV_PI) { - sum_orientation += orientation_diff(tpl->orientations[i], (*(optr+addr[i]))); - cnt_orientation++; - } + if(addr[i] < (orientation_img.cols*orientation_img.rows) - (offset.y*orientation_img.cols + offset.x)){ + if (tpl->orientations[i]>=-CV_PI && (*(optr+addr[i]))>=-CV_PI) { + sum_orientation += orientation_diff(tpl->orientations[i], (*(optr+addr[i]))); + cnt_orientation++; } } + } - if (cnt_orientation>0) { - cost = (float)(beta*cost+alpha*(sum_orientation/(2*CV_PI))/cnt_orientation); - } - + if (cnt_orientation>0) { + cost = (float)(beta*cost+alpha*(sum_orientation/(2*CV_PI))/cnt_orientation); } if(cost > 0){ -- 2.7.4