zoukankan      html  css  js  c++  java
  • OpenCV使用GPU

    在使用OpenCV2.4.x的时候,以为不用重新编译可以直接使用GPU模块,不过在我使用的时候,发现使用getCudaEnabledDeviceCount()的时候,总是获得是0,于是重新编译OpenCV,这个是一个漫长的过程,尤其是编译GPU模块。对于如果编译OpenCV网上教程都比较多,这个不在叙述,下面主要说一下surf的那个demo

    运行结果如下:

    image

    主要要注意的在GPU中使用的Mat类型为GpuMat,读取普通的Mat要通过upload转变。主要也就是把内存中的Mat复制到显存中。

    使用的surf也是使用SURF_GPU,还有就是关键点的类型为GpuMat,这样就申明在GPU中运算。

    SURF_GPU surf;

    GpuMat keypoints1GPU, keypoints2GPU;
        GpuMat descriptors1GPU, descriptors2GPU;
        surf(img1, GpuMat(), keypoints1GPU, descriptors1GPU);
        surf(img2, GpuMat(), keypoints2GPU, descriptors2GPU);

    最终得到的关键点要从显存中复制到内存当中,使用

    surf.downloadKeypoints(keypoints1GPU, keypoints1);

    在使用的时候,在GPU上执行,应该所有的类型都是GPU的类型,这个注意好,还有就是内存跟显存之间的复制这个注意好,这样基本的使用应该就没有问题了。

  • 相关阅读:
    ABAP术语-Interface
    ABAP术语-Interface Parameter
    ABAP术语-Implementation
    ABAP术语-IDOC
    ABAP术语-IAC (Internet Application Components)
    ABAP术语-HTML
    ABAP术语-Function Module
    ABAP术语-Function Library
    ABAP术语-Function Group
    PyCharm的小技巧
  • 原文地址:https://www.cnblogs.com/fengbing/p/3280989.html
Copyright © 2011-2022 走看看