opencv學習筆記14(自定義線性濾波)

2021-10-24 04:25:07 字數 2954 閱讀 2678

cv_exports_w void filter2d( inputarray src, outputarray dst, int ddepth,

inputarray kernel, point anchor=point(-1,-1),

double delta=0, int bordertype=border_default );

引數解釋:

robert 運算元結果

sobel 運算元結果

拉普拉斯運算元結果

自定義模糊結果(卷積核大小為5*5時)

// robert x 方向

mat kernel_x =

(mat_(2

,2)<<1,

0,0,

-1);

//定義robert的x方向的運算元為卷積核

filter2d

(src, dst,-1

, kernel_x,

point(-

1,-1

),0.0)

;//使用filter2d來對影象進行卷積操作(使用的卷積核已定義)

imshow

("robert x"

,dst)

;// robert y 方向

mat kernel_y =

(mat_(2

,2)<<0,

1,-1

,0);

//定義robert的y方向的運算元為卷積核

filter2d

(src, dst,-1

, kernel_y,

point(-

1,-1

),0.0)

;imshow

("robert y"

, dst)

;//sobel的運算元比robert要差異大一些

// sobel x 方向

mat skernel_x =

(mat_(3

,3)<

,0,1

,-2,

0,2,

-1,0

,1);

//定義sobel的x方向的運算元為卷積核

filter2d

(src, dst,-1

, skernel_x,

point(-

1,-1

),0.0)

;imshow

("sobel x"

, dst)

;// sobel y 方向

mat yimg;

mat skernel_y =

(mat_(3

,3)<

,-2,

-1,0

,0,0

,1,2

,1);

//定義sobel的y方向的運算元為卷積核

filter2d

(src, yimg,-1

, skernel_y,

point(-

1,-1

),0.0)

;imshow

("sobel y"

, yimg)

;// 拉普拉斯運算元(邊緣檢測運算元,得到的是主要的輪廓,當中間的值是5時是銳化運算元)

mat lkernel =

(mat_(3

,3)<<0,

-1,0

,-1,

4,-1

,0,-

1,0)

;filter2d

(src, dst,-1

, lkernel,

point(-

1,-1

),0.0)

;imshow

("拉普拉斯"

, dst)

;//自定義卷積模糊

int c =0;

int index =0;

int ksize =0;

//使用迴圈是其模糊程度自動加深

while

(true

) ksize =5+

(index %8)

*2; mat kernel = mat:

:ones

(size

(ksize, ksize)

,cv_32f)/

(float)

(ksize * ksize)

;//定義乙個大小變化的卷積核

filter2d

(src, dst,-1

, kernel,

point(-

1,-1

)); index++

;//進行模糊自增

imshow

("卷積模糊"

, dst);}

waitkey(0

);return0;

}

Vue學習筆記 14 自定義指令

自定義全域性指令 v focus,為繫結的元素自動獲取焦點 vue.directive focus 自定義區域性 私有 指令 v color 和 v font weight,為繫結的元素設定指定的字型顏色 和 字型粗細 使用方式 1232在很多時候,你可能想在bind和update時觸發相同行為,而...

opencv學習筆記 13 自定義線性濾波

卷積是影象處理中乙個操作,是kernel在影象的每個畫素上的操作。kernel本質上乙個固定大小的矩陣陣列,其中心點稱為錨點 anchor point 卷積如何工作 把kernel放到畫素陣列之上,求錨點周圍覆蓋的畫素乘積之和 包括錨點 用來替換錨點覆蓋下畫素點值稱為卷積處理。數學表達如下 常見運算...

opencv自定義卷積核

include opencv2 imgproc imgproc.hpp include opencv2 highgui highgui.hpp using namespace cv mat get blur kernel int kernel size 獲得歸一化濾波的卷積核 int main in...