ca7da00
diff --git a/modules/contrib/src/chamfermatching.cpp b/modules/contrib/src/chamfermatching.cpp
ca7da00
--- a/modules/contrib/src/chamfermatching.cpp
ca7da00
+++ b/modules/contrib/src/chamfermatching.cpp
ca7da00
@@ -966,10 +966,8 @@ void ChamferMatcher::Matching::computeDistanceTransform(Mat& edges_img, Mat& dis
ca7da00
     for (int y=0;y
ca7da00
         for (int x=0;x
ca7da00
             // initialize
ca7da00
-            if (&annotate_img!=NULL) {
ca7da00
-                annotate_img.at<Vec2i>(y,x)[0]=x;
ca7da00
-                annotate_img.at<Vec2i>(y,x)[1]=y;
ca7da00
-            }
ca7da00
+            annotate_img.at<Vec2i>(y,x)[0]=x;
ca7da00
+            annotate_img.at<Vec2i>(y,x)[1]=y;
ca7da00
 
ca7da00
             uchar edge_val = edges_img.at<uchar>(y,x);
ca7da00
             if( (edge_val!=0) ) {
ca7da00
@@ -1013,10 +1011,8 @@ void ChamferMatcher::Matching::computeDistanceTransform(Mat& edges_img, Mat& dis
ca7da00
                 dist_img.at<float>(ny,nx) = dist;
ca7da00
                 q.push(std::make_pair(nx,ny));
ca7da00
 
ca7da00
-                if (&annotate_img!=NULL) {
ca7da00
-                    annotate_img.at<Vec2i>(ny,nx)[0]=annotate_img.at<Vec2i>(y,x)[0];
ca7da00
-                    annotate_img.at<Vec2i>(ny,nx)[1]=annotate_img.at<Vec2i>(y,x)[1];
ca7da00
-                }
ca7da00
+                annotate_img.at<Vec2i>(ny,nx)[0]=annotate_img.at<Vec2i>(y,x)[0];
ca7da00
+                annotate_img.at<Vec2i>(ny,nx)[1]=annotate_img.at<Vec2i>(y,x)[1];
ca7da00
             }
ca7da00
         }
ca7da00
     }
ca7da00
@@ -1107,26 +1103,22 @@ ChamferMatcher::Match* ChamferMatcher::Matching::localChamferDistance(Point offs
ca7da00
 
ca7da00
     float cost = (sum_distance/truncate_)/addr.size();
ca7da00
 
ca7da00
+    float* optr = orientation_img.ptr<float>(y)+x;
ca7da00
+    float sum_orientation = 0;
ca7da00
+    int cnt_orientation = 0;
ca7da00
 
ca7da00
-    if (&orientation_img!=NULL) {
ca7da00
-        float* optr = orientation_img.ptr<float>(y)+x;
ca7da00
-        float sum_orientation = 0;
ca7da00
-        int cnt_orientation = 0;
ca7da00
+    for (size_t i=0;i
ca7da00
 
ca7da00
-        for (size_t i=0;i
ca7da00
-
ca7da00
-            if(addr[i] < (orientation_img.cols*orientation_img.rows) - (offset.y*orientation_img.cols + offset.x)){
ca7da00
-                                if (tpl->orientations[i]>=-CV_PI && (*(optr+addr[i]))>=-CV_PI) {
ca7da00
-                    sum_orientation += orientation_diff(tpl->orientations[i], (*(optr+addr[i])));
ca7da00
-                    cnt_orientation++;
ca7da00
-                }
ca7da00
+        if(addr[i] < (orientation_img.cols*orientation_img.rows) - (offset.y*orientation_img.cols + offset.x)){
ca7da00
+                            if (tpl->orientations[i]>=-CV_PI && (*(optr+addr[i]))>=-CV_PI) {
ca7da00
+                sum_orientation += orientation_diff(tpl->orientations[i], (*(optr+addr[i])));
ca7da00
+                cnt_orientation++;
ca7da00
             }
ca7da00
         }
ca7da00
+    }
ca7da00
 
ca7da00
-        if (cnt_orientation>0) {
ca7da00
-                        cost = (float)(beta*cost+alpha*(sum_orientation/(2*CV_PI))/cnt_orientation);
ca7da00
-        }
ca7da00
-
ca7da00
+    if (cnt_orientation>0) {
ca7da00
+                    cost = (float)(beta*cost+alpha*(sum_orientation/(2*CV_PI))/cnt_orientation);
ca7da00
     }
ca7da00
 
ca7da00
     if(cost > 0){
ca7da00