溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C++ OpenCV形態(tài)學(xué)操作的示例分析

發(fā)布時(shí)間:2021-11-26 10:49:58 來源:億速云 閱讀:175 作者:小新 欄目:大數(shù)據(jù)

這篇文章給大家分享的是有關(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è)圖片顯示出來

C++ OpenCV形態(tài)學(xué)操作的示例分析

開操作-open

  • 先腐蝕后膨脹  dst=open(src,element) = dilate(erode(src,element))

  • 可以去掉小的對(duì)象,假設(shè)對(duì)象是前景色,背景是顏色,可以看到下面圖通過開操作把小的東西給去掉了

C++ OpenCV形態(tài)學(xué)操作的示例分析

代碼操作

C++ OpenCV形態(tài)學(xué)操作的示例分析

顯示效果如下

C++ OpenCV形態(tài)學(xué)操作的示例分析

由于我這張圖片本身效果不明顯,不過在西服那里可以看到把原來露出來一點(diǎn)的白襯衫通過開操作顯示的更小了,如果我們把結(jié)構(gòu)元素設(shè)置大一點(diǎn),應(yīng)該這一塊白色襯衫區(qū)域就都腐蝕掉了.

我們把上面結(jié)構(gòu)元素的Size(3,3)改為Size(5,5)來看看效果

C++ OpenCV形態(tài)學(xué)操作的示例分析

這樣看一下兩張圖的效果就比較明顯了


閉操作

閉操作的原理與開操作正好相反

  • 先膨脹后腐蝕(bin2) dst=close(src,element)=erode(dilate(src,element));

  • 可以填充小的洞(fill hole),假設(shè)對(duì)象是前景色,背景色是黑色

C++ OpenCV形態(tài)學(xué)操作的示例分析

代碼操作

C++ OpenCV形態(tài)學(xué)操作的示例分析

我們把原來的代碼CV_MOP_OPEN的參數(shù)改為CV_MOP_COLSE

來看一下顯示效果

C++ OpenCV形態(tài)學(xué)操作的示例分析

可以看出來也是非常明顯的


形態(tài)學(xué)梯度

  • 膨脹減去腐蝕 dst=morphgrad(src,element)=dilate(src,element)-erode(src,elelment)

  • 又稱為基本梯度(其它還包括-內(nèi)部梯度,方向梯度)

C++ OpenCV形態(tài)學(xué)操作的示例分析

代碼操作

C++ OpenCV形態(tài)學(xué)操作的示例分析

將紅色標(biāo)記的地方改為CV_MOP_GRADIENT

我們直接看到效果

C++ OpenCV形態(tài)學(xué)操作的示例分析


頂帽 -- top hat

  • 頂帽是原圖像與開操作之間的差值圖像

C++ OpenCV形態(tài)學(xué)操作的示例分析

代碼操作

C++ OpenCV形態(tài)學(xué)操作的示例分析

生成的效果

C++ OpenCV形態(tài)學(xué)操作的示例分析


黑帽

  • 黑帽是閉操作圖像與源圖像的差值圖像

waC++ OpenCV形態(tài)學(xué)操作的示例分析

代碼操作

C++ OpenCV形態(tài)學(xué)操作的示例分析

將參數(shù)改為CV_MOP_BLACKHAT

效果如下:

C++ OpenCV形態(tài)學(xué)操作的示例分析

感謝各位的閱讀!關(guān)于“C++ OpenCV形態(tài)學(xué)操作的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(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)容。

AI