溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java+opencv3.2.0之scharr濾波器

發(fā)布時(shí)間:2020-09-15 15:38:59 來源:腳本之家 閱讀:156 作者:帥氣的貓爪 欄目:編程語言

在opencv中scharr濾波器是配合sobel算子的運(yùn)算而存在的。當(dāng)sobel內(nèi)核為3時(shí),結(jié)果可能會(huì)產(chǎn)生比較明顯的誤差,針對(duì)這一問題,Opencv提供了scharr函數(shù)。該函數(shù)只針對(duì)大小為3的核,并且運(yùn)算速率和sobel函數(shù)一樣快,結(jié)果更加精確,但抗噪性不如sobel函數(shù)。
使用scharr濾波器計(jì)算x或y方向的圖像差分,它的參數(shù)變量和sobel一樣。

函數(shù):Imgproc.Scharr(Mat src, Mat dst, int ddepth, int dx, int dy, double scale, double delta, int borderType)

參數(shù)說明:

src:源圖像
dst:檢測結(jié)果圖像
ddepth:輸出圖像的深度
dx:x方向上的差分階數(shù)
dy:y方向上的差分階數(shù)
scale:縮放因子
delta:結(jié)果存入輸出圖像前可選的delta值,默認(rèn)為0
borderType:邊界模式,默認(rèn)BORDER_DEFAULT

示例代碼:

public static void main(String[] args)
  {
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

    Mat src = Imgcodecs.imread("F:\\2011031213205880528.jpg");

    Mat dst = src.clone();
    Mat dstx = src.clone();
    Mat dsty = src.clone();
    Imgproc.GaussianBlur(src, dst, new Size(3, 3), 0);

    Imgproc.cvtColor(dst, dst, Imgproc.COLOR_RGB2GRAY);

    Imgproc.Scharr(dst, dstx, -1, 1, 0, 1, 0, Core.BORDER_DEFAULT);
    Imgcodecs.imwrite("F:\\dstx.jpg", dstx);

    Imgproc.Scharr(dst, dsty, -1, 0, 1, 1, 0, Core.BORDER_DEFAULT);
    Imgcodecs.imwrite("F:\\dsty.jpg", dsty);

    Core.addWeighted(dstx, 0.5, dsty, 0.5, 0, dst);
    Imgcodecs.imwrite("F:\\dst.jpg", dst);

  }

源圖像:

Java+opencv3.2.0之scharr濾波器

X方向的scharr:

Java+opencv3.2.0之scharr濾波器

Y方向的scharr:

Java+opencv3.2.0之scharr濾波器

合并梯度后:

Java+opencv3.2.0之scharr濾波器

 以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI