10 OpenCV形態學操作之膨脹與腐蝕

2021-10-02 12:28:01 字數 2710 閱讀 7246

#include

#include

#include

using

namespace cv;

using

namespace std;

mat src, erode_dst, dilate_dst;

char input_win=

"input windows"

, dilate_win=

"dilation windows"

, erode_win=

"erosion windows"

;int dilate_elem =

0, erode_elem =0;

int dilate_size =

0, erode_size =0;

intconst max_elem =2;

intconst max_kernel_size =21;

void

dilation

(int

,void*)

;//膨脹

void

erosion

(int

,void*)

;//腐蝕

intmain

(int argc,

char

** ar**)

namedwindow

(input_win, cv_window_autosize)

;imshow

(input_win, src)

;//2、建立兩個視窗(乙個用於膨脹dilation,另乙個用於侵蝕erosion)

//每次移動任何滑塊時,都會呼叫使用者的erosion或dilation函式,它將根據當前的trackbar值更新輸出影象。

namedwindow

(dilate_win, cv_window_autosize)

;namedwindow

(erode_win, cv_window_autosize)

;//3、為每個操作建立兩組軌道欄:

第乙個軌道欄「element」返回erosion_elem或dilation_elem

createtrackbar

("卷積核型別"

, dilate_win,

&dilate_elem, max_elem, dilation)

;第二個軌道欄「核心大小」返回相應操作的erosion_size或dilation_size。

createtrackbar

("卷積核大小"

, dilate_win,

&dilate_size, max_kernel_size, dilation)

;createtrackbar

("卷積核型別"

, erode_win,

&erode_elem, max_elem, erosion)

;createtrackbar

("卷積核大小"

, erode_win,

&erode_size, max_kernel_size, erosion)

;dilation(0

,0);

erosion(0

,0);

waitkey(0

);}//膨脹

void

dilation

(int

,void*)

//矩形核心:morph_rect

else

if(dilate_elem ==1)

//十字架核心:morph_cross

else

if(dilate_elem ==2)

//橢圓核心:morph_ellipse

mat kernel =

getstructuringelement

(dilate_type,

size(2

* dilate_size +1,

2* dilate_size +1)

,point

(dilate_size, dilate_size));

dilate

(src, dilate_dst, kernel)

;imshow

(dilate_win, dilate_dst);}

//腐蝕

void

erosion

(int

,void*)

//矩形核心:morph_rect

else

if(erode_elem ==1)

//十字架核心:morph_cross

else

if(erode_elem ==2)

//橢圓核心:morph_ellipse

opencv 形態學操作

include include includeusing namespace std using namespace cv 開操作 先腐蝕後膨脹 作用 能夠去掉一些小的物件,保留大的物件 閉操作 先膨脹後腐蝕 作用 將小洞給填充上 形態學梯度 膨脹減去腐蝕 作用 求出邊緣 頂帽變換 原影象與開操作之...

opencv形態學操作

1.腐蝕和膨脹都是相對高亮部分的操作 2.開運算 先腐蝕後膨脹 把細微連在一起的兩塊目標分開了,消除暗背景下的較亮區域。閉運算,閉運算是對影象先膨脹後腐蝕 看上去將兩個細微連線的圖塊封閉在一起,閉運算可以用來消除噪音。因為先高亮部分膨脹抵消了小的黑點,大的黑點經過接下來的腐蝕又再次還原回去,小的黑點...

Opencv 形態學基礎操作

morphologyex src,dst,cv mop blackhat,kernel 操作介面 imshow str0utput,dst cv mop open 先腐蝕 後膨脹 去掉小的物件背景黑色 cv mop close 先腐蝕 後膨脹 去掉小的物件背景白色 cv mop gradient 膨...