Python計(jì)算機(jī)視覺SIFT尺度不變的圖像特征變換
圖像特征-SIFT尺度不變特征變換
1.1圖像尺度空間
在一定的范圍內(nèi),無論物體是大還是小,人眼都可以分辨出來,然后計(jì)算機(jī)要具有相同的能力卻很難,所以要讓機(jī)器能夠?qū)ξ矬w在不同尺度下有一個統(tǒng)一的認(rèn)知,就需要考慮圖像在不同尺度下都存在的特點(diǎn)。
尺度空間的獲取通常使用高斯模糊來實(shí)現(xiàn)

1.2多分辨率金字塔

1.3高斯差分金字塔

1.4DoG空間極值檢測
為了尋找尺度空間的極值點(diǎn),每個像素點(diǎn)要和其圖像域(同一尺度空間)和尺度域(相鄰的尺度空間)的所有相鄰點(diǎn)進(jìn)行比較,當(dāng)其大于(或者小于)所有相鄰點(diǎn)時,該點(diǎn)就是極值點(diǎn)。如下圖所示,中間的檢測點(diǎn)要和其所在圖像的33鄰域8個像素點(diǎn),以及其相鄰的上下兩層33鄰域18個像素點(diǎn),共26個像素點(diǎn)進(jìn)行比較。

1.5關(guān)鍵點(diǎn)的精確定位
這些候選關(guān)鍵點(diǎn)是DoG空間的局部極值點(diǎn),而且這些極值點(diǎn)均為離散的點(diǎn),精確定位極值點(diǎn)的一種方法是對尺度空間DoG函數(shù)進(jìn)行曲線擬合,計(jì)算其極值點(diǎn),從而實(shí)現(xiàn)關(guān)鍵點(diǎn)的精確定位。

1.6消除邊界響應(yīng)

1.7特征點(diǎn)的主方向

1.8生成特征描述



OpenCV SIFT函數(shù)
import cv2 #opencv 讀取進(jìn)來為BGR格式
import matplotlib.pyplot as plt
import numpy as np
#一個魔法指令,不需要采用plt.show()顯示圖像
%matplotlib inline
print(cv2.__version__) # 3.4.1.15 pip install opencv-python ==3.4.1.15 pip install opencv-contrib-python==3.4.1.15
def cv_show(name,img):
cv2.imshow(name,img)
cv2.waitKey(0)
cv2.destroyAllWindows()
img = cv2.imread('images/test2.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv_show('gray',gray)
#得到特征點(diǎn)
sift = cv2.xfeatures2d.SIFT_create()
kp = sift.detect(gray,None)
img = cv2.drawKeypoints(gray,kp,img)
cv_show('keyPoint',img)
# 計(jì)算特征
kp, des = sift.compute(gray, kp)
print(np.array(kp).shape)
print(des.shape)
print(des[0])
以上就是Python計(jì)算機(jī)視覺SIFT尺度不變的圖像特征變換的詳細(xì)內(nèi)容,更多關(guān)于Python SIFT尺度不變圖像特征變的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python實(shí)現(xiàn)正整數(shù)分解質(zhì)因數(shù)操作示例
這篇文章主要介紹了Python實(shí)現(xiàn)正整數(shù)分解質(zhì)因數(shù)操作,結(jié)合實(shí)例形式分析了Python循環(huán)與遞歸兩種操作方法實(shí)現(xiàn)分解質(zhì)因數(shù)功能的相關(guān)操作技巧,需要的朋友可以參考下2018-08-08
Python+matplotlib+numpy繪制精美的條形統(tǒng)計(jì)圖
這篇文章主要介紹了Python+matplotlib+numpy繪制精美的條形統(tǒng)計(jì)圖,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
Python3與redis交互,保存的是字符串,取出來是bytes類型問題
這篇文章主要介紹了Python3與redis交互,保存的是字符串,取出來是bytes類型問題,具有很好的參考價值,希望對大家有所幫助,2023-09-09
基于Python實(shí)現(xiàn)視頻轉(zhuǎn)字符畫動漫小工具
大家都知道視頻就是一幀一幀的圖片構(gòu)成的。那么想要實(shí)現(xiàn)將視頻轉(zhuǎn)換為字符畫,就要將一部視頻全部逐幀拆解成圖片,然后采取和以前相同的將圖片轉(zhuǎn)換為字符畫的算法即可。本文將詳細(xì)為大家介紹如何實(shí)現(xiàn),需要的可以參考一下2021-12-12
快速排序的算法思想及Python版快速排序的實(shí)現(xiàn)示例
快速排序算法來源于分治法的思想策略,這里我們將來為大家簡單解析一下快速排序的算法思想及Python版快速排序的實(shí)現(xiàn)示例:2016-07-07
使用numpngw和matplotlib生成png動畫的示例代碼
這篇文章主要介紹了使用numpngw和matplotlib生成png動畫的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
TensorFlow實(shí)現(xiàn)指數(shù)衰減學(xué)習(xí)率的方法
這篇文章主要介紹了TensorFlow實(shí)現(xiàn)指數(shù)衰減學(xué)習(xí)率的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02

