Java+opencv3.2.0之scharr濾波器
在opencv中scharr濾波器是配合sobel算子的運算而存在的。當(dāng)sobel內(nèi)核為3時,結(jié)果可能會產(chǎn)生比較明顯的誤差,針對這一問題,Opencv提供了scharr函數(shù)。該函數(shù)只針對大小為3的核,并且運算速率和sobel函數(shù)一樣快,結(jié)果更加精確,但抗噪性不如sobel函數(shù)。
使用scharr濾波器計算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);
}
源圖像:

X方向的scharr:

Y方向的scharr:

合并梯度后:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JDK的一個Bug監(jiān)聽文件變更的初步實現(xiàn)思路
這篇文章主要介紹了JDK的一個Bug監(jiān)聽文件變更要小心了,本篇文章就帶大家簡單實現(xiàn)一個對應(yīng)的功能,并分析一下對應(yīng)的Bug和優(yōu)缺點,需要的朋友可以參考下2022-05-05
很多人竟然不知道Java線程池的創(chuàng)建方式有7種
本文主要介紹了很多人竟然不知道Java線程池的創(chuàng)建方式有7種,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-07-07
Java實現(xiàn)計網(wǎng)循環(huán)冗余檢驗算法的方法示例
這篇文章主要給大家介紹了關(guān)于Java實現(xiàn)計網(wǎng)循環(huán)冗余檢驗算法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Java JDK動態(tài)代理在攔截器和聲明式接口中的應(yīng)用小結(jié)
Java動態(tài)代理技術(shù)通過反射機制在運行時動態(tài)生成代理類,實現(xiàn)對目標(biāo)對象方法的攔截和增強,本文給大家介紹Java JDK動態(tài)代理在攔截器和聲明式接口中的應(yīng)用小結(jié),感興趣的朋友跟隨小編一起看看吧2025-01-01

