canny邊緣檢測運算元是john f. canny於 1986 年開發出來的乙個多級邊緣檢測演算法。更為重要的是 canny 創立了邊緣檢測計算理論解釋這項技術如何工作。
canny邊緣檢測演算法可以分為以下5個步驟:
canny邊緣檢測的公式推導:
高斯濾波:對影象進行平滑處理
計算梯度幅度和方向(採用sobel運算元)
非極大值抑制
雙閾值檢測
canny演算法**實現
#opencv讀取的格式是bgr
import cv2
import numpy as np
#matplotlib是rgb
import matplotlib.pyplot as plt
%matplotlib inline
#顯示影象的函式
defcv_show
(img,name)
: cv2.imshow(name,img)
cv2.waitkey(
) cv2.destroyallwindows(
)#讀取影象
#80 和150 分別為最大和最小的閾值,當閾值比較的大獲取較少的邊緣 閾值較大獲取較多的邊緣資訊
v1=cv2.canny(img,80,
150)
v2=cv2.canny(img,50,
100)
res = np.hstack(
(v1,v2)
)cv_show(res,
'res'
基於opencv的meanshift演算法的初步學習
meanshift 均值漂移。其核心是利用概率密度的梯度來找到區域性最優。影象上用,其實現過程就是在乙個給定的範圍,一直按要求 靠近重心的方向 迭代直到達到預期效果。由於本人以後碩士階段做影象識別和跟蹤方面的研究,索性在目標跟蹤上進一步學習。在opencv2.3中這樣定義 cvapi int cvm...
基於opencv的sauvola二值演算法
sauvola演算法是乙個比較不錯的區域性二值化演算法,有不少人也具體實現了其 但是本人覺得裡面存在一些bug和不方便opencv呼叫,所以對其適當的修改。但是修改之後,仍然就是存在一些問題,就是難以找到乙個比較大的資料型別去儲存,這個bug等以後有空再處理。不過通過修改後的 進行學習,還是很不錯的...
基於Opencv的SIFT SURF HOG的實現
sift實現 surf的實現 include include includeusing namespace std using namespace cv using namespace cv xfeatures2d int main int argc,char ar namedwindow inpu...