opencv016 處理邊緣

2021-09-02 18:20:42 字數 2686 閱讀 2131

卷積邊緣問題

l影象卷積的時候邊界畫素,不能被卷積操作,原因在於邊界畫素沒有完全跟

kernel

重疊,所以當

3x3濾波時候有

1個畫素的邊緣沒有被處理,

5x5濾波的時候有

2個畫素的邊緣沒有被處理。

處理邊緣

在卷積開始之前增加邊緣畫素,填充的畫素值為0或者

rgb黑色,比如

3x3在

四周各填充

1個畫素的邊緣,這樣就確保影象的邊緣被處理,在卷積處理之

後再去掉這些邊緣。

opencv

中預設的處理方法是:

border_default

,此外

常用的還有如下幾種: -

border_constant

填充邊緣用指定畫素值 -

border_replicate填充邊緣畫素用已知的邊緣畫素值

- border_wrap

用另外一邊的畫素來補償填充

border_replicate通過插值計算

border_wrap– 另外一邊補償

api說明給影象新增邊緣api

lcopymakeborder(

- mat

src, //

輸入影象

- mat

dst, //

新增邊緣影象 -

inttop, //

邊緣長度,一般上下左右都取相同值, -

intbottom, -

intleft, -

intright, -

intbordertype

// 邊緣型別

- scalar value )

#include #include using namespace std;

using namespace cv;

mat src, dst, gray_src;

int main(int agrc, char** agrv)

const char* input_win = "input";

const char * out_put = "rober x";

namedwindow(input_win, cv_window_autosize);

namedwindow(out_put, cv_window_autosize);

imshow(input_win, src);

int top = (int)(0.05*src.rows);

int bottom = (int)(0.05*src.rows);

int left = (int)(0.05*src.cols);

int right = (int)(0.05*src.cols);

rng rng(12345);

int bordertype = border_default;

int c = 0;

while (true)

if ((char)c == 'r')

else if ((char)c == 'w')

else if ((char)c == 'c')

scalar color = scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));

copymakeborder(src, dst, top, bottom, left, right, bordertype, color);

imshow(out_put, dst);

} /*gaussianblur(src, dst, size(5, 5), 0, 0, border_default);//最後一項為邊緣處理方式

imshow(out_put, dst);*/

waitkey(0);

return 0;

}

opencvC 學習16處理邊緣

影象卷積的時候邊界畫素,不能被卷積操作,原因在於邊界畫素沒有完全跟kernel重疊,所以當3x3濾波時候有1個畫素的邊緣沒有被處理,5x5濾波的時候有2個畫素的邊緣沒有被處理。在卷積開始之前增加邊緣畫素,填充的畫素值為0或者rgb黑色,比如3x3在 四周各填充1個畫素的邊緣,這樣就確保影象的邊緣被處...

opencv(2) 處理畫素值

opencv中使用mat資料型別表示影象,這是類似int float等傳統型別的一種opencv中定義的資料型別。opencv常見的資料型別 point 代表二維點,用於影象座標點。如point 20,80 scalar 表示4元素標量,常用於rgb顏色值,一般第四個引數用不到。畫素是由顏色空間或通...

opencv邊緣處理

影象卷積的時候邊界畫素,不能被卷積操作,原因在於邊界畫素沒有完全跟 kernel 重疊,所以當 3x3濾波時候有 1個畫素的邊緣沒有被處理,5x5濾波的時候有 2個畫素的邊緣沒有被處理。在卷積開始之前增加邊緣畫素,填充的畫素值為0或者 rgb黑色,比如 3x3在四周各填充1 個畫素的邊緣,這樣就確保...