卷積概念
卷積是影象處理的乙個操作,是依據kernel對影象每個畫素點進行操作,kernel本質上是乙個固定大小的矩陣陣列,其中心為錨點。把kernel放在畫素的陣列之上,求錨點周圍覆蓋的畫素乘積之和(包括錨點),用其來替換錨點下的畫素值。稱之為卷積操作。公式如圖所示。
依次對影象進行該操作。
常見運算元有robert運算元、sobel運算元、拉普拉斯運算元。
自定義運算元
**效果是影象線性模糊。
#include
#include
#include
using
namespace cv;
intmain
(int argc,
char
** ar**)
char input_win=
"input image"
;char output_win=
"custom blur filter result"
;namedwindow
(input_win, cv_window_autosize)
;namedwindow
(output_win, cv_window_autosize)
;imshow
(input_win, src)
;// sobel x
// mat kernel_x = (mat_(3, 3) << -1, 0, 1, -2,0,2,-1,0,1);
// filter2d(src, dst, -1, kernel_x, point(-1, -1), 0.0);
// sobel y
// mat yimg;
// mat kernel_y = (mat_(3, 3) << -1, -2, -1, 0,0,0, 1,2,1);
// filter2d(src, yimg, -1, kernel_y, point(-1, -1), 0.0);
// 拉普拉斯運算元
//mat kernel_y = (mat_(3, 3) << 0, -1, 0, -1, 4, -1, 0, -1, 0);
//filter2d(src, dst, -1, kernel_y, point(-1, -1), 0.0);
int c =0;
int index =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
(output_win, dst);}
// imshow("sobel y", yimg);
return0;
}
opencv 自定義線性濾波
自定義線性濾波 效果 在學習自定義線性濾波前,需要了解卷積的相關概念 影象中的卷積 最常見的運算元 在邊緣檢測中經常用到,是canny邊緣檢測中重要的一步,通過sobel運算元得到梯度 銳化的掩膜中間是5,拉普拉斯運算元中間是4 拉普拉斯運算元和sobel運算元被用來尋找梯度 尋找影象的邊緣 和掩膜...
opencv 之自定義線性濾波
通過api進行濾波處理,濾波演算法基本固定,靈活性不大,得到的效果只能在一定範圍內進行動態調整。例如高斯模糊 均值模糊等利用的濾波演算法 影象處理中最基本的就是卷積處理,利用運算元在不停的移動計算產生我們想要的目的影象。自定義濾波演算法的首要做法就是定義運算元 卷積核 常見的運算元 robert運算...
open cv常見運算元與自定義線性濾波
卷積和卷積如何工作,這個是知道的,卷積的作用就是模糊影象 提取邊緣,銳化影象。常見的卷積核 運算元 有robert運算元,sobel運算元,拉普拉斯運算元,前兩個運算元是分x方向和y方向的,而拉普拉斯運算元是提取整體影象的邊緣。卷積概念 卷積是影象處理中乙個操作 是kermel 卷積核 在影象的每個...