參考的一些文章以及論文我都會給大家分享出來 —— 鏈接就貼在原文,論文我上傳到資源中去,大家可以免費下載學習,如果當天資源區找不到論文,那就等等,可能正在審核,審核完后就可以下載了,大家一起學習,一起進步!加油!!
目錄
前言
(1)基本概念
(2)讀取影像資訊
1. 影像腐蝕
(1)基本概念
(2)代碼實作
2. 影像膨脹
(1)基本概念
(2)代碼實作
3. 影像開運算
(1)基本概念
(2)代碼實作
4. 影像閉運算
(1)基本概念
(2)代碼實作
5. 影像梯度運算
(1)基本概念
(2)代碼實作
6. 影像頂帽運算
(1)基本概念
(2)代碼實作
7. 影像底帽運算
(1)基本概念
(2)代碼實作
結束語
前言
(1)基本概念
此處參考:影像處理中常見的形態學方法
形態學影像處理(簡稱形態學)是指一系列處理影像形狀特征的影像處理技術,其基本思想是利用一些特殊的結構元來測量或提取影像中相應的形狀和特征,以便進一步進行影像分析和處理,
(2)讀取影像資訊
"""
Author:XiaoMa
date:2021/11/2
"""
import cv2
import numpy as np
img0 = cv2.imread("E:\From Zhihu\For the desk\cveleven.jpg")
img1 = cv2.resize(img0, dsize = None, fx = 0.5, fy = 0.5)
img2 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
h, w = img1.shape[:2]
print(h, w)
cv2.namedWindow("W0")
cv2.imshow("W0", img1)
cv2.waitKey(delay = 0)
cv2.namedWindow("W1")
cv2.imshow("W1", img2)
cv2.waitKey(delay = 0)
經典操作,不必多說了,得到的影像資訊如下:


350 560
除了讀取影像資訊,我們還需要將影像改為二值影像,因為影像形態學一般是對二值影像進行處理分析的,此處可以參考:影像閾值處理
#影像二值化
ret, img3 = cv2.threshold(img2, 135, 255, cv2.THRESH_BINARY)
cv2.namedWindow("W2")
cv2.imshow("W2", img3)
1. 影像腐蝕
(1)基本概念
前面我們將影像轉化為二值影像,則顯示的影像只有黑白兩種區別,影像腐蝕操作就是擴大影像中的黑色部分,使得影像中的白色減少,即白色部分被腐蝕,
(2)代碼實作
此處參考:OpenCV 官網
k = np.ones((5, 5), np.uint8) #創建內核
#腐蝕
img4 = cv2.erode(img3, k, iterations = 1)
cv2.namedWindow("W3")
cv2.imshow("W3", img4)
cv2.waitKey(delay = 0)

2. 影像膨脹
(1)基本概念
膨脹是和腐蝕相對的一種概念,所以腐蝕減少了二值影像中的白色部分,那么膨脹肯定就是擴大了影像中的白色部分,
(2)代碼實作
#膨脹
img5 = cv2.dilate(img3, k, iterations = 1)
cv2.namedWindow("W4")
cv2.imshow("W4", img5)
cv2.waitKey(delay = 0)
3. 影像開運算
(1)基本概念
開,按照字面意思就是打開嘛,所以對于影像的先腐蝕,后膨脹操作就是影像的開運算了,
(2)代碼實作
#開運算
img6 = cv2.morphologyEx(img3, cv2.MORPH_OPEN, k)
cv2.namedWindow("W5")
cv2.imshow("W5", img6)
cv2.waitKey(delay = 0)
4. 影像閉運算
(1)基本概念
對影像的先膨脹,后腐蝕操作
(2)代碼實作
#閉運算
img7 = cv2.morphologyEx(img3, cv2.MORPH_CLOSE, k)
cv2.namedWindow("W6")
cv2.imshow("W6", img7)
cv2.waitKey(delay = 0)
5. 影像梯度運算
(1)基本概念
通過影像梯度運算,顯示了影像腐蝕和膨脹之間的部分,類似于勾勒出了一個輪廓,
(2)代碼實作
#梯度運算
img8 = cv2.morphologyEx(img3, cv2.MORPH_GRADIENT, k)
cv2.namedWindow("W7")
cv2.imshow("W7", img8)
cv2.waitKey(delay = 0)
6. 影像頂帽運算
(1)基本概念
通過影像頂帽運算,顯示的是原影像與開運算得到的影像之間的區別,
(2)代碼實作
#頂帽運算
img9 = cv2.morphologyEx(img3, cv2.MORPH_TOPHAT, k)
cv2.namedWindow("W8")
cv2.imshow("W8", img9)
cv2.waitKey(delay = 0)

7. 影像底帽運算
(1)基本概念
通過影像底帽運算,顯示的是原影像與閉運算得到的影像之間的區別,
(2)代碼實作
#底帽運算
img10 = cv2.morphologyEx(img3, cv2.MORPH_BLACKHAT, k)
cv2.namedWindow("W9")
cv2.imshow("W9", img10)
cv2.waitKey(delay = 0)

結束語
這篇文章主要介紹了影像形態學處理中的一些基本操作方法,包括影像的腐蝕、膨脹、開運算、閉運算、梯度運算、頂帽運算以及底帽運算這幾部分,參考的文章鏈接都粘貼在了原文中,需要加強學習、深入了解的小伙伴可以點進去查看,影像形態學處理的主要目的是得到影像的形狀資訊,一般在一些研究動植物行為狀態等領域使用的較廣,大家感興趣可以多了解,多學習,加油!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/345595.html
標籤:其他
上一篇:MATLAB實作影像的放大和縮放
