日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

ORB特征点

發布時間:2024/6/21 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 ORB特征点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ORB(Oriented FAST and Rotated BRIEF),2011年提出,是一種快速特征點提取和描述的算法。ORB特征是將FAST特征點的檢測方法與BRIEF特征描述子結合起來,并在它們原來的基礎上做了改進與優化(ORB主要解決了BRIEF描述子不具備旋轉不變性的問題)。據說,ORB算法的速度是sift的100倍,是surf的10倍。

【函數】

Ptr<ORB> create(int nfeatures=500, float scaleFactor=1.2f, int nlevels=8, int edgeThreshold=31,int firstLevel=0, int WTA_K=2, int scoreType=ORB::HARRIS_SCORE, int patchSize=31, int fastThreshold=20);

【參數說明】原理鏈接

nfeatures——最多提取的特征點的數量

scaleFactor——金字塔圖像之間的尺度參數

nlevels——金字塔層數

edgeThreshold——邊緣閾值,這個值主要是根據后面的patchSize來定的,靠近邊緣edgeThreshold以內的像素是不檢測特征點的。

firstLevel——第一層的索引值

WTA_K——用于產生BIREF描述子的點對的個數,一般為2個,也可以設置為3個或4個,那么這時候描述子之間的距離計算就不能用漢明距離了,而是應該用一個變種。OpenCV中,如果設置WET_K = 2,則選用點對就只有2個點,匹配的時候距離參數選擇NORM_HAMMING,像素點會被判為0或1標識不同區域。如果WET_K設置為3或4,則BIREF描述子會選擇3個或4個點,那么后面匹配的時候應該選擇的距離參數為NORM_HAMMING2,像素點會被標識為0、1、2或者0、1、2、3。

scoreType——用于對特征點進行排序的算法,你可以選擇HARRIS_SCORE,也可以選擇FAST_SCORE,但是它也只是比前者快一點點而已。

patchSize——用于計算BIREF描述子的特征點鄰域大小

fastThreshold——fast特征閾值

【案例】

#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 keyPointImage1,keyPointImage2;

        Ptr<ORB> orb = ORB::create();
        orb->detect(srcGrayImage,detectKeyPoint);
        drawKeypoints(srcImage,detectKeyPoint,keyPointImage1,Scalar(0,0,255),DrawMatchesFlags::DRAW_RICH_KEYPOINTS);
        drawKeypoints(srcImage,detectKeyPoint,keyPointImage2,Scalar(0,0,255),DrawMatchesFlags::DEFAULT);

        imshow("src image",srcImage);
        imshow("keyPoint image1",keyPointImage1);
        imshow("keyPoint image2",keyPointImage2);

        waitKey(0);
        return 0;
}

總結

以上是生活随笔為你收集整理的ORB特征点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。