python 3+opencv 3.4(五)--圖像特征提取

  1. 應(yīng)用:圖像拼接哈误、圖像匹配
  2. 特征檢測(cè)和提取算法:Harris(檢測(cè)角點(diǎn))SIFT(檢測(cè)斑點(diǎn)blob)SURF(檢測(cè)斑點(diǎn))FAST(檢測(cè)角點(diǎn))BRIEF(檢測(cè)斑點(diǎn))ORB(帶方向的FAST算法與具有旋轉(zhuǎn)不變性的BRIEF算法)
  3. 特征匹配算法:暴力匹配(Brute-Force)基于FLANN匹配。
  4. 特征:特殊的圖形區(qū)域板熊、獨(dú)特性和易于識(shí)別性--角點(diǎn)和高密度區(qū)域。大量重復(fù)區(qū)域和低密度區(qū)域不適合作為特征海诲,邊緣時(shí)很好的特征洛勉,斑點(diǎn)(與周圍有很大差別的區(qū)域)
  5. cornerHarris檢測(cè)角點(diǎn)特征,代碼如下:
import cv2
import numpy as np

img = cv2.imread("../data/0.jpg")
 
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #彩色轉(zhuǎn)化為灰度
gray=np.float32(gray) #轉(zhuǎn)化為32浮點(diǎn)型
dst = cv2.cornerHarris(gray,15,23,0.04)
# 第三個(gè)參數(shù):Sobel算法中孔纵穿,行列變化檢測(cè)邊緣下隧。3-31之間奇數(shù)
#角點(diǎn)檢測(cè)的敏感度
#第二個(gè)參數(shù):參數(shù)值越小,標(biāo)記角點(diǎn)的記號(hào)越小

img[dst>0.01*dst.max()]=[0,0,255]
cv2.namedWindow("corners", cv2.WINDOW_NORMAL)
while(True):
    cv2.imshow('corners',img)
    if cv2.waitKey(10000) & 0xff == ord('q'): #退出循環(huán)條件
        break
cv2.destroyAllWindows()
#cv2.imshow('corners',img)
#cv2.waitKey(0) #退出循環(huán)條件
#cv2.destroyAllWindows()
  1. 顯示結(jié)果如下:


    檢測(cè)角點(diǎn)
  2. 使用cornerHarris能很好的檢測(cè)角點(diǎn)谓媒,與角點(diǎn)本身特征有關(guān)淆院,但增加或者減小圖像大小,角點(diǎn)數(shù)量變化句惯。
  3. 尺度不變特征變換(SIFT)對(duì)于不同的圖像尺度輸出相同的結(jié)果土辩。SIFT不檢測(cè)關(guān)鍵點(diǎn),通過(guò)一個(gè)特征向量描述關(guān)鍵點(diǎn)周圍區(qū)域情況抢野。
  4. 步驟:
    1. 讀入圖像拷淘,并轉(zhuǎn)化為灰度圖
    2. 創(chuàng)建SIFT對(duì)象,計(jì)算灰度圖像sift=cv2.xfeatures2d.SIFT_create()
      keypoints,descriptor=sift.detectAndCompute(gray,None)返回值是關(guān)鍵點(diǎn)信息和描述符指孤。--具體含義不清楚启涯,沒(méi)有看懂具體形式--,keypoints是list,里面每一個(gè)元素比如keypoint[0]為cv2.Keypoint類恃轩,有屬性pt(x,y坐標(biāo))size(特征直徑)angle(特征方向)response(關(guān)鍵點(diǎn)強(qiáng)度)octave(所在金字塔層次)class_id(關(guān)鍵點(diǎn)ID)
    3. 圖像上繪制關(guān)鍵點(diǎn)结洼,使用drawKeypoints函數(shù),對(duì)每一個(gè)關(guān)鍵點(diǎn)繪制圓圈和方向详恼。
  5. 完整代碼如下:
import cv2
import numpy as np

img= cv2.imread('../data/0.jpg')
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
sift=cv2.xfeatures2d.SIFT_create()
#sift對(duì)象適用DoG檢測(cè)關(guān)鍵點(diǎn)补君,并計(jì)算特征向量
#返回關(guān)鍵點(diǎn)信息和描述符
keypoints,descriptor=sift.detectAndCompute(gray,None)


img=cv2.drawKeypoints(image=img,outImage=img,keypoints=keypoints,flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS,color=(51,163,236))

cv2.namedWindow('sift_keypoints',cv2.WINDOW_NORMAL)
cv2.imshow('sift_keypoints',img)
while(True):
    if cv2.waitKey(1000) & 0xff==ord('q'):
        break
cv2.destroyAllWindows()
  1. 生成圖像如下:
    SIFT
  2. SURF使用快速Hessian算法檢測(cè)關(guān)鍵點(diǎn),與SIFT無(wú)太大區(qū)別昧互,只需修創(chuàng)建surf對(duì)象并計(jì)算特征向量和往原始圖像畫出即可:suft=cv2.xfeatures2d.SURF_create(8000)
    keypoints,descriptor=suft.detectAndCompute(gray,None)
    其中設(shè)置閾值為8000挽铁,越高識(shí)別的特征越少
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市敞掘,隨后出現(xiàn)的幾起案子叽掘,更是在濱河造成了極大的恐慌,老刑警劉巖玖雁,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件更扁,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)浓镜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門溃列,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人膛薛,你說(shuō)我怎么就攤上這事听隐。” “怎么了哄啄?”我有些...
    開(kāi)封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵雅任,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我咨跌,道長(zhǎng)沪么,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任锌半,我火速辦了婚禮禽车,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拳喻。我一直安慰自己哭当,他們只是感情好猪腕,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布冗澈。 她就那樣靜靜地躺著,像睡著了一般陋葡。 火紅的嫁衣襯著肌膚如雪亚亲。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天腐缤,我揣著相機(jī)與錄音捌归,去河邊找鬼。 笑死岭粤,一個(gè)胖子當(dāng)著我的面吹牛惜索,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播剃浇,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼巾兆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了虎囚?” 一聲冷哼從身側(cè)響起角塑,我...
    開(kāi)封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎淘讥,沒(méi)想到半個(gè)月后圃伶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年窒朋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了搀罢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡侥猩,死狀恐怖魄揉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拭宁,我是刑警寧澤洛退,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站杰标,受9級(jí)特大地震影響兵怯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜腔剂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一媒区、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧掸犬,春花似錦袜漩、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至介褥,卻和暖如春座掘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背柔滔。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工溢陪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人睛廊。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓形真,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親超全。 傳聞我的和親對(duì)象是個(gè)殘疾皇子咆霜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361