迅為RK3568開(kāi)發(fā)板Scharr濾波器算子邊緣檢測
在 Sobel 算子算法函數中,如果設置 ksize=-1 就會(huì )使用 3x3 的 Scharr 濾波器。Scharr 算子是 Soble 算子在 ksize=3 時(shí)的優(yōu)化,與 Soble 的速度相同,且精度更高。Scharr 算子與 Sobel
算子的不同點(diǎn)是在平滑部分,其中心元素占的權重更重,相當于使用較小標準差的高斯函數,也就是更瘦高的模板。
Scharr 算子的卷積核為:
cv2.Scharr 函數功能:
使用 Scharr 算子進(jìn)行邊緣檢測。
函數原型:
dst = cv2.Scharr(src, ddepth, dx, dy[, dst[, scale[, delta[, borderType]]]])
參數定義:
dst 代表目標圖像。
src 代表原始圖像。
ddepth 代表輸出圖像的深度。
dx 代表 x 方向上的求導階數。
dy 代表 y 方向上的求導階數。
scale 代表計算導數值時(shí)所采用的縮放因子,默認情況下該值是 1,是沒(méi)有縮放的。
delta 代表加在目標圖像 dst 上的值,該值是可選的,默認為 0。
borderType 代表邊界樣式。
實(shí)驗:
實(shí)驗要求:
使用 cv2.Scharr 函數,分別對 x 軸和 y 軸進(jìn)行邊緣檢測,隨后使用 cv2.addWeighted 函數以 0.5:0.5 的比例將兩個(gè)圖像進(jìn)行融合,最后使用 cv2.imshow()函數對原圖和邊緣檢測的三個(gè)圖像進(jìn)行展示
實(shí)驗步驟:
首先進(jìn)入到 ubuntu 的終端界面將“iTOP-3568 開(kāi)發(fā)板\03_【iTOP-RK3568 開(kāi)發(fā)板】指南教程\04_OpenCV 開(kāi)發(fā)配套資料\33”路徑下的 number.png 拷貝到 ubuntu 虛擬機上,拷貝完成如
下圖所示:
然后來(lái)到 ubuntu 虛擬機的終端界面,輸入以下命令來(lái)創(chuàng )建 demo33_Scharr.py 文件,如下圖所示:
vim demo33_Scharr.py
然后向該文件中添加以下內容:
第 1 張圖為原圖,一個(gè)數獨圖像被顯示了出來(lái),第 2 張圖像為 x 軸方向梯度經(jīng)過(guò)邊緣檢測計算的圖像,可以看到縱向的線(xiàn)條被很好的區分了出來(lái),第 3 張圖像為 y 軸方向梯度經(jīng)過(guò)邊緣
檢測計算的圖像,可以看到橫向的線(xiàn)條被很好的區分了出來(lái),第 4 張圖像為兩張邊緣計算圖像的融合,可以看到圖像的邊緣特點(diǎn)被很好的展現了出來(lái)。至此 Scharr 算子邊緣計算相關(guān)的實(shí)驗就結束了。
更多文檔可以查看
B站搜索-北京迅為RK3568開(kāi)發(fā)板,
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。