退潮之后,没穿裤子的人 2022-08-09 16:54 采纳率: 33.3%
浏览 96
已结题

opencv图像特征点匹配

问题遇到的现象和发生背景 关于图像模板匹配,为什么海康机器人(Vision Master)只需要几毫秒,而自己使用opencv中的特征点检测sift算子,进行特征点检测,都需要0.6秒,完全不是一个数量级的啊!
问题相关代码,请勿粘贴截图
    .......
    Mat img = imread("......")
    Ptr<SIFT> sift = SIFT::create();
    std::vector<KeyPoint>  kps;
    Mat desc;
    sift->detectAndCompute(img, Mat(), kps1, desc1);
    .....
运行结果及报错内容

单单检测特征点这一步都需要耗时0.6秒。
而Vision Master只需要几毫秒。

img

opencv中用特征点检测然后匹配。
他们为什么这么快呢?
  • 写回答

2条回答 默认 最新

  • 爱晚乏客游 2022-08-09 17:10
    关注
    获得3.40元问题酬金

    opencv要在release下面才是正确的运行速度,debug模式慢很正常。
    你说的是特征点匹配而不是模板匹配吧?opencv的模板匹配是TemplateMatch,这个速度很快。至于特征点匹配,opencv也好几种呢,看你具体用途了,sift强大没错,但是就是速度慢,也有速度快的算法啊。另外这种一般都是第一次会比较慢,后面会把图片的特征存下来,下次直接加载特征点进行匹配而不是重新训练,速度就快很多。
    另外就是海康可能硬件对于自家的软件会有一些适配加速,opencv也有一些硬件接口可以用以加速,但是这种就得你自己去研究了。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 8月17日
  • 修改了问题 8月9日
  • 修改了问题 8月9日
  • 创建了问题 8月9日