0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenCV中實(shí)現(xiàn)了圖像形態(tài)學(xué)什么常見操作?

新機(jī)器視覺 ? 來源:視學(xué)算法 ? 作者:視學(xué)算法 ? 2021-05-27 14:11 ? 次閱讀

圖像形態(tài)學(xué)是圖像處理的分支學(xué)科,在二值圖像處理中占有重要地位、OpenCV中實(shí)現(xiàn)了圖像形態(tài)學(xué)如下常見操作:

-膨脹操作

-腐蝕操作

-開操作

-閉操作

-擊中擊不中操作

-黑帽操作

-頂帽操作

-梯度操作

在開始相關(guān)API與代碼演示之前,首先要加載圖片然后把圖像從彩色圖像轉(zhuǎn)換為二值圖像,實(shí)現(xiàn)代碼如下:

144ab1d0-be50-11eb-9e57-12bb97331649.png

結(jié)構(gòu)元素

圖像形態(tài)學(xué)操作,必須有結(jié)構(gòu)元素才可以,不同形狀的結(jié)構(gòu)元素對(duì)同樣的圖像進(jìn)行相同的操作可以得到不同的輸出結(jié)果,所以在形態(tài)學(xué)操作中結(jié)構(gòu)元素的選擇至關(guān)重要。OpenCV中獲取結(jié)構(gòu)元素的相關(guān)代碼如下:

1454132e-be50-11eb-9e57-12bb97331649.png

腐蝕操作

腐蝕操作是將結(jié)構(gòu)元素覆蓋下的中心像素點(diǎn)的值用最小值替換,得到結(jié)果即為腐蝕操作輸出圖像,通過OpenCV API調(diào)用實(shí)現(xiàn)腐蝕操作的代碼如下

145ef15e-be50-11eb-9e57-12bb97331649.png

膨脹操作

膨脹操作是將結(jié)構(gòu)元素覆蓋下的中心像素點(diǎn)的值用最大值替換,得到結(jié)果即為膨脹操作輸出圖像,通過OpenCV API調(diào)用實(shí)現(xiàn)膨脹操作的代碼如下

147c67de-be50-11eb-9e57-12bb97331649.png

開操作

開操作是首先對(duì)圖像進(jìn)行腐蝕操作,然后在對(duì)圖像進(jìn)行膨脹操作,開操作可以斷開兩個(gè)對(duì)象的連接性。實(shí)現(xiàn)對(duì)象分離。開操作的代碼實(shí)現(xiàn)如下:

1490d444-be50-11eb-9e57-12bb97331649.png

閉操作

閉操作使用結(jié)構(gòu)元素對(duì)圖像先膨脹后腐蝕,正好跟開操作的順序相反,但是閉操作絕對(duì)不是開操作的反操作結(jié)果。閉操作可以消除圖像中背景小點(diǎn)。OpenCV中開操作代碼演示如下:

14af24c6-be50-11eb-9e57-12bb97331649.png

擊中擊不中操作(Hit and Miss)

根據(jù)結(jié)構(gòu)元素的選擇被擊中的區(qū)域?qū)?huì)被保留、而沒有被擊中的區(qū)域則被去掉OpenCV中代碼演示如下:

14c81756-be50-11eb-9e57-12bb97331649.png

黑帽操作

黑帽操作的結(jié)果是圖像閉操作與源圖像之間的不同,OpenCV中實(shí)現(xiàn)圖像黑帽操作的代碼如下:

14e8c082-be50-11eb-9e57-12bb97331649.png

頂帽操作

頂帽操作是源圖像與開操作結(jié)果之間的差異,頂帽操作可以顯示出圖像中區(qū)域之間微小不同之處。OpenCV頂帽操作的代碼演示如下:

14fe2eea-be50-11eb-9e57-12bb97331649.png

梯度操作

形態(tài)學(xué)的梯度操作是圖像膨脹與腐蝕結(jié)果之間的不同,常見的梯度操作是基本梯度-是膨脹與腐蝕結(jié)果之間不同。OpenCV的代碼演示如下:

1512385e-be50-11eb-9e57-12bb97331649.png

函數(shù)說明

morphologyEx- 形態(tài)學(xué)操作函數(shù)

-第一個(gè)參數(shù)表示輸入圖像,通道數(shù)目任意,位數(shù)可以是8、16、32

-第二個(gè)參數(shù)表示輸出圖像,通道數(shù)與位數(shù)與輸入圖像一致

-第三個(gè)參數(shù)表示是那種形態(tài)學(xué)操作

-第四個(gè)參數(shù)表示結(jié)構(gòu)元素是什么

上述舉例都是基于矩形結(jié)構(gòu)元素5x5窗口大小,此外文章中還定義另外兩種結(jié)構(gòu)元素,感興趣的讀者可以自己嘗試。

原文標(biāo)題:OpenCV中圖像形態(tài)學(xué)操作

文章出處:【微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1084

    瀏覽量

    40470
  • OpenCV
    +關(guān)注

    關(guān)注

    31

    文章

    635

    瀏覽量

    41355

原文標(biāo)題:OpenCV中圖像形態(tài)學(xué)操作

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AI模型部署邊緣設(shè)備的奇妙之旅:如何在邊緣端部署OpenCV

    的質(zhì)量,使得圖像更適合人類觀察或者為后續(xù)的分析做準(zhǔn)備。 方法:通常涉及像素級(jí)別的操作,比如調(diào)整亮度、對(duì)比度、顏色校正、濾波(如高斯模糊、中值濾波去噪)、邊緣檢測、形態(tài)學(xué)變換(膨脹、腐蝕)等。 計(jì)算機(jī)視覺
    發(fā)表于 12-14 09:31

    【AI實(shí)戰(zhàn)項(xiàng)目】基于OpenCV的“顏色識(shí)別項(xiàng)目”完整操作過程

    適用于哪些場景,然后通過Python編寫代碼來實(shí)現(xiàn)這些算法,并應(yīng)用于實(shí)際項(xiàng)目中,實(shí)現(xiàn)圖像的檢測、識(shí)別、分類、定位、測量等目標(biāo)。華清遠(yuǎn)見【python+OpenCV
    的頭像 發(fā)表于 12-09 16:42 ?316次閱讀
    【AI實(shí)戰(zhàn)項(xiàng)目】基于<b class='flag-5'>OpenCV</b>的“顏色識(shí)別項(xiàng)目”完整<b class='flag-5'>操作</b>過程

    基于OpenCV的拆分和合并圖像通道實(shí)驗(yàn)案例分享_基于RK3568教學(xué)實(shí)驗(yàn)箱

    一、實(shí)驗(yàn)?zāi)康?本節(jié)視頻的目的是了解圖像通道的概念,學(xué)習(xí)OpenCV的基本操作,并掌握通過OpenCV實(shí)現(xiàn)拆分和合并
    發(fā)表于 12-03 14:27

    RK3568 + OpenCV 會(huì)碰撞出什么火花?案例詳解:2-1 基于OpenCV的畫線實(shí)驗(yàn)

    一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時(shí)提供Python、Ruby、MATLAB等語言的接口,實(shí)現(xiàn)圖像處理和計(jì)算機(jī)視覺方面的很多通用算法。
    發(fā)表于 12-03 14:09

    一個(gè)月速成python+OpenCV圖像處理

    OpenCV是一個(gè)廣受歡迎且極為流行的計(jì)算機(jī)視覺庫,它因其強(qiáng)大的功能、靈活性和開源特性而在開發(fā)者和研究者備受青睞。學(xué)習(xí)OpenCV主要就是學(xué)習(xí)里面的計(jì)算機(jī)視覺算法。要學(xué)習(xí)這些算法的原理,知道它們
    的頭像 發(fā)表于 11-29 18:27 ?141次閱讀
    一個(gè)月速成python+<b class='flag-5'>OpenCV</b><b class='flag-5'>圖像</b>處理

    手寫圖像模板匹配算法在OpenCV實(shí)現(xiàn)

    OpenCV的模板匹配是支持基于NCC相似度查找的,但是不是很好用,一個(gè)主要的原因是查找最大閾值,只能匹配一個(gè),自己比對(duì)閾值,又導(dǎo)致無法正確設(shè)定閾值范圍,所以問題很多。于是我重新寫了純Python版本的NCC圖像模板匹配的代碼
    的頭像 發(fā)表于 11-11 10:12 ?247次閱讀
    手寫<b class='flag-5'>圖像</b>模板匹配算法在<b class='flag-5'>OpenCV</b><b class='flag-5'>中</b>的<b class='flag-5'>實(shí)現(xiàn)</b>

    OpenCV圖像識(shí)別C++代碼

    的頭文件 在您的C++代碼,包含以下必要的頭文件: # include # include # include # include # include # include # include 讀取圖像
    的頭像 發(fā)表于 07-16 10:42 ?2030次閱讀

    opencv圖像識(shí)別有什么算法

    OpenCV(Open Source Computer Vision Library)是一個(gè)開源的計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,提供大量的圖像處理和計(jì)算機(jī)視覺相關(guān)的算法。以下是一些常見
    的頭像 發(fā)表于 07-16 10:40 ?1050次閱讀

    opencv-python和opencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個(gè)開源的計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,它提供大量的圖像和視頻處理功能。OpenCV
    的頭像 發(fā)表于 07-16 10:38 ?1195次閱讀

    opencv的主要功能有哪些

    OpenCV提供豐富的圖像處理功能,包括圖像的讀取、顯示、保存、轉(zhuǎn)換等。此外,OpenCV還支持圖像
    的頭像 發(fā)表于 07-16 10:35 ?1550次閱讀

    什么是機(jī)器視覺opencv?它有哪些優(yōu)勢?

    機(jī)器視覺(Machine Vision)是一種利用計(jì)算機(jī)和圖像處理技術(shù)來模擬人類視覺系統(tǒng)的功能,實(shí)現(xiàn)對(duì)圖像的識(shí)別、分析和理解的技術(shù)。OpenCV(Open Source Compute
    的頭像 發(fā)表于 07-16 10:33 ?787次閱讀

    OpenCV圖像卷積與濾波詳解

    圖像的濾波器是一種用于增強(qiáng)或抑制圖像特定特征的工具。它通常是一個(gè)小矩陣,定義了如何對(duì)圖像的像素進(jìn)行
    的頭像 發(fā)表于 03-26 14:57 ?1578次閱讀
    <b class='flag-5'>OpenCV</b><b class='flag-5'>圖像</b>卷積與濾波詳解

    如何實(shí)現(xiàn)PIL和OpenCV之間圖像數(shù)據(jù)的轉(zhuǎn)換呢?

    PIL圖像數(shù)據(jù)格式轉(zhuǎn)換成OpenCV圖像數(shù)據(jù)格式
    的頭像 發(fā)表于 02-25 13:43 ?1219次閱讀

    ELF 1技術(shù)貼|如何移植OpenCV

    OpenCV擁有豐富的常用圖像處理函數(shù)庫,采用C/C++語言編寫,可以運(yùn)行在Linux、Windows、Mac等操作系統(tǒng)上流暢運(yùn)行,并能夠快速實(shí)
    的頭像 發(fā)表于 01-09 13:55 ?394次閱讀
    ELF 1技術(shù)貼|如何移植<b class='flag-5'>OpenCV</b>

    使用圖像處理庫OpenCV從攝像頭獲取數(shù)據(jù)并在PyQt5上顯示出來

    OpenCV能夠處理圖像、視頻、深度圖像等各種類型的視覺數(shù)據(jù)
    的頭像 發(fā)表于 01-05 17:32 ?2589次閱讀
    使用<b class='flag-5'>圖像</b>處理庫<b class='flag-5'>OpenCV</b>從攝像頭獲取數(shù)據(jù)并在PyQt5上顯示出來