1. 程式人生 > >影象處理——SURF演算法

影象處理——SURF演算法

(2)斑點檢測

    斑點:與周圍有著顏色和灰度差別的區域。
    在一個一維訊號中,讓它和高斯二階導數進行卷積,也就是拉普拉斯變換,那麼在訊號的邊緣處就會出現過零點,如下圖所示:


    高斯拉普拉斯Log探測器的響應值就是在衡量影象的相似性,如下圖是一個影象的高斯拉普拉斯變換的三維圖和灰度圖顯示,在影象中的斑點尺寸與高斯拉普拉斯函式
的形狀趨於一致時,影象的拉普拉斯響應抵達最大。


    Hession矩陣就是利用二階微分來進行斑點檢測,其矩陣如下:

(3)hession矩陣行列式的簡化

給定影象II中的一個點x

(i,j)x(i,j),在點xx處,尺度為σσ的Hessian矩陣H(x,σ)H(x,σ)定義如下:

H(x,σ)=[Lxx(x,σ)Lxy(x,σ)Lxy(x,σ)Lyy(x,σ)]H(x,σ)=[Lxx(x,σ)Lxy(x,σ)Lxy(x,σ)Lyy(x,σ)]

式中,Lxx(x,σ)Lxx(x,σ)是高斯二階微分2g(σ)x2∂2g(σ)∂x2在點xx處與影象II的卷積,Lx,y(x,σ)Lx,y(x,σ)Lyy(x,σ)Lyy(x,σ)具有類似的含義。

當Hessian矩陣的判別式取得區域性極大值時,判定當前點是比周圍鄰域內其他點更亮或更暗的點,由此來定位關鍵點的位置。

我們知道在離散數字影象中,一階導數是相鄰畫素的灰度差:


二階導數是對一階導數的再次求導:


反過來看Hessian矩陣的判別式,其實就是當前點對瓶方向二階偏導乘以垂直方向的二階偏導再減去當前點水平、垂直二階偏導的二次方:


下面顯示的是上面三種高斯微分運算元的圖形。

image

但是利用Hessian行列式進行影象斑點檢測時,有一個缺點。由於二階高斯微分被離散化和裁剪的原因,導致了影象在旋轉奇數倍的π/4π/4時,即轉換到模板的對角線方向時,特徵點檢測的重複性降低(也就是說,原來特徵點的地方,可能檢測不到特徵點了)。而在π

/2π/2時,特徵點檢測的重現率真最高。但這一小小的不足不影響我們使用Hessian矩陣進行特徵點的檢測。

為了將模板與圖產像的卷積轉換為盒子濾波運算,我們需要對高斯二階微分模板進行簡化,使得簡化後的模板只是由幾個矩形區域組成,矩形區域內填充同一值,如下圖所示,在簡化模板中白色區域的值為正數,黑色區域的值為負數,灰度區域的值為0。

image

對於σ=1.2σ=1.2的高斯二階微分濾波器,我們設定模板的尺寸為9×99×9的大小,並用它作為最小尺度空間值對影象進行濾波和斑點檢測。我們使用

相關推薦

影象處理——SURF演算法

(2)斑點檢測     斑點:與周圍有著顏色和灰度差別的區域。     在一個一維訊號中,讓它和高斯二階導數進行卷積,也就是拉普拉斯變換,那麼在訊號的邊緣處就會出現過零點,如下圖所示:     高斯拉普拉斯Log探測器的響應值就是在衡量影象的相似性,如下圖是一個影象的高斯拉普

影象處理.surf,演算法,影象處理

在對surf編碼完成之後,對surf進行改進。將影象在鄰域內相交的特徵點連線起來。 兩兩比較特徵點的半徑(scale)之和r與其距離d的大小。若d小於r,說明這個特徵點有交集,連線兩個特徵點,否則,沒有交集。 加入的程式碼如下: void getPointRelation(

影象處理OpenCV演算法04

8、邊緣檢測       大多數邊緣檢測運算元是基於方向差分卷積核求卷積的方法,通常有四種方式來衡量最後輸出的邊緣強度。(1)取對應位置絕對值的和:    ,(2)取對應位置平方和的開方:,(3)取對應位置絕對值的最大值:,(4

影象處理OpenCV演算法03

6、閾值分割       閾值分割主要是根據灰度值資訊提取前景,所以對前景物體有較強對比度的影象的分割特別有用。在OpenCV中通過呼叫cv2.threshold()實現閾值分割。         全閾值分割:將灰度值大於t

影象處理OpenCV演算法02

        5、影象濾波(平滑)         影象濾波(平滑),即在儘量保留影象細節特徵的條件下對目標影象的噪聲進行抑制,是影象預

影象處理OpenCV演算法01

OpenCV演算法           1、影象的基本操作讀取、顯示、儲存:通過呼叫OpenCV中的cv2.imread(),cv2.imshow(),cv2.write()分別實現。   &

影象處理經典演算法及OpenCV程式

基於opencv的use攝像頭視訊採集程式 準備工作:你得把opencv庫裝到電腦上,並把各種標頭檔案,原始檔,lib庫都連到vc上,然後設定一下系統環境變數

影象處理——分水嶺演算法

首先感謝以下兩位的博文幫助我的理解: (1)邁克老狼2012   https://www.cnblogs.com/mikewolf2002/p/3304118.html (2)-牧野-              http://blog.csdn.net/dcrmg

[數字影象處理]模糊演算法用於影象增強

function [W1,W2,W3,W4,B] = Fuzzy_Knowledge_Filters(Intensity) for x = 1:1:3 for y = 1:1:3 if((Intensity(x,y) <= 0.2) &&(Intensity(x,y

影象處理——ORB演算法

本文主要由jason來自星星的博文https://www.cnblogs.com/zjiaxing/p/5616653.html整理而得,在此表示感謝! 一、構造尺度金字塔    金字塔共n層,與SIFT不同,每層僅有一副影象;    第s層的尺度為,Fato

影象處理基本演算法 車牌識別與定位

       進行車牌識別和定位首先要了解車牌的特徵以及分類。 車牌主要包括以下幾種: 藍牌白字:普通小型車(其中包括政府機關專用號段、政法部門警車以外的行政用車)的牌照 黃牌黑字:大型車輛、摩托車、駕校教練車牌照 黑牌白字:涉外車輛牌照,式樣和藍牌基本相同 白牌:政法部門(公安、法院、檢察院、

影象處理-基本演算法之對數變換

對數變換實現了影象灰度擴充套件和壓縮的功能。它擴充套件低灰度值而壓縮高灰度值,讓影象的灰度分佈更加符合人的視覺特徵。     程式碼如下: [cpp] view plaincopyprint? /******

影象處理常用演算法(基礎)

Roberts邊緣運算元是一個2x2的模板,採用的是對角方向相鄰的兩個畫素之差。從影象處理的實際效果來看,邊緣定位較準,對噪聲敏感。適用於邊緣明顯且噪聲較少的影象分割。Roberts邊緣檢測運算元是一種利用區域性差分運算元尋找邊緣的運算元,Robert運算元影象處理後結果邊緣不是很平滑。經分析,由於Robe

影象處理常用演算法(C++/OPENCV)

//新增椒鹽噪聲 void salt(Mat& src,int number) { for (int i = 0; i < number; i++) { int r = stati

影象處理DOG 演算法,python結合cv2實現

DoG (Difference of Gaussian)是灰度影象增強和角點檢測的方法 #coding=utf-8 import cv2 import numpy as np def getExtrema(A, B, C, thresh):

影象處理常用演算法總結

1、濾波(平滑、降噪) 2、增強 3、邊緣銳化 4、紋理分析(去骨架、連通性) 5、影象分割(灰度、顏色、頻譜特徵、紋理特徵、空間特徵) 6、變換(空域和頻域、幾何變換、色度變換) 7、幾何形態分析(Blob分析) (形狀、大小、長度、面積、邊緣、圓形度位置、方向、數量、連

影象處理中的增強演算法---灰級窗切片增強

灰級窗切片增強--相比較X光更適合於CT,程式如下: import cv2 import numpy as np I = cv2.imread('*.png',0) h, w = I.shape fa = 40 fb = 160 k = 255/(160-45) J = np.zeros((h,

影象處理--傳統的手工特徵之SURF特徵

SURF特徵   SURF特徵比Haar特徵更為複雜,因此計算代價更高,但是由於其表達能力更強,因此能夠以更少數目的特徵來達到相同的區分度,在一定程度上彌補了其在速度上的不足。 計算方法   簡化的SURF特徵是一種和Haar特徵相類似的特徵,但是其計算的是區域性區域中畫素點的梯

影象處理之積分圖應用四(基於區域性均值的影象二值化演算法

影象處理之積分圖應用四(基於區域性均值的影象二值化演算法) 基本原理 均值法,選擇的閾值是區域性範圍內畫素的灰度均值(gray mean),該方法的一個變種是用常量C減去均值Mean,然後根據均值實現如下操作: pixel = (pixel > (mean - c)) ? ob

影象處理之積分圖應用三(基於NCC快速相似度匹配演算法

影象處理之積分圖應用三(基於NCC快速相似度匹配演算法) 基於Normalized cross correlation(NCC)用來比較兩幅影象的相似程度已經是一個常見的影象處理手段。在工業生產環節檢測、監控領域對物件檢測與識別均有應用。NCC演算法可以有效降低光照對影象比較結果的影響。而