opencv中cv::GPU::ORB_GPU使用的问题

本文针对ORB特征点检测中FAST特征点数量不足的问题,通过调整关键参数keypointsRatio,增加特征点提取的数量,并自定义了ORB_GPU0类来解决该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 检测出来的ORB特征点的分布是这样子的


这个主要问题在于,提取特征点的时候,FAST特征点出了问题,提取长度不够

ORB_GPU(int nFeatures, float scaleFactor, int nLevels, int edgeThreshold, int firstLevel, int WTA_K, int scoreType, int patchSize) :
    nFeatures_(nFeatures), scaleFactor_(scaleFactor), nLevels_(nLevels), edgeThreshold_(edgeThreshold), firstLevel_(firstLevel), WTA_K_(WTA_K),
    scoreType_(scoreType), patchSize_(patchSize), 
	fastDetector_(DEFAULT_FAST_THRESHOLD)
源代码初始化,这里最后一项是FAST特征点,FAST的特征点定义如下,

explicit FAST_GPU(int threshold, bool nonmaxSuppression = true, double keypointsRatio = 0.05);
最后一个
keypointsRatio = 0.05;
会影响储存FAST点的长度,具体懒得找了,是0.05*1920*1080,也就10k个点,显然对于这种图不够用啊

自己定义了一个

lmw::ORB_GPU0::ORB_GPU0(int nFeatures, float scaleFactor, int nLevels, int edgeThreshold, int firstLevel, int WTA_K, int scoreType, int patchSize) :
    nFeatures_(nFeatures), scaleFactor_(scaleFactor), nLevels_(nLevels), edgeThreshold_(edgeThreshold), firstLevel_(firstLevel), WTA_K_(WTA_K),
    scoreType_(scoreType), patchSize_(patchSize), 
	fastDetector_(DEFAULT_FAST_THRESHOLD, true, 0.05)

好了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值