java opencv orb_用Python在OpenCv中设置ORB参数

我在Python中使用OpenCV 2.4来匹配两个图像之间的特性,但是我想更改“ORB”检测器的一个参数(它提取“nfeatures”的特性数量),而在Python中似乎没有办法这样做。

对于C++,你可以通过java的“读”(或“加载”)加载一个参数YLL/XML文件?特性检测器/描述符牵引器的方法。但是Python绑定缺少此函数/方法。

它还缺少直接创建ORB对象的绑定,所以我不能在那里传递参数(Python绑定似乎要求您使用cv2.DescriptorExtractor_create by string name--如果您传递了错误的字符串名称或参数,则会出现segfult。。。此外,该函数不能接受它似乎传递给构造函数的任何其他参数。

我唯一的希望似乎是用cv2.cv.Load(filename)从xml加载完整的对象,但这似乎需要一个对象实例,而不是一个算法定义,为此我找不到新的或旧语法中的任何Python绑定。我在文件加载步骤中尝试了几种变体,包括模仿OpenCV中保存的xml文件的样式,但没有成功。

有没有人在我上面尝试的步骤中成功地将参数传递到OpenCV中的检测器(SURF或ORB,或任何通用算法)上?

下面是我用来提取功能的代码:def findFeatures(greyimg, detector="ORB", descriptor="ORB"):

nfeatures = 2000 # No way to pass to detector...?

detector = cv2.FeatureDetector_create(detector)

descriptorExtractor = cv2.DescriptorExtractor_create(descriptor)

keypoints = detector.detect(greyimg)

(keypoints, descriptors) = descriptorExtractor.compute(greyimg, keypoints)

return keypoints, descriptors

编辑

在windows实现中,更改检测器设置似乎只是segfault——等待OpenCV站点上出现补丁或补丁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值