跳到主要內容

Python 圖像處理 OpenCV (10):圖像處理形態學之頂帽運算與黑帽運算


前文傳送門:


「Python 圖像處理 OpenCV (1):入門」


「Python 圖像處理 OpenCV (2):像素處理與 Numpy 操作以及 Matplotlib 显示圖像」


「Python 圖像處理 OpenCV (3):圖像屬性、圖像感興趣 ROI 區域及通道處理」


「Python 圖像處理 OpenCV (4):圖像算數運算以及修改顏色空間」


「Python 圖像處理 OpenCV (5):圖像的幾何變換」


「Python 圖像處理 OpenCV (6):圖像的閾值處理」


「Python 圖像處理 OpenCV (7):圖像平滑(濾波)處理」


「Python 圖像處理 OpenCV (8):圖像腐蝕與圖像膨脹」


「Python 圖像處理 OpenCV (9):圖像處理形態學開運算、閉運算以及梯度運算」


引言


今天是圖形處理形態學的最後一篇,我們介紹頂帽運算和黑帽運算。


建議先閱讀前面兩篇圖像處理的內容:


「Python 圖像處理 OpenCV (8):圖像腐蝕與圖像膨脹」


「Python 圖像處理 OpenCV (9):圖像處理形態學開運算、閉運算以及梯度運算」


形態學之頂帽運算


圖像處理頂帽運算是一個獲取圖像噪聲的運算,它是由原始圖像減去圖像開運算而得到的結果:


頂帽運算 = 原始圖像 - 開運算


圖像頂帽運算同樣是使用形態學擴展函數 morphologyEx() ,它的參數是 MORPH_TOPHAT ,示例如下:


import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

# 讀取圖片
source = cv.imread("demo_noise_white.jpg", cv.IMREAD_GRAYSCALE)

# 設置卷積核
kernel = np.ones((5, 5), np.uint8)

# 開運算
open = cv.morphologyEx(source, cv.MORPH_OPEN, kernel)

# 頂帽運算
dst = cv.morphologyEx(source, cv.MORPH_TOPHAT, kernel)

# 显示結果
titles = ['Source Img','Open Img', 'Tophat Img']
images = [source, open, dst]

# matplotlib 繪圖
for i in range(3):
plt.subplot(1, 3, i+1), plt.imshow(images[i],'gray')
plt.title(titles[i])
plt.xticks([]),plt.yticks([])

plt.show()


形態學之黑帽運算


圖像處理頂帽運算是一個獲取圖像內部的小孔,或者前景色中的小黑點的運算。


它是由圖像閉運算減去原始圖像的操作:


黑帽運算 = 閉運算圖像 - 原始圖像


圖像頂帽運算同樣是使用形態學擴展函數 morphologyEx() ,它的參數是 MORPH_BLACKHAT ,示例如下:


import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

# 讀取圖片
source = cv.imread("demo_noise_black.jpg", cv.IMREAD_GRAYSCALE)

# 設置卷積核
kernel = np.ones((5, 5), np.uint8)

# 黑帽運算
dst = cv.morphologyEx(source, cv.MORPH_BLACKHAT, kernel)

# 構造显示結果數組
titles = ['Source Img', 'Black Img']
images = [source, dst]

# matplotlib 繪圖
for i in range(2):
plt.subplot(1, 2, i+1), plt.imshow(images[i],'gray')
plt.title(titles[i])
plt.xticks([]),plt.yticks([])

plt.show()


今天的內容比較短,至此,圖像形態學的幾個基礎的運算已經全部介紹完畢,希望各位同學能理解這幾個運算的原理,而不是僅僅知道了幾個參數或者說幾個方法的調用。


示例代碼


如果有需要獲取源碼的同學可以在公眾號回復「OpenCV」進行獲取。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】



※帶您來了解什麼是 USB CONNECTOR  ?



※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面



※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!



※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化



※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益



※教你寫出一流的銷售文案?




Orignal From: Python 圖像處理 OpenCV (10):圖像處理形態學之頂帽運算與黑帽運算

留言

這個網誌中的熱門文章

掃地機器人可以隨身帶上飛機嗎?我想要拿去送給國外的朋友

掃地機器人如果要隨身戴上飛機需要滿足兩個條件: 一個是掃地機器人連同你的隨身行李,整體的體積和重量要符合上機條件,這個具體每家航空公司都不同,可以諮詢,簡單的說就是隨身行李不要超寬超重。 還有一個就是由於掃地機器人內置了鋰電池,所以內置電池的容量要符合相關規定,每個掃地機器人電池容量都不同,具體自行查詢。 根據民航的相關安全要求,凡帶有鋰電池的電子設備均不可以托運,但符合重量要求,尺寸要求以及電量要求的鋰電池及其設備是可以帶上飛機的。 《鋰電池航空運輸規範》中內含鋰離子電池的設備電池額定能量不應超過100Wh的規定,符合國標GB31241-2014,並通過UN38.3航空運輸認證等國際安全標準,所以可以帶上飛機。但是不能托運,只能隨身攜帶。 掃地機器人     掃地機器人     掃地機器人吸塵器 http://www.greenh3y.com/?p=400 Orignal From: 掃地機器人可以隨身帶上飛機嗎?我想要拿去送給國外的朋友

固體廢棄物的產生原因有甚麼呢?

所謂廢棄物,多指固體廢棄物或含多量固體的廢棄物,被丟棄的廢棄物有可能成為生產的原材料、燃料或消費物品,這是固體廢棄物資源化處理的基礎。 固體廢棄物的產生與排放,伴隨著人類社會還在延續,社會化生產的生產、分配、交換、消費環節都會產生廢棄物;產品生命週期的產品的規劃、設計、原材料採購、製造、包裝、運輸、分配和消費等環節也會產生固體廢棄物,即使是利用固體廢棄物進行逆生產及相應的逆向物流過程也同樣會產生固體廢棄物;土地使用的各功能區,住宅區、商業區、工業區、農業區、市政設施、文化娛樂區、戶外空地等都會產生固體廢棄物;全社會的任何個人、企事業單位、政府組織和社會組織都會產生並排放固體廢棄物。 人類活動產生固體廢棄物的主要原因有: 1)人類認識能力限制,導致自然環境破壞,如水土流失、森林破壞等; 2)參與規劃、設計、製造、運輸、消費、管理等活動的人員的技術水平限制,導致資源浪費,如機加工邊角邊料、不合格產品、不當使用致廢產品等; 3)物質變化規律限制,導致物品、物質功能的演變,如甘蔗渣、爐渣、尾礦等生產過程的副產品、報廢產品、腐變食物等; 4)追求自利、自保、奢侈、虛榮心等理性和非理性心理限制,導致資源浪費,如過度包裝、一次性用品、奢侈品等; 新北垃圾清運 台北垃圾清運 http://www.greenh3y.com/?p=183 Orignal From: 固體廢棄物的產生原因有甚麼呢?

垃圾是怎樣產生的

是指人類在生產、消費、生活和其他活動中產生的固態、半固態廢棄物質(國外的定義則更加廣泛,動物活動產生的廢棄物也屬於此類),主要包括固體顆粒、垃圾、爐渣、污泥、廢棄的製品、破損器皿、殘次品、動物屍體、變質食品、人畜糞便等。有些國家把廢酸、廢鹼、廢油、廢有機溶劑等高濃度的液體也歸為固體廢棄物。 新北垃圾清運     台北垃圾清運 http://www.greenh3y.com/?p=234 Orignal From: 垃圾是怎樣產生的