?? opencv用戶手冊之圖像處理部分3:形態(tài)學(xué)操作.txt
字號:
形態(tài)學(xué)操作
HUNNISH 注:
本翻譯是直接根據(jù) OpenCV Beta 4.0 版本的用戶手冊翻譯的,原文件是:<opencv_directory>/doc/ref/opencvref_cv.htm, 可以從 SOURCEFORG 上面的 OpenCV 項目下載,也可以直接從 阿須數(shù)碼 中下載:http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cv.htm。
翻譯中肯定有不少錯誤,另外也有些術(shù)語和原文語義理解不透導(dǎo)致翻譯不準(zhǔn)確或者錯誤,也請有心人賜教。翻譯這些英文參考手冊的目的是想與國內(nèi) OPENCV 的愛好者一起提高 OPENCV 在計算機視覺、模式識別和圖像處理方面的實際應(yīng)用水平。
--------------------------------------------------------------------------------
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
錨點的相對水平偏移量
anchor_y
錨點的相對垂直便宜量
shape
結(jié)構(gòu)元素的形狀,可以是下列值:
CV_SHAPE_RECT, 長方形元素;
CV_SHAPE_CROSS, 交錯元素 a cross-shaped element;
CV_SHAPE_ELLIPSE, 橢圓元素;
CV_SHAPE_CUSTOM, 用戶自定義元素。這種情況下參數(shù) values 定義了 mask,即象素的那個鄰域必須考慮。
values
指向結(jié)構(gòu)元素的指針,它是一個平面數(shù)組,表示對元素矩陣逐行掃描。非零值的點表示該點屬于該元素。如果點為 NULL,那么所有值都被認(rèn)為是非零,即元素是一個長方形。該參數(shù)僅僅當(dāng)形狀是 CV_SHAPE_CUSTOM 時才予以考慮。
函數(shù) cv CreateStructuringElementEx 分配和填充結(jié)構(gòu) IplConvKernel, 它可作為形態(tài)操作中的結(jié)構(gòu)元素。
--------------------------------------------------------------------------------
ReleaseStructuringElement
刪除結(jié)構(gòu)元素
void cvReleaseStructuringElement( IplConvKernel** element );
element
被刪除的結(jié)構(gòu)元素的指針
函數(shù) cvReleaseStructuringElement 釋放結(jié)構(gòu) IplConvKernel 。如果 *element 為 NULL, 則函數(shù)不作用。
--------------------------------------------------------------------------------
Erode
使用結(jié)構(gòu)元素腐蝕圖像
void cvErode( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1 );
src
輸入圖像.
dst
輸出圖像.
element
用于腐蝕的結(jié)構(gòu)元素。若為 NULL, 則使用 3×3 長方形的結(jié)構(gòu)元素
iterations
腐蝕的次數(shù)
函數(shù) cvErode 對輸入圖像使用指定的結(jié)構(gòu)元素進行腐蝕,該結(jié)構(gòu)決定每個具有最小值象素點的鄰域形狀:
dst=erode(src,element): dst(x,y)=min((x',y') in element))src(x+x',y+y')
函數(shù)支持(in-place)模式。腐蝕可以重復(fù)進行 (iterations) 次. 對彩色圖像,每個彩色通道單獨處理。
--------------------------------------------------------------------------------
Dilate
使用結(jié)構(gòu)元素膨脹圖像
void cvDilate( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1 );
src
輸入圖像.
dst
輸出圖像.
element
用于膨脹的結(jié)構(gòu)元素。若為 NULL, 則使用 3×3 長方形的結(jié)構(gòu)元素
iterations
膨脹的次數(shù)
函數(shù) cvErode 對輸入圖像使用指定的結(jié)構(gòu)元素進行腐蝕,該結(jié)構(gòu)決定每個具有最小值象素點的鄰域形狀:
函數(shù) cvDilate 對輸入圖像使用指定的結(jié)構(gòu)元素進行膨脹,該結(jié)構(gòu)決定每個具有最小值象素點的鄰域形狀:
dst=dilate(src,element): dst(x,y)=max((x',y') in element))src(x+x',y+y')
函數(shù)支持(in-place)模式。膨脹可以重復(fù)進行 (iterations) 次. 對彩色圖像,每個彩色通道單獨處理。
--------------------------------------------------------------------------------
MorphologyEx
高級形態(tài)變換
void cvMorphologyEx( const CvArr* src, CvArr* dst, CvArr* temp,
IplConvKernel* element, int operation, int iterations=1 );
src
輸入圖像.
dst
輸出圖像.
temp
臨死圖像,某些情況下需要
element
結(jié)構(gòu)元素
operation
形態(tài)操作的類型:
CV_MOP_OPEN - 開口
CV_MOP_CLOSE - 閉口
CV_MOP_GRADIENT - 形態(tài)梯度
CV_MOP_TOPHAT - "頂帽"
CV_MOP_BLACKHAT - "黑帽"
iterations
膨脹和腐蝕次數(shù).
函數(shù) cvMorphologyEx 在膨脹和腐蝕基本操作的基礎(chǔ)上,完成一些高級的形態(tài)變換:
開口:
dst=open(src,element)=dilate(erode(src,element),element)
閉口:
dst=close(src,element)=erode(dilate(src,element),element)
形態(tài)梯度
dst=morph_grad(src,element)=dilate(src,element)-erode(src,element)
"頂帽":
dst=tophat(src,element)=src-open(src,element)
"黑帽":
dst=blackhat(src,element)=close(src,element)-src
臨時圖像 temp 在形態(tài)梯度以及對“頂帽”和“黑帽”操作時的 in-place 模式下需要。
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -