我使用的是opencv 2.4.8。这样声明球体:
int patchSize = 31;
ORB orb(1000,1.0f,1,patchSize,0,2,ORB::HARRIS_SCORE,patchSize);
补丁大小是否意味着关键点周围应该有(patchsize-1)/ 2空间?
我在坐标处提供垂直和水平15像素边距的关键点,但这样的位置无法产生描述符。
例如,对于图像240x320,即使有足够的像素(0,1,...... 14 - > 15像素),也无法描述点(15,15)。
答案 0 :(得分:2)
OpenCV使用KeyPointsFilter::runByImageBorder
与选定的edgeThreshold
(您的patchSize
)来消除靠近图像边界的关键点以进行ORB计算(文件为modules/features2d/src/orb.cpp
,如果你想看看; computeKeyPoints
中的第669行。
所以你的保证金实际上是31,而不是15。
希望有所帮助!