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...