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的类型,这个注意好,还有就是内存跟显存之间的复制这个注意好,这样基本的使用应该就没有问题了。

  • 相关阅读:
    Study Plan The Twelfth Day
    Study Plan The Fifteenth Day
    Study Plan The Seventeenth Day
    Study Plan The Tenth Day
    Study Plan The Eighth Day
    Study Plan The Eleventh Day
    Study Plan The Sixteenth Day
    Study Plan The Thirteenth Day
    Study Plan The Fourteenth Day
    Study Plan The Ninth Day
  • 原文地址:https://www.cnblogs.com/fengbing/p/3280989.html
Copyright © 2011-2022 走看看