點,就是影象中的特殊位置,是很常用的一類特徵,點的區域性特徵也可以叫做「關鍵特徵點」(keypoint feature),或「興趣點」(interest point),或「角點」(conrner)。
今天所講的角點簡單定義來說:就是極值點,即在某方面屬性特別突出的點。
如上圖紅圈就是一種很簡單的角點。
為什麼要檢測角點
角點是影象很重要的特徵,對影象圖形的理解和分析有很重要的作用。角點在保留影象圖形重要特徵的同時,可以有效地減少資訊的資料量,使其資訊的含量很高,有效地提高了計算的速度,有利於影象的可靠匹配,使得實時處理成為可能。
應用:角點在三維場景重建、運動估計、目標跟蹤、目標識別、影象配準與匹配等計算機視覺領域起著非常重要的作用
關於角點的具體描述可以有幾種:
目前的角點檢測演算法可歸納為3類:
角點檢測思路
角點檢測演算法基本思想是使用乙個固定視窗(取某個畫素的乙個鄰域視窗)在影象上進行任意方向上的滑動,比較滑動前與滑動後兩種情況,視窗中的畫素灰度變化程度,如果存在任意方向上的滑動,若有著較大灰度變化,那麼我們可以認為該視窗中存在角點。
如上圖
公式理解
用數學公式描述視窗在上滑動時畫素點灰度變化
[u,v]是視窗的偏移量
(x,y)是視窗內所對應的畫素座標位置,視窗有多大,就有多少個位置
i(x,y) 是平移《前》視窗某點的畫素值,i(x+u,y_v)時視窗平移《後》對應點的畫素值
w(x,y)是視窗函式
視窗函式的兩種形式
det m為行列式的值
trace m 為對角線和
k一般取0.04-0.06之間
當r大於一定閾值,我們認為此畫素點是角點,反之,則不是。
# encoding:utf-8
import cv2
import numpy as np
#讀入影象並轉化為float型別,用於傳遞給harris函式
filename =
'c:/users/86177/desktop/picture/5.png'
img = cv2.imread(filename)
#cv2.cvtcolor(p1,p2) 是顏色空間轉換函式,p1是需要轉換的,p2是轉換成何種格式。
#cv2.color_bgr2gray 將bgr格式轉換成灰度
img_gray=cv2.cvtvolor(img,cv2.color_bgr2gray)
img_gray=np.float32(img_gray)
#對影象執行harris
harris_detector = cv2.cornerharris(gray_img,2,
3,0.05
)#膨脹harris結果
dst = cv2.dilate(harris_detector,
none
)# 設定閾值
thres =
0.03
*dst.
max(
)img[dst > thres]=[
0,0,
255]
cv2.imshow(
'show'
, img)
#cvwaitkey()函式的功能是不斷重新整理影象
cv2.waitkey(
)
cv2.cornerharris(src, blocksize, ksize, k, dst=none, bordertype=none)可以用來進行角點檢測
下:• img - 資料型別為 float32 的輸入影象。
• blocksize - 角點檢測中要考慮的領域大小。
• ksize - sobel 求導中使用的視窗大小
• k - harris 角點檢測方程中的自由引數,取值引數為 [0,04,0.06]
結果
每週一激勵話語
你若被富人影響,就會有賺錢的慾望 你若被窮人影響,就會有安定的滿足 你若被勵志的人影響,就會有上進的動力 你若被懶惰的人影響,就會有頹廢的退縮 你若被積極的人影響,就會有生活的激情 你若被消極的人影響,就會有失望的沉淪!所以,你一定要靠近那些充滿正能量的人,遠離那些充滿負能量的人,因為正能量能夠給你...
五 每週一學 神經網路優化引數
神經網路學習要求大量的資料和很多引數我們乙個如何選擇和優化他們呢,我們接下來將介紹一下網路優化引數 神經網路中的每個神經元節點接受上一層神經元的輸出值作為本神經元的輸入值,並將輸入值傳遞給下一層,輸入層神經元節點會將輸入屬性值直接傳遞給下一層 隱層或輸出層 在多層神經網路中,上層節點的輸出和下層節點...
每週一總結(1)
實習第一周。來到公司 第一件事就是 裝各種軟體。好在以前裝了myeclpise8.5 並且tomcat 也配置好了。只是 那會裝svn怎麼也弄不上。雖然從網上搜過很多方法 還是不行。這次 終於 把8.5的svn給裝上了。方法如下 下下來的那個site 1.6.5 然後用底下的features plu...