KAZE与AKAZE都是OpenCv中集成的API算法,AKAZE是KAZE的加速版本(A表示Accelerated(加速的))。且AKAZE的执行效率要优于KAZE。
与SURF和SIFT不同(基于线性),KAZE(AKAZE)是基于非线性插值的方法,这一点在图像处理方面来说确实比SURF和SIFT要好,毕竟图像大多是不连续的。

KAZE(AKAZE)基本步骤与介绍:
1、AOS构造尺度空间;------非线性方法构造,SURF与SIFT基于线性方法构造。
2、Hessian矩阵特征点检测;
3、方向基于一阶微分图像;------图像的旋转不变性(旋转角度)。
4、描述子生成。---------归一化处理。

与SIFT和SURF的比较:
1、更加稳定;
2、非线性尺度空间;
3、AKAZE比KAZE素的更快;
4、比较新的算法。

话不多说,上代码(KAZE):

#include<opencv2/opencv.hpp>
#include<iostream>
#include<math.h>using namespace cv;
using namespace std;Mat src;
int main(int argc, char** argv)
{src = imread("D:/test/girl.png", IMREAD_GRAYSCALE);if (!src.data){printf("图片未找到...");return -1;}imshow("input title", src);double t1 = getTickCount();//检测特征点(非线性)Ptr<KAZE>detector = KAZE::create();vector<KeyPoint> keypoints;detector->detect(src, keypoints, Mat());double t2 = getTickCount();double t = (t2 - t1) * 1000 / getTickFrequency();//结果转化为毫秒printf("特征点寻找所花费时间(ms):%f",t);//绘制特征点Mat keypointsImg;//drawKeypoints(src, keypoints, keypointsImg, Scalar::all(-1), DrawMatchesFlags::DEFAULT);//DrawMatchesFlags::DEFAULT与0是等价的drawKeypoints(src, keypoints, keypointsImg, Scalar::all(-1), 0);imshow("KAZE keypoints result", keypointsImg);waitKey(0);return 0;}

KAZE的运行结果与检测时间:
1、运行结果:

花费时间:

可以看到,花费时间有点长,大概2秒左右。

其实AKAZE的代码跟KAZE几乎完全一样,只是改了Ptr<KAZE>detector = KAZE::create();而已。
只需将上面代码改成如下样子即可:Ptr<AKAZE>detector = AKAZE::create();

接下来放上AKAZE的代码:

#include<opencv2/opencv.hpp>
#include<iostream>
#include<math.h>using namespace cv;
using namespace std;Mat src;
int main(int argc, char** argv)
{src = imread("D:/test/girl.png", IMREAD_GRAYSCALE);if (!src.data){printf("图片未找到...");return -1;}imshow("input title", src);double t1 = getTickCount();//检测特征点(非线性)Ptr<AKAZE>detector = AKAZE::create();vector<KeyPoint> keypoints;detector->detect(src, keypoints, Mat());double t2 = getTickCount();double t = (t2 - t1) * 1000 / getTickFrequency();//结果转化为毫秒printf("特征点寻找所花费时间(ms):%f",t);//绘制特征点Mat keypointsImg;//drawKeypoints(src, keypoints, keypointsImg, Scalar::all(-1), DrawMatchesFlags::DEFAULT);//DrawMatchesFlags::DEFAULT与0是等价的drawKeypoints(src, keypoints, keypointsImg, Scalar::all(-1), 0);imshow("AKAZE keypoints result", keypointsImg);waitKey(0);return 0;}

AKAZE的运行结果与检测时间:
1、运行结果:

花费时间:

AKAZE与KAZE比较,时间上几乎少了很多,运行效率大大提高,所以说AKAZE是KAZE的加速版这一说法确实正确。

OpenCv-C++-KAZE(AKAZE)局部特征检测(一)相关推荐

  1. 基于C++和OpenCv的SIFT_图像局部特征检测算法代码的实现

    SIFT:尺度不变特征变换匹配算法详解 本章将要讲解的内容如下所示:    1)SIFT算法的简介    2)SIFT算法的实现细节    3)SIFT算法的应用领域    4)SIFT算法的改进与扩 ...

  2. OpenCV + CPP 系列(卌二)图像特征匹配( KAZE/AKAZE)

    文章目录 一.KAZE简介 二.代码演示 特征检测效果对比 演示匹配 一.KAZE简介 ECCV2012中出现了一种比SIFT更稳定的特征检测算法KAZE ([1]).KAZE的取名是为了纪念尺度空间 ...

  3. OpenCv-C++-KAZE(AKAZE)局部特征匹配(二)

    上一篇已经做出了KAZE(AKAZE)局部特征的检测,就差匹配没有做到. 那么,现在来实现一下: 放上代码: #include<opencv2/opencv.hpp> #include&l ...

  4. Python,OpenCV中的非局部均值去噪(Non-Local Means Denoising)

    Python,OpenCV中的非局部均值去噪(Non-Local Means Denoising) 1. 效果图 2. 原理 3. 源码 2.1 单彩色图去噪 2.2 多连续彩色帧去噪 参考 这篇博客 ...

  5. python opencv 彩色图非局部平均去噪

    python opencv 彩色图非局部平均去噪 代码: import cv2 import numpy as np # 灰度图像去噪 def MeansDenoising(img,N,h,templ ...

  6. python opencv 灰度图非局部平均去噪

    python opencv 灰度图非局部平均去噪 代码: import cv2 import numpy as np # 灰度图像去噪 def MeansDenoising(img,h,templat ...

  7. OpenCV实战——多尺度FAST特征检测

    OpenCV实战--多尺度FAST特征检测 0. 前言 1. BRISK 特征检测器 1.1 BRISK 检测关键点 1.2 多尺度关键点快速检测 2. ORB 特征检测算法 3. 完整代码 相关链接 ...

  8. OpenCV基础(23)特征检测与匹配

    图像的8x8像素部分被考虑,并将这个 8x8 框进一步划分为 4 个块,每个块为 4x4 维度.在每个 4x4 块内,图像梯度以向量的形式表示.通过搜索最独特或不同的特征在图像中找到关键点.这里,Ke ...

  9. (OpenCV+Python)--图片局部区域像素值处理(改进版)

    上一个版本看这里:<Python+OpenCV实现[图片]局部区域像素值处理> 上个版本的代码虽然实现了我需要的功能,但还是走了很多弯路,我意识到图片本就是数组形式,对于8位灰度图,通道数 ...

最新文章

  1. 14大招打造你的平面设计创意
  2. setwindowpos怎么改变z序_置顶窗口SetWindowPos()的用法
  3. Python基础教程:super()方法详解
  4. 关于一些知名深度学习模型的转换
  5. MySQL搭建主从复制 读写分离 分库分表 MyCat高可用
  6. dsp 数据类型强制转换_JavaSE第二章总结—数据类型
  7. videowriter最小的编码格式_cv2.VideoWriter() 指定写入视频帧编码格式
  8. 【ArcGIS风暴】ArcGIS 10.8中计算体积的方法总结
  9. 重磅!阿里宣布成立芯片公司,“平头哥”能解决中国的“无芯之痛”吗?
  10. spring boot security ajax_Spring-Boot-应用可视化监控
  11. php sizeof函数,sizeof()的简单介绍
  12. 8 定制10MINs 3
  13. linux导出日志命令_Linux中的导出命令
  14. 初学者|一起来看看词性标注
  15. SCP-bzoj-1000
  16. Android 5.1.1 源码目录结构
  17. 计算机网络应用云计算,计算机网络云计算技术应用
  18. 安装ie9提示未能完成安装_win10系统安装iE提示“internet Explorer未能完成安装”的修复教程...
  19. 贴片保险丝如何选型?
  20. OpenMAX编程-音视频等组件介绍

热门文章

  1. 解决数组转对象后,key自动排序
  2. 分布式计算模式:Stream
  3. Autofac简单介绍
  4. 频率在电子领域内,频率是一种最基本的参数,并与其他许多电参量的测量方案和测量结果都有着十分密切的关系。由于频率信号抗干扰能力强、易于传输,可以获得较高的测量精度。因此,频率的测量就显得尤为重要,测频方
  5. 向量组秩及其极大线性无关组求解浅析
  6. 服务器怎么防ddos攻击
  7. 小白投资理财必看:图解基金买入与卖出规则
  8. Python学习 —— open()函数
  9. 怎么使用计算机播放音乐,怎么给电脑设置默认音乐播放器
  10. swiper 效果参数淡入淡出