CreateStructuringElementEx
轉(zhuǎn)自:http://baike.baidu.com/view/4819443.htm
?
CreateStructuringElementEx
創(chuàng)建結(jié)構(gòu)元素
IplConvKernel* cvCreateStructuringElementEx( int cols, int rows, int anchor_x, int anchor_y,
int shape, int* values=NULL );
cols
結(jié)構(gòu)元素的列數(shù)目
rows
結(jié)構(gòu)元素的行數(shù)目
anchor_x
錨點(diǎn)的相對(duì)水平偏移量
anchor_y
錨點(diǎn)的相對(duì)垂直偏移量
shape
結(jié)構(gòu)元素的形狀,可以是下列值:
CV_SHAPE_RECT, 長(zhǎng)方形元素;
CV_SHAPE_CROSS, 交錯(cuò)元素 a cross-shaped element;
CV_SHAPE_ELLIPSE, 橢圓元素;
CV_SHAPE_CUSTOM, 用戶自定義元素。這種情況下參數(shù) values 定義了 mask,即象素的那個(gè)鄰域必須考慮。
values
指向結(jié)構(gòu)元素的指針,它是一個(gè)平面數(shù)組,表示對(duì)元素矩陣逐行掃描。(非零點(diǎn)表示該點(diǎn)屬于結(jié)構(gòu)元)。如果指針為空,則表示平面數(shù)組中的所有元素都是非零的,即結(jié)構(gòu)元是一個(gè)長(zhǎng)方形(該參數(shù)僅僅當(dāng)shape參數(shù)是 CV_SHAPE_CUSTOM 時(shí)才予以考慮)。
函數(shù) cv CreateStructuringElementEx 分配和填充結(jié)構(gòu) IplConvKernel, 它可作為形態(tài)操作中的結(jié)構(gòu)元素。舉個(gè)例子比較好說(shuō)清楚
比如一個(gè)圖
00000
01110
00000
用一個(gè)cvCreateStructuringElementEx( 3,1,0 0,CV_SHAPE_RECT)的元素來(lái)腐蝕,則結(jié)果為
00000
01000
00000
而用一個(gè)cvCreateStructuringElementEx( 3,1,1 0,CV_SHAPE_RECT)的元素來(lái)腐蝕,則結(jié)果為
00000
00100
00000
理解:cvCreateStructuringElementEx( 3,1,0 0,CV_SHAPE_RECT)中的3,1表示要腐蝕的對(duì)象是一個(gè)3列1行的矩陣,如果該矩陣?yán)镌厝珵榉橇?#xff0c;則將其轉(zhuǎn)化為同樣大小只包含一個(gè)非零元素,而該非零元素的位置是(0,0)。同理cvCreateStructuringElementEx( 3,1,1 0,CV_SHAPE_RECT)中的3,1表示要腐蝕的對(duì)象是一個(gè)3列1行的矩陣,如果該矩陣?yán)镌厝珵榉橇?#xff0c;則將其轉(zhuǎn)化為同樣大小只包含一個(gè)非零元素,而該非零元素的位置是(1,0)
假如用下面這個(gè)去腐蝕圖像,中心是在右下角1 0 01 1 01 1 1 那么應(yīng)該怎么表示呢?
理論上應(yīng)該是int mask[9] = {1, 0, 0, 1, 1, 0, 1, 1, 1}; IplConvKernel* strel = cvCreateStructuringElementEx( 3, 3, 0, 2, CV_SHAPE_CUSTOM, mask );其中0,2可按自己要求設(shè)置。
總結(jié)
以上是生活随笔為你收集整理的CreateStructuringElementEx的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CvSeq相关函数
- 下一篇: opencv实现二值图像细化的算法