Robert邊緣檢測運算元

2021-10-08 10:48:38 字數 1417 閱讀 9315

robert運算元是一種利用區域性差分運算元尋找邊緣的運算元,它實際也是一種梯度處理法,只是它用的運算元與上篇梯度法的運算元不一樣。

上篇是標準差分運算元,而rboert用的是對角線差分。

#讀取影象

img = cv2. imread(

'lena512color.tiff'

)#灰度化處理影象

grayimage = cv2.cvtcolor(img, cv2.color_bgr2gray)

#roberts運算元

kernelx = np.array([[

-1,0

],[0

,1]]

, dtype =

int)

kernely = np.array([[

0,1]

,[-1

,0]]

, dtype=

int)

x = cv2.filter2d(grayimage, cv2.cv_16s, kernelx)

y = cv2.filter2d(grayimage, cv2.cv_16s, kernely)

#轉uint8

absx = cv2.convertscaleabs(x)

absy = cv2.convertscaleabs(y)

roberts = cv2.addweighted(absx,

0.5, absy,

0.5,0)

#用來正常顯示中文標籤

plt. rcparams[

'font.sans-serif']=

['simhei'

]#顯示圖形

titles =

['原始影象'

,'roberts運算元'

]images =

[grayimage, roberts]

for i in

range(2

):plt.subplot (1,

2, i+1)

, plt.imshow(images[i]

,'gray'

) plt.title(titles[i]

) plt.xticks(

), plt.yticks(

)plt.show(

)影象如下:

邊緣檢測之Robert運算元

robert運算元,之前被用到了影象增強中的銳化,原因是作為一階微分運算元,robert簡單,計算量小,對細節反應敏感。運算元對邊緣檢測的作用是提供邊緣候選點,robert運算元相比於其他3x3運算元,在不經過後處理時,可以給出相對較細的邊緣。以下座標新採用的是i,j 座標系,其中i y,j x。r...

邊緣檢測運算元

看了很多邊緣檢測的文章,有些不夠詳細,有些不算綜合,所以打算總結一下!以下內容均為個人理解,如有問題,望指正!首先,我想要解釋一下什麼是邊緣。通俗地講,灰度值變化劇烈的地方就是邊緣。那麼如何判斷灰度值變化?如何度量 劇烈 各類演算法給出了自己的規範或者說是原則。所以,各類運算元就跳出來了。由於各類運...

邊緣檢測運算元

sobel amp image edgeamplitude filtertype,size 根據影象的一次導數計算影象的邊緣 close edges edges,edgeimage regionresult minamplitude close edges length edges,gradient...