opencv提供了通用的形態學函式cvmorphologyex,該函式能夠實現開運算,閉運算,形態梯度,禮帽操作,黑帽操作
編輯void cvmorphologyex(const cvarr* src, cvarr* dst, cvarr* tmp, iplconvkernel* element, int operation, int iterations = 1);[1]
編輯src:輸入影象
dst:輸出影象
tmp:臨時影象,某些操作會用到。需要使用tmp時,它應與原影象有同樣的大小
element:結構元素
operation:形態操作的型別,有以下幾種可用的型別:
-cv_mop_open開運算不需要臨時影象
-cv_mop_close閉運算不需要臨時影象
-cv_mop_gradient形態梯度需要臨時影象
-cv_mop_tophat「禮帽」src = dst情況下需要
-cv_mop_blackhat」黑帽「src = dst情況下需要[1]
//開運算
cvmorphologyex(
src,
img,
temp,
null, //default 3*3
cv_mop_open,
4);
cvshowimage("open", img);
//閉運算
cvmorphologyex(
src,
img,
temp,
null, //default 3*3
cv_mop_close,
4);
cvshowimage("close", img);
//形態梯度
cvmorphologyex(
src,
img,
temp,
null, //default 3*3
cv_mop_gradient,
3);
cvshowimage("gradient", img);
//cvwaitkey(0);
//"禮帽"
cvmorphologyex(
src,
img,
temp,
null, //default 3*3
cv_mop_tophat,
3);
cvshowimage("tophat", img);
//cvwaitkey(0);
//「黑帽」
cvmorphologyex(
src,
img,
temp,
null, //default 3*3
cv_mop_blackhat,
3);
常用形態學操作函式
該函式能夠實現二值影象的膨脹操作,有以下形式 bw2 dilate bw1,se bw2 dilate bw1,se,n 其中 bw2 dilate bw1,se 表示使用二值結構要素矩陣se隊影象資料矩陣bw1執行膨脹操作。輸入影象bw1的型別為double或unit8,輸出影象bw2的型別為un...
常用形態學操作函式
常用形態學操作函式 自 1 dilate函式 該函式能夠實現二值影象的膨脹操作,有以下形式 bw2 dilate bw1,se bw2 dilate bw1,se,n 其中 bw2 dilate bw1,se 表示使用二值結構要素矩陣se隊影象資料矩陣bw1執行膨脹操作。輸入影象bw1的型別為dou...
形態學重建
在形態學梯度影象的基礎上,利用形態學的開閉重建運算對梯度影象進行重建,在保留重要區域倫敦的同時去除細節和雜訊。分水嶺變換存在過分割現象,原因在於檢測的區域性極值過多,造成極值過多的原因在於影象中的非規則灰度擾動和雜訊。對於好的分水嶺影象分割方法,不僅能消除過分割現象,而且應保證分割後的區域倫敦邊緣具...