成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

opencv python SIFT(尺度不變特征變換)

marek / 3317人閱讀

摘要:理論前面講的角點(diǎn)檢測(cè)器中的角點(diǎn)在旋轉(zhuǎn)的圖像中也是角點(diǎn),但是縮放呢如果縮放圖像,則角可能不是角例如,檢查下面的簡(jiǎn)單圖像,當(dāng)在同一窗口中放大時(shí),小窗口內(nèi)的小圖像中的角是平坦的所以角點(diǎn)檢測(cè)器不是尺度不變的所以,在年,不列顛哥倫比亞大學(xué)的在他的論

Introduction to SIFT (Scale-Invariant Feature Transform)

理論

前面講的Harris角點(diǎn)檢測(cè)器中的角點(diǎn)在旋轉(zhuǎn)的圖像中也是角點(diǎn),但是縮放呢? 如果縮放圖像,則角可能不是角.例如,檢查下面的簡(jiǎn)單圖像, 當(dāng)在同一窗口中放大時(shí),小窗口內(nèi)的小圖像中的角是平坦的.所以Harris角點(diǎn)檢測(cè)器不是尺度不變的.

所以,在2004年,不列顛哥倫比亞大學(xué)的D.Lowe在他的論文中提出了一種新的算法,即尺度不變特征變換(SIFT).

SIFT特征是基于物體上的一些局部外觀的興趣點(diǎn)而與影像的大小和旋轉(zhuǎn)無(wú)關(guān)。對(duì)于光線、噪聲、微視角改變的容忍度也相當(dāng)高.基于這些特性,它們是高度顯著而且相對(duì)容易擷取,在母數(shù)龐大的特征數(shù)據(jù)庫(kù)中,很容易辨識(shí)物體而且鮮有誤認(rèn).使用SIFT特征描述對(duì)于部分物體遮蔽的偵測(cè)率也相當(dāng)高,甚至只需要3個(gè)以上的SIFT物體特征就足以計(jì)算出位置與方位.在現(xiàn)今的電腦硬件速度下和小型的特征數(shù)據(jù)庫(kù)條件下,辨識(shí)速度可接近即時(shí)運(yùn)算.SIFT特征的信息量大,適合在海量數(shù)據(jù)庫(kù)中快速準(zhǔn)確匹配.

OpenCV中的SIFT
import numpy as np
import cv2

img = cv2.imread("img.jpg")
gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

sift = cv2.xfeatures2d.SIFT_create()
kp = sift.detect(gray,None)

img=cv2.drawKeypoints(gray,kp,img)

cv2.imshow("img",img)
cv2.waitKey()

NOTE:
lz直接運(yùn)行上述代碼時(shí),程序報(bào)錯(cuò):
module "cv2.cv2" has no attribute "xfeatures2d",后面查詢(xún)?cè)蛑繭penCv3.x以后只包含部分內(nèi)容,需要神經(jīng)網(wǎng)絡(luò)或者其他的函數(shù)需要導(dǎo)入opencv_contrib,所以需要pip install opencv-contrib-python

sift.detect()函數(shù)在圖像中查找關(guān)鍵點(diǎn), 如果只想搜索圖像的一部分,可以傳遞掩膜.
OpenCV還提供了cv2.drawKeyPoints()函數(shù),該函數(shù)在關(guān)鍵點(diǎn)的位置上繪制小圓圈.如果傳遞標(biāo)志cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS,它將繪制一個(gè)大小為keypoint的圓圈并顯示它的方向.

import numpy as np
import cv2

img = cv2.imread("img.jpg")

gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

sift = cv2.xfeatures2d.SIFT_create()
kp = sift.detect(gray,None)

img=cv2.drawKeypoints(gray,kp,img,flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)

cv2.imshow("img",img)
cv2.waitKey()

計(jì)算描述符,OpenCV提供了兩種方法:

如果已經(jīng)找到了關(guān)鍵點(diǎn),可以調(diào)用sift.compute()來(lái)計(jì)算找到的關(guān)鍵點(diǎn)的描述符, 例如:kp,des = sift.compute(gary,kp)

如果沒(méi)有找到關(guān)鍵點(diǎn),可以使用函數(shù)sift.detectAndCompute()在一個(gè)步驟中直接查找關(guān)鍵點(diǎn)和描述符

sift = cv2.xfeatures2d.SIFT_create()
kp, des = sift.detectAndCompute(gray,None)

kp是關(guān)鍵點(diǎn)列表,des是形狀為Number_of_Keypoints×128的numpy數(shù)組.

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42063.html

相關(guān)文章

  • Programming Computer Vision with Python (學(xué)習(xí)筆記十一)

    摘要:降采樣的目的是為了綜合所有不同清晰度的圖像進(jìn)行關(guān)鍵點(diǎn)提取,這種關(guān)鍵點(diǎn)攜帶了不同清晰度的信息,對(duì)縮放具有不變性。是對(duì)的一種改進(jìn),主要特點(diǎn)是快速。的達(dá)到維,導(dǎo)致的比較耗時(shí),使用哈爾小波轉(zhuǎn)換得到的方向,讓的降到維,減少了一半,提高了匹配速度。 尺度不變特征變換(Scale-invariant feature transform, 簡(jiǎn)稱(chēng)SIFT)是圖像局部特征提取的現(xiàn)代方法——基于區(qū)域/圖像塊...

    levius 評(píng)論0 收藏0
  • opencv python SURF

    摘要:理論在上一章中,我們看到了的關(guān)鍵點(diǎn)檢測(cè)和描述但它相對(duì)較慢,人們需要更加快速的版本,所以年引入了一種名為的新算法顧名思義,它是的加速版本作為尺度不變特征變換算法的加速版,算法在適中的條件下完成兩幅圖像中物體的匹配基本實(shí)現(xiàn)了實(shí)時(shí)處理,其快速的 Introduction to SURF (Speeded-Up Robust Features) 理論 在上一章中,我們看到了SIFT的關(guān)鍵點(diǎn)檢...

    andot 評(píng)論0 收藏0
  • opencv python 使用特征匹配和單應(yīng)性查找對(duì)象

    摘要:為了解決這個(gè)問(wèn)題,算法使用和可以通過(guò)參數(shù)來(lái)設(shè)定所以好的匹配提供的正確的估計(jì)被稱(chēng)為,剩下的被稱(chēng)為返回一個(gè)掩模,這個(gè)掩模確定了和點(diǎn) Feature Matching + Homography to find Objects 聯(lián)合使用特征提取和 calib3d 模塊中的 findHomography 在復(fù)雜圖像中查找已知對(duì)象. 之前在一張雜亂的圖像中找到了一個(gè)對(duì)象(的某些部分)的位置.這些...

    BDEEFE 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<