• KAZE、AKAZE特征点


    AKAZE是KAZE的加速版,sift,surf等特征都是通过高斯核进行线性尺度空间进行特征检测的,相同尺度下每个点的变换是一样的,由于高斯函数是低通滤波函数,会平滑图像边缘,以至图像损失掉许多细节信息。针对这一问题,作者提出了一种基于非线性尺度空间的特征点检测方法,该非线性尺度空间保证了图像边缘在尺度变化中信息损失量非常少,从而极大地保持了图像细节信息。

    【函数】

    Ptr<KAZE> create(bool extended=false, bool upright=false, float threshold = 0.001f, int nOctaves = 4, int nOctaveLayers = 4, int diffusivity = KAZE::DIFF_PM_G2);

    Ptr<AKAZE> create(int descriptor_type=AKAZE::DESCRIPTOR_MLDB, int descriptor_size = 0, int descriptor_channels = 3, float threshold = 0.001f, int nOctaves = 4, int nOctaveLayers = 4, int diffusivity = KAZE::DIFF_PM_G2);

    【参数】原理链接

    extended——是否使用 128 维特性集合

    upright——不考虑关键点的方向,直接设置为垂直,这被称为 upright-SURF 或者 U-SURF

    threshold ——阈值

    nOctaves ——多少尺度及范围将参与计算。nOctave 的默认值 4 可以适用于大多数场景,减少到 3 并不会获得太多的性能提高。

    nOctaveLayers ——nOctaveLayers 被某些研究证明设为 4 可能更有用,但计算代价更大。

    diffusivity ——扩散类型

    descriptor_type——描述符类型

    descriptor_size ——描述符尺寸

    descriptor_channels ——描述符通道数

    【案例】

    #include <opencv2/opencv.hpp>
    #include <iostream>
    using namespace std;
    using namespace cv;
    
    int main()
    {
        Mat srcImage = imread("D:/sunflower.png");
            Mat srcGrayImage;
            if (srcImage.channels() == 3)
            {
                cvtColor(srcImage,srcGrayImage,CV_RGB2GRAY);
            }
            else
            {
                srcImage.copyTo(srcGrayImage);
            }
            vector<KeyPoint>detectKeyPoint;
            Mat keyPointImage;
    
            Ptr<KAZE> kaze = KAZE::create();//把KAZE换成AKAZE即可
            kaze->detect(srcGrayImage,detectKeyPoint);
            drawKeypoints(srcImage,detectKeyPoint,keyPointImage,Scalar(0,0,255),DrawMatchesFlags::DEFAULT);
    
            imshow("src image",srcImage);
            imshow("keyPoint",keyPointImage);
    
            waitKey(0);
            return 0;
    }
  • 相关阅读:
    Java多线程知识-Callable和Future
    C#程序集Assembly学习随笔(增补版,附图)_AX
    C#程序集Assembly学习随笔(第一版)_AX
    【.Net】 C#访问修饰符
    访问修饰符(C# 编程指南)
    Restful API 架构与设计参考原则
    RESTful API 设计指南
    WebService的两种方式SOAP和REST比较
    公众号
    es6(const、let)
  • 原文地址:https://www.cnblogs.com/xixixing/p/12470983.html
Copyright © 2020-2023  润新知