亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python+OpenCV之形態學的操作方法是什么

發布時間:2023-03-13 17:51:29 來源:億速云 閱讀:125 作者:iii 欄目:開發技術

這篇文章主要介紹“Python+OpenCV之形態學的操作方法是什么”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Python+OpenCV之形態學的操作方法是什么”文章能幫助大家解決問題。

一、 腐蝕與膨脹

1.1 腐蝕操作

import cv2
import numpy as np

img = cv2.imread('DataPreprocessing/img/dige.png')

cv2.imshow("img", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

dige.png原圖1展示(注: 沒有原圖的可以截圖下來保存本地。

Python+OpenCV之形態學的操作方法是什么

腐蝕1輪次之后~ (iterations = 1)

kernel = np.ones((3, 3), np.uint8)
erosion = cv2.erode(img, kernel, iterations=1)

cv2.imshow('erosion', erosion)
cv2.waitKey(0)
cv2.destroyAllWindows()

腐蝕結果展示圖2:

Python+OpenCV之形態學的操作方法是什么

腐蝕圓多次的效果,以及腐蝕原理

pie = cv2.imread('DataPreprocessing/img/pie.png')

cv2.imshow('pie', pie)
cv2.waitKey(0)
cv2.destroyAllWindows()

pie.png原圖3:

Python+OpenCV之形態學的操作方法是什么

腐蝕原理, 其中濾波器的大小越大腐蝕的程度越大 圖4:

Python+OpenCV之形態學的操作方法是什么

kernel = np.ones((30, 30), np.uint8)
erosion_1 = cv2.erode(pie, kernel, iterations=1)
erosion_2 = cv2.erode(pie, kernel, iterations=2)
erosion_3 = cv2.erode(pie, kernel, iterations=3)
res = np.hstack((erosion_1, erosion_2, erosion_3))
cv2.imshow('res', res)
cv2.waitKey(0)
cv2.destroyAllWindows()

圓腐蝕三次結果展示圖5:

Python+OpenCV之形態學的操作方法是什么

1.2 膨脹操作

kernel = np.ones((3, 3), np.uint8)
dige_dilate = erosion
dige_dilate = cv2.dilate(erosion, kernel, iterations=1)

cv2.imshow('dilate', dige_dilate)
cv2.waitKey(0)
cv2.destroyAllWindows()

膨脹之前圖2,發現線條變粗,跟原圖對比的線條相差無幾,但是沒了那些長須裝的噪音,圖6:

Python+OpenCV之形態學的操作方法是什么

膨脹圓多次的效果,以及膨脹原理與腐蝕相反,有白色點的濾波器則濾波器內數據全變為白色。

pie = cv2.imread('DataPreprocessing/img/pie.png')

kernel = np.ones((30, 30), np.uint8)
dilate_1 = cv2.dilate(pie, kernel, iterations=1)
dilate_2 = cv2.dilate(pie, kernel, iterations=2)
dilate_3 = cv2.dilate(pie, kernel, iterations=3)
res = np.hstack((dilate_1, dilate_2, dilate_3))
cv2.imshow('res', res)
cv2.waitKey(0)
cv2.destroyAllWindows()

膨脹圓3次的結果展示,圖7:

Python+OpenCV之形態學的操作方法是什么

二、 開運算與閉運算

2.1 開運算

# 開:先腐蝕,再膨脹
img = cv2.imread('DataPreprocessing/img/dige.png')

kernel = np.ones((5, 5), np.uint8)
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)

cv2.imshow('opening', opening)
cv2.waitKey(0)
cv2.destroyAllWindows()

將原圖1,先腐蝕,再膨脹,得到開運算結果圖8:

Python+OpenCV之形態學的操作方法是什么

2.2 閉運算

# 閉:先膨脹,再腐蝕
img = cv2.imread('DataPreprocessing/img/dige.png')

kernel = np.ones((5, 5), np.uint8)
closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

cv2.imshow('closing', closing)
cv2.waitKey(0)
cv2.destroyAllWindows()

將原圖1,先膨脹,再腐蝕,得到開運算結果圖9:

Python+OpenCV之形態學的操作方法是什么

三、梯度運算

拿原圖3的圓,做5次膨脹,5次腐蝕,相減得到其輪廓。

# 梯度=膨脹-腐蝕
pie = cv2.imread('DataPreprocessing/img/pie.png')
kernel = np.ones((7, 7), np.uint8)
dilate = cv2.dilate(pie, kernel, iterations=5)
erosion = cv2.erode(pie, kernel, iterations=5)

res = np.hstack((dilate, erosion))

cv2.imshow('res', res)
cv2.waitKey(0)
cv2.destroyAllWindows()

gradient = cv2.morphologyEx(pie, cv2.MORPH_GRADIENT, kernel)

cv2.imshow('gradient', gradient)
cv2.waitKey(0)
cv2.destroyAllWindows()

得到梯度運算結果圖10:

Python+OpenCV之形態學的操作方法是什么

Python+OpenCV之形態學的操作方法是什么

四、禮帽與黑帽

4.1 禮帽

禮帽 = 原始輸入-開運算結果

# 禮帽
img = cv2.imread('DataPreprocessing/img/dige.png')
tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)
cv2.imshow('tophat', tophat)
cv2.waitKey(0)
cv2.destroyAllWindows()

得到禮帽結果圖11:

Python+OpenCV之形態學的操作方法是什么

4.2 黑帽

黑帽 = 閉運算-原始輸入

# 黑帽
img = cv2.imread('DataPreprocessing/img/dige.png')
blackhat = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)
cv2.imshow('blackhat ', blackhat)
cv2.waitKey(0)
cv2.destroyAllWindows()

得到禮帽結果圖12:

Python+OpenCV之形態學的操作方法是什么

關于“Python+OpenCV之形態學的操作方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大足县| 彭州市| 建德市| 南通市| 梁平县| 福建省| 含山县| 潜江市| 松阳县| 阿拉善右旗| 眉山市| 绍兴县| 泊头市| 汶上县| 克拉玛依市| 长寿区| 怀安县| 新昌县| 襄城县| 高陵县| 客服| 新密市| 镇安县| 怀仁县| 讷河市| 蓝田县| 三穗县| 阿图什市| 格尔木市| 巧家县| 会泽县| 桂东县| 柳州市| 扬中市| 克拉玛依市| 琼结县| 新余市| SHOW| 桂林市| 临海市| 武鸣县|