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-08Python+matplotlib+numpy繪制精美的條形統(tǒng)計(jì)圖
這篇文章主要介紹了Python+matplotlib+numpy繪制精美的條形統(tǒng)計(jì)圖,具有一定借鑒價值,需要的朋友可以參考下2018-01-01Python3與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-01TensorFlow實(shí)現(xiàn)指數(shù)衰減學(xué)習(xí)率的方法
這篇文章主要介紹了TensorFlow實(shí)現(xiàn)指數(shù)衰減學(xué)習(xí)率的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02