如何在python中使用SURF?

时间:2016-06-23 07:17:34

标签: python image-processing surf

我将在pycharm中处理图像处理项目“货币识别系统”。我只想将输入图像与数据库中的现有图像进行匹配,并显示结果(数据库图像名称)。如何使用SURF功能执行此操作。我在网上查了一下,但没有得到任何相关的代码。你能帮我做一下吗?

由于 Chathu

2 个答案:

答案 0 :(得分:1)

您正在寻找加速加速功能(SURF)的实现。对于您的用例,您最好使用OpenCV等库。

阅读有关如何安装的Output needed OpenCV docs完成安装后如何在OpenCV中使用SURF。

答案 1 :(得分:0)

enter image description here

SIFT和SURF是OpenCV称为“非自由”模块的算法示例。这些算法已由其各自的创作者申请了专利,尽管它们可在学术和研究环境中免费使用,但如果您将其用于商业(即营利)应用程序,则从技术上讲,您应该从创作者那里获得许可/许可。

但是好消息是...

还必须注意,使用opencv_contrib不会干扰OpenCV 3中包含的任何其他关键点检测器和局部不变描述符。您仍然可以访问KAZE,AKAZE,BRISK等。问题:

>>> kaze = cv2.KAZE_create()
>>> (kps, descs) = kaze.detectAndCompute(gray, None)
>>> print("# kps: {}, descriptors: {}".format(len(kps), descs.shape))
# kps: 359, descriptors: (359, 64)
>>> akaze = cv2.AKAZE_create()
>>> (kps, descs) = akaze.detectAndCompute(gray, None)
>>> print("# kps: {}, descriptors: {}".format(len(kps), descs.shape))
# kps: 192, descriptors: (192, 61)
>>> brisk = cv2.BRISK_create()
>>> (kps, descs) = brisk.detectAndCompute(gray, None)
>>> print("# kps: {}, descriptors: {}".format(len(kps), descs.shape))
# kps: 361, descriptors: (361, 64)

更多信息来自该链接:https://www.pyimagesearch.com/2015/07/16/where-did-sift-and-surf-go-in-opencv-3/