Commit 165f2520 authored by Maria Dimashova's avatar Maria Dimashova

fixed sift wrapper

parent 61f06d9b
......@@ -2006,13 +2006,16 @@ SIFT::SIFT( const CommonParams& _commParams,
inline KeyPoint vlKeypointToOcv( const VL::Sift::Keypoint& vlKeypoint, float angle )
{
return KeyPoint(vlKeypoint.x, vlKeypoint.y, 3*vlKeypoint.sigma, angle, 0, vlKeypoint.o, 0 );
return KeyPoint( vlKeypoint.x, vlKeypoint.y,
SIFT::DescriptorParams::GET_DEFAULT_MAGNIFICATION()*vlKeypoint.sigma*5 /* 5==NBP+1 */,
angle, 0, vlKeypoint.o, 0 );
}
inline void ocvKeypointToVl( const KeyPoint& ocvKeypoint, const VL::Sift& vlSift,
VL::Sift::Keypoint& vlKeypoint )
VL::Sift::Keypoint& vlKeypoint, int magnification )
{
vlKeypoint = vlSift.getKeypoint(ocvKeypoint.pt.x, ocvKeypoint.pt.y, ocvKeypoint.size/3);
vlKeypoint = vlSift.getKeypoint( ocvKeypoint.pt.x, ocvKeypoint.pt.y,
ocvKeypoint.size/(magnification*5) /* 5==NBP+1 */ );
}
float computeKeypointOrientations( VL::Sift& sift, const VL::Sift::Keypoint& keypoint, int angleMode )
......@@ -2100,7 +2103,7 @@ void SIFT::operator()(const Mat& img, const Mat& mask,
for( int pi = 0 ; iter != keypoints.end(); ++iter, pi++ )
{
VL::Sift::Keypoint vlkpt;
ocvKeypointToVl( *iter, vlsift, vlkpt );
ocvKeypointToVl( *iter, vlsift, vlkpt, descriptorParams.magnification );
float angleVal = iter->angle*CV_PI/180.0;
if( descriptorParams.recalculateAngles )
{
......
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