在opencv中某些高階形態學變換用cvmorphologyex函式完成,包括開運算,閉運算,標準形態梯度,白頂帽,黑頂帽運算。但是本博主不推薦使用該函式。
通過檢視cvmorphologyex的源**,可以發現,在執行開、閉等運算,在進行第二步形態學腐蝕和膨脹時,該函式仍然採用與第一步相同的結構元素進行。這種方法在針對一般對稱的結構元素情況是正確的,但是當結構元素為自定義的非對稱結構元素時,結果影象會發生錯誤的偏移。
正確的方法是,如前面在開、閉運算的介紹中,執行第二步腐蝕、膨脹操作時,應採用結構元素的對映(反射)進行。因此,在本文中不提倡使用cvmorphologyex函式。本文將通過一系列擴充套件的形態學變換函式替代該函式的功能,如:lhmorpopen,lhmorpclose等,請參考本部落格opencv和形態學系列文章。
在這裡僅給出該函式的簡單描述。
函式:cvmorphologyex
void cvmorphologyex( const cvarr* src, cvarr* dst, cvarr* temp,
iplconvkernel* element, int operation, int iterations=1 );
src 輸入影象.
dst 輸出影象.
temp 臨時影象,某些情況下需要
element 結構元素
operation 形態操作的型別:
cv_mop_open - 開運算
cv_mop_close - 閉運算
cv_mop_gradient - 形態梯度
cv_mop_tophat - "頂帽"
cv_mop_blackhat - "黑帽"
iterations 膨脹和腐蝕次數.
函式 cvmorphologyex 在膨脹和腐蝕基本操作的基礎上,完成一些高階的形態變換:
開運算dst=open(src,element)=dilate(erode(src,element),element)
閉運算dst=close(src,element)=erode(dilate(src,element),element)
形態梯度 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 在形態梯度以及對「頂帽」和「黑帽」操作時的 in-place 模式下需要。
形態學函式cvMorphologyEx
opencv提供了通用的形態學函式cvmorphologyex,該函式能夠實現開運算,閉運算,形態梯度,禮帽操作,黑帽操作 編輯void cvmorphologyex const cvarr src,cvarr dst,cvarr tmp,iplconvkernel element,int oper...
不信謠,不傳謠,不造謠
不信謠,不傳謠,不造謠 最近謠言四起,實在看不下去了,在網路奔波也有7 8年哉,深知和俺一樣長期穿馬甲逛街的,流竄於各大社群,三人為虎之厲害,但只基於八卦,不可越界!一直視為馬甲本質,也是一合格網民基本道德,可最近的八卦有變,大家認真分辨,別上了他們的圈套,這次 謠言有以下幾個階段性特徵 一階段 攻...
不饒點滴,不饒自己
昨晚又重複了聽了一遍曹禺大師與黃永玉大師的來信,由張國立和王耀慶播講。印象最深的,是永玉大師說的一句,不饒點滴,不饒自己 原文是這樣,你是我極尊敬的前輩,所以我對你要嚴!我不喜歡你解放後的戲,乙個也不喜歡。你心不在戲裡,你失去偉大的靈通寶玉,你為勢位所誤!從乙個海洋萎縮為一條小溪流,你泥溷在不情願的...