您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)C++ OpenCV形態(tài)學(xué)操作的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
形態(tài)學(xué)相關(guān)的API
morphologyEx(src,dst,CV_MOP_BLACKHAT,kernel);
src---輸入圖像
dst---輸出結(jié)果
int OPT --- CV_MOP_OPEN / CV_MOP_CLOSE / CV_MOP_GRADIENT / CV_MOP_TOPHAT / CV_MOP_BLACKHAT 形態(tài)學(xué)操作類型
Mat kernel --- 結(jié)構(gòu)元素
int Iteration --- 迭代次數(shù),默認(rèn)是1
代碼演示
新建一個(gè)項(xiàng)目opencv-0011,配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫入#include和main方法.并加載我們常用的那個(gè)圖片顯示出來
開操作-open
先腐蝕后膨脹 dst=open(src,element) = dilate(erode(src,element))
可以去掉小的對(duì)象,假設(shè)對(duì)象是前景色,背景是顏色,可以看到下面圖通過開操作把小的東西給去掉了
代碼操作
顯示效果如下
由于我這張圖片本身效果不明顯,不過在西服那里可以看到把原來露出來一點(diǎn)的白襯衫通過開操作顯示的更小了,如果我們把結(jié)構(gòu)元素設(shè)置大一點(diǎn),應(yīng)該這一塊白色襯衫區(qū)域就都腐蝕掉了.
我們把上面結(jié)構(gòu)元素的Size(3,3)改為Size(5,5)來看看效果
這樣看一下兩張圖的效果就比較明顯了
閉操作
閉操作的原理與開操作正好相反
先膨脹后腐蝕(bin2) dst=close(src,element)=erode(dilate(src,element));
可以填充小的洞(fill hole),假設(shè)對(duì)象是前景色,背景色是黑色
代碼操作
我們把原來的代碼CV_MOP_OPEN的參數(shù)改為CV_MOP_COLSE
來看一下顯示效果
可以看出來也是非常明顯的
形態(tài)學(xué)梯度
膨脹減去腐蝕 dst=morphgrad(src,element)=dilate(src,element)-erode(src,elelment)
又稱為基本梯度(其它還包括-內(nèi)部梯度,方向梯度)
代碼操作
將紅色標(biāo)記的地方改為CV_MOP_GRADIENT
我們直接看到效果
頂帽 -- top hat
頂帽是原圖像與開操作之間的差值圖像
代碼操作
生成的效果
黑帽
黑帽是閉操作圖像與源圖像的差值圖像
wa
代碼操作
將參數(shù)改為CV_MOP_BLACKHAT
效果如下:
感謝各位的閱讀!關(guān)于“C++ OpenCV形態(tài)學(xué)操作的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。