]> rtime.felk.cvut.cz Git - opencv.git/commitdiff
fixed crash of the star detector on small images (thanks to Pierre Moulon for the...
authorvp153 <vp153@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Wed, 24 Feb 2010 21:18:21 +0000 (21:18 +0000)
committervp153 <vp153@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Wed, 24 Feb 2010 21:18:21 +0000 (21:18 +0000)
git-svn-id: https://code.ros.org/svn/opencv/trunk@2715 73c94f0f-984f-4a5f-82bc-2d8db8d8ee08

opencv/src/cv/cvstardetector.cpp

index a5975048de4ed3ffc3cce733047a356bf46d9928..e29301923bb9fe6f459919f916600238953eefb4 100644 (file)
@@ -131,11 +131,13 @@ icvStarDetectorComputeResponses( const CvMat* img, CvMat* responses, CvMat* size
         CV_MAT_TYPE(sizes->type) == CV_16SC1 &&
         CV_ARE_SIZES_EQ(responses, sizes) );
 
-    for(; pairs[i][0] >= 0; i++ )
+    while( pairs[i][0] >= 0 && !
+          ( sizes0[pairs[i][0]] >= params->maxSize 
+           || sizes0[pairs[i+1][0]] + sizes0[pairs[i+1][0]]/2 >= std::min(rows, cols) ) )
     {
-        if( sizes0[pairs[i][0]] >= params->maxSize )
-            break;
+        ++i;
     }
+    
     npatterns = i;
     npatterns += (pairs[npatterns-1][0] >= 0);
     maxIdx = pairs[npatterns-1][0];