Commit 34a18f79 authored by Maria Dimashova's avatar Maria Dimashova

fixed #832

parent 2806db93
......@@ -1630,7 +1630,7 @@ protected:
* Remove keypoints within borderPixels of an image edge.
*/
static void removeBorderKeypoints( vector<KeyPoint>& keypoints,
Size imageSize, float borderSize );
Size imageSize, int borderSize );
};
/*
......
......@@ -54,19 +54,15 @@ namespace cv
*/
struct RoiPredicate
{
RoiPredicate( float _minX, float _minY, float _maxX, float _maxY )
: minX(_minX), minY(_minY), maxX(_maxX), maxY(_maxY)
RoiPredicate( const Rect& _r ) : r(_r)
{}
bool operator()( const KeyPoint& keyPt ) const
{
Point2f pt = keyPt.pt;
float eps = std::numeric_limits<float>::epsilon();
return (pt.x < minX + eps) || (pt.x >= maxX - eps) ||
(pt.y < minY + eps) || (pt.y >= maxY - eps);
return !r.contains( keyPt.pt );
}
float minX, minY, maxX, maxY;
Rect r;
};
DescriptorExtractor::~DescriptorExtractor()
......@@ -104,14 +100,13 @@ bool DescriptorExtractor::empty() const
}
void DescriptorExtractor::removeBorderKeypoints( vector<KeyPoint>& keypoints,
Size imageSize, float borderSize )
Size imageSize, int borderSize )
{
if( borderSize > 0)
{
keypoints.erase( remove_if(keypoints.begin(), keypoints.end(),
RoiPredicate(borderSize, borderSize,
(float)imageSize.width - borderSize,
(float)imageSize.height - borderSize)),
RoiPredicate(Rect(Point(borderSize, borderSize),
Point(imageSize.width - borderSize, imageSize.height - borderSize)))),
keypoints.end() );
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment