国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SIFT算法 特征匹配

這篇具有很好參考價(jià)值的文章主要介紹了SIFT算法 特征匹配。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、SIFT算法

參考鏈接 【OpenCV】SIFT原理與源碼分析

DOG尺度空間構(gòu)造(Difference of Gaussian)

首先是對(duì)原特征圖下采樣可以得到金字塔形狀的多分辨率空間,作為特征金字塔,該特征金字塔可以方便提取出不同尺度的特征(感覺(jué)這里也可以叫多尺度空間)
SIFT算法 特征匹配
多尺度空間:利用高斯核對(duì)圖像進(jìn)行卷積操作,不同的高斯核參數(shù) σ \sigma σ對(duì)應(yīng)不同的形狀,相當(dāng)于多尺度空間。利用高斯核對(duì)圖像做卷積操作就是高斯模糊,卷積和形狀越矮越扁,模糊程度就越大。關(guān)鍵特征在不斷模糊的過(guò)程中相對(duì)其他位置應(yīng)該是更容易保留下來(lái)的,因此在后面對(duì)特征圖做差時(shí)可以形成極值點(diǎn)。
SIFT算法 特征匹配

分別對(duì)每層特征金字塔中的特征圖,用不同的高斯核進(jìn)行卷積操作,就得到了高斯特征金字塔,再對(duì)相鄰的兩層作差,進(jìn)一步得到DOG金字塔
SIFT算法 特征匹配
SIFT算法 特征匹配

關(guān)鍵點(diǎn)搜索與定位

關(guān)鍵特征在不同的高斯模糊下更容易保留,在DOG特征圖中表現(xiàn)為極值點(diǎn)。
關(guān)鍵點(diǎn)搜索:也比較復(fù)雜
SIFT算法 特征匹配
提高定位精度:曲線擬合
SIFT算法 特征匹配

方向賦值、關(guān)鍵點(diǎn)描述

SIFT算法 特征匹配

方向賦值與與關(guān)鍵點(diǎn)描述,與HOG特征類似,需要計(jì)算每個(gè)點(diǎn)的梯度,計(jì)算梯度直方圖,最后得到的特征向量。

二、特征匹配

Feature Matching + Homography to find Objects
SIFT圖像匹配及其python實(shí)現(xiàn)

對(duì)兩個(gè)簡(jiǎn)單圖像進(jìn)行特征匹配,并利用隨機(jī)抽樣一致(RANSAC)濾除錯(cuò)誤匹配
SIFT算法 特征匹配
SIFT算法 特征匹配
Python 代碼文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-444978.html

img = cv2.imread('./rl2_s.png')
img2 = cv2.imread('./rl_s.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)

# # SURF或SIFT特征
# sift = cv2.xfeatures2d.SIFT_create()
surf = cv2.xfeatures2d.SURF_create(400)
# surf.setExtended(True)
kp1, des1 = surf.detectAndCompute(gray, mask=None)
kp2, des2 = surf.detectAndCompute(gray2, mask=None)

anot1 = cv2.drawKeypoints(gray, kp1, None)
anot2 = cv2.drawKeypoints(gray2, kp2, None)
plt.subplot(121)
plt.imshow(anot1)
plt.subplot(122)
plt.imshow(anot2)

# # MATCH
matcher = cv2.BFMatcher()
raw_matches = matcher.knnMatch(des1, des2, k=2)
good_matches = []
for m1, m2 in raw_matches:
    #  如果最接近和次接近的比值大于一個(gè)既定的值,那么我們保留這個(gè)最接近的值,認(rèn)為它和其匹配的點(diǎn)為good_match
    if m1.distance < 0.85 * m2.distance:
        good_matches.append([m1])
# good_matches = sorted(raw_matches, key=lambda x: x[0].distance)[:300]

# # RANSAC
assert len(good_matches) > 4, "Too few matches."
kp1_array = np.float32([kp1[m[0].queryIdx].pt for m in good_matches]).reshape(-1, 1, 2)
kp2_array = np.float32([kp2[m[0].trainIdx].pt for m in good_matches]).reshape(-1, 1, 2)
H, status = cv2.findHomography(kp1_array, kp2_array, cv2.RANSAC, ransacReprojThreshold=4)
good_matches = [good_matches[i] for i in range(len(good_matches)) if status[i] == 1]
imgOut = cv2.warpPerspective(gray2, H, (gray.shape[1], gray.shape[0]), flags=cv2.INTER_LINEAR + cv2.WARP_INVERSE_MAP)
print(H)  # 變換矩陣H,透視變換?
# plt.figure()
# plt.imshow(imgOut)
# cv2.findFundamentalMat()  # 用于3D

matches = cv2.drawMatchesKnn(anot1, kp1, anot2, kp2, good_matches, None, flags = 2)

plt.figure()
plt.imshow(matches)

plt.show()

到了這里,關(guān)于SIFT算法 特征匹配的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 特征點(diǎn)的檢測(cè)與匹配(ORB,SIFT,SURFT比較)[opencv-python]

    特征點(diǎn)的檢測(cè)與匹配(ORB,SIFT,SURFT比較)[opencv-python]

    本文旨在總結(jié)opencv-python上特征點(diǎn)的檢測(cè)和匹配。 1、特征點(diǎn)的檢測(cè)(包括:ORB,SIFT,SURFT) 2、特偵點(diǎn)匹配方法 (包括:暴力法,F(xiàn)LANN,以及隨機(jī)抽樣一致性優(yōu)化RANSAC算法) 注:由于SURF專利問(wèn)題,所以opencv官方包目前不支持SURF但支持ORB和SIFT,安裝opencv-contrib-python包就可以解決 一

    2024年02月06日
    瀏覽(31)
  • 學(xué)習(xí)筆記:Opencv實(shí)現(xiàn)圖像特征提取算法SIFT

    學(xué)習(xí)筆記:Opencv實(shí)現(xiàn)圖像特征提取算法SIFT

    2023.8.19 為了在暑假內(nèi)實(shí)現(xiàn)深度學(xué)習(xí)的進(jìn)階學(xué)習(xí),特意學(xué)習(xí)一下傳統(tǒng)算法,分享學(xué)習(xí)心得,記錄學(xué)習(xí)日常 SIFT的百科: SIFT =?Scale Invariant Feature Transform,?尺度不變特征轉(zhuǎn)換 全網(wǎng)最詳細(xì)SIFT算法原理實(shí)現(xiàn)_ssift算法_Tc.小浩的博客-CSDN博客 在環(huán)境配置中要配置opencv: pip install opencv-c

    2024年02月12日
    瀏覽(25)
  • 【教程】Autojs使用OpenCV進(jìn)行SIFT/BRISK等算法進(jìn)行圖像匹配

    轉(zhuǎn)載請(qǐng)注明出處:小鋒學(xué)長(zhǎng)生活大爆炸[xfxuezhang.cn] ????????此代碼可以替代內(nèi)置的images.findImage函數(shù)使用,但可能會(huì)誤匹配,如果是對(duì)匹配結(jié)果要求比較高的,還是得謹(jǐn)慎使用。

    2024年02月07日
    瀏覽(22)
  • Lesson4-3:OpenCV圖像特征提取與描述---SIFT/SURF算法

    Lesson4-3:OpenCV圖像特征提取與描述---SIFT/SURF算法

    學(xué)習(xí)目標(biāo) 理解 S I F T / S U R F SIFT/SURF S I FT / S U RF 算法的原理, 能夠使用 S I F T / S U R F SIFT/SURF S I FT / S U RF 進(jìn)行關(guān)鍵點(diǎn)的檢測(cè) 1.1 SIFT原理 前面兩節(jié)我們介紹了 H a r r i s Harris H a rr i s 和 S h i ? T o m a s i Shi-Tomasi S hi ? T o ma s i 角點(diǎn)檢測(cè)算法,這兩種算法具有旋轉(zhuǎn)不變性,但不具

    2024年02月09日
    瀏覽(21)
  • 基于SIFT圖像特征識(shí)別的匹配方法比較與實(shí)現(xiàn)

    基于SIFT圖像特征識(shí)別的匹配方法比較與實(shí)現(xiàn)

    目前常用的匹配器有 BFMatcher and FlannBasedMatcher 1.1 BFMatcher BFMatcher 全稱是 Brute-Force Matcher (直譯即為暴力匹配器) 大致原理: 對(duì)于 img1 中的每個(gè)描述符, BFMatcher 將其與 img2 中的所有描述符進(jìn)行比較;它計(jì)算兩個(gè)描述符之間的距離度量(例如,歐幾里得距離或漢明距離,默認(rèn)使

    2024年02月09日
    瀏覽(32)
  • Opencv之RANSAC算法用于直線擬合及特征點(diǎn)集匹配詳解

    Opencv之RANSAC算法用于直線擬合及特征點(diǎn)集匹配詳解

    講述Ransac擬合與最小二乘在曲線擬合上的優(yōu)缺點(diǎn) 講述在進(jìn)行特征點(diǎn)匹配時(shí),最近鄰匹配與Ransac匹配的不同之處 另外,Ransac也被用于橢圓擬合、變換矩陣求解等 1.1 原理 RANSAC(RANdom SAmple Consensus,隨機(jī)采樣一致)算法是從一組含有“外點(diǎn)”(outliers)的數(shù)據(jù)中正確估計(jì)數(shù)學(xué)模型參數(shù)的

    2024年02月05日
    瀏覽(38)
  • 機(jī)器學(xué)習(xí)圖像特征提取—SIFT特征提取原理及代碼實(shí)現(xiàn)

    目錄 1 SIFT簡(jiǎn)介 2 SIFT原理及特點(diǎn) 2.1 SIFT算法特點(diǎn) 2.2 SIFT特征檢測(cè) 3 SIFT代碼實(shí)現(xiàn) ? ? ? ?SIFT,即尺度不變特征變換(Scale-invariant feature transform,SIFT),是用于圖像處理領(lǐng)域的一種描述。這種描述具有尺度不變性,可在圖像中檢測(cè)出關(guān)鍵點(diǎn),是一種局部特征描述子。 ? ? ? SIF

    2024年02月06日
    瀏覽(50)
  • OpenCV 入門教程:SIFT和SURF特征描述

    SIFT (尺度不變特征變換)和 SURF (加速穩(wěn)健特征)是圖像處理中常用的特征描述算法,用于提取圖像中的關(guān)鍵點(diǎn)和生成對(duì)應(yīng)的特征描述子。這些算法具有尺度不變性、旋轉(zhuǎn)不變性和光照不變性等特點(diǎn),適用于圖像匹配、目標(biāo)識(shí)別和三維重建等應(yīng)用。本文將以 SIFT 和 SURF 特征

    2024年02月15日
    瀏覽(18)
  • openCV實(shí)戰(zhàn)-系列教程7:輪廓檢測(cè)2與模板匹配(輪廓檢測(cè)/輪廓特征/輪廓近似/輪廓邊界矩陣/輪廓邊界圓/模版匹配)、原理解析、源碼解讀

    openCV實(shí)戰(zhàn)-系列教程7:輪廓檢測(cè)2與模板匹配(輪廓檢測(cè)/輪廓特征/輪廓近似/輪廓邊界矩陣/輪廓邊界圓/模版匹配)、原理解析、源碼解讀

    打印一個(gè)圖片可以做出一個(gè)函數(shù): 前面我們計(jì)算了這個(gè)圖片的輪廓: ?它的輪廓信息保存在了contours中,取出第一個(gè)輪廓,計(jì)算相關(guān)參數(shù): 打印結(jié)果: 8500.5? 437.9482651948929 這是分別求出了周長(zhǎng)和面積,這里的True表示的是否是閉合的。? ? 如圖,第一個(gè)圖是原圖,如果將它的

    2024年02月10日
    瀏覽(21)
  • 【圖像處理】SIFT角點(diǎn)特征提取原理

    ????????提起在OpenCV中的特征點(diǎn)提取,可以列出Harris,可以使用SIFT算法或SURF算法來(lái)檢測(cè)圖像中的角特征點(diǎn)。本篇圍繞sift的特征點(diǎn)提取,只是管中窺豹,而更多的特征點(diǎn)算法有: Harris Stephens / Shi–Tomasi 角點(diǎn)檢測(cè)算法 F?rstner角點(diǎn)檢測(cè)器; 多尺度 Harris 算子 水平曲線曲率法

    2024年02月07日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包