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