形態學去噪python(開運算,閉運算)


形態學梯度調用

import cv2
import numpy as np

# 讀圖
# img = cv2.imread('./output2/2.jpg', 0)
# # 設置核
# kernel = np.ones((5, 5), np.uint8)
# # 形態學梯度調用
# gradient = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel)
#
# # 顯示效果
# cv2.imshow('src', img)
# cv2.imshow('result', gradient)
# cv2.waitKey()

img = cv2.imread('./output1/3.jpg', cv2.IMREAD_UNCHANGED)
# 設置核
kernel = np.ones((3, 3), np.uint8)
# 形態學梯度調用
erosion = cv2.erode(img, kernel)

# 顯示效果
cv2.imshow('src', img)
cv2.imshow('result', erosion)
cv2.waitKey()

開運算

不斷的開運算是沒有關系的

import cv2
import numpy as np

# 讀圖
img = cv2.imread('./output1/2.jpg', 0)
# 設置核
# kernel = np.ones((5, 5), np.uint8)
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(2,2))
# 開運算
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)

# 顯示效果
cv2.imshow('src', img)
cv2.imshow('result', opening)
cv2.waitKey()

# def open_demo(image):
#     # print(image.shape)
#     gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
#     ret , binary = cv.threshold(gray,0,255,cv.THRESH_BINARY|cv.THRESH_OTSU)
#     # kernel = np.ones((5,5),np.uint16)
#     kernel = cv.getStructuringElement(cv.MORPH_RECT,(5,5))
#     dst = cv.morphologyEx(binary,cv.MORPH_OPEN,kernel)
#     cv.imshow("open_demo",dst)
#
# img = cv.imread('./output2/2.jpg', 0)
# open_demo(img)

自實現開運算

主要是通過不同的系數來實現腐蝕和膨脹的結合

import cv2
from PIL import Image
import numpy as np


img = cv2.imread('./output1/0.jpg', cv2.IMREAD_UNCHANGED)
# 設置核
kernel = np.ones((2, 2), np.uint8)
# 形態學梯度調用
erosion = cv2.erode(img, kernel, iterations=2)

kernel = np.ones((2, 2), np.uint8)
dilate = cv2.dilate(erosion, kernel, iterations=1)
# 顯示效果
# v2.imshow('src', img)
# cv2.imshow('result', erosion)
# cv2.imshow('result1', dilate)
cv2.imwrite("./0x.jpg", dilate)
cv2.waitKey()

黑帽

import cv2
import numpy as np
#讀圖
img = cv2.imread('./output2/2.jpg',0)
#設置核
kernel = np.ones((5,5),np.uint8)
#黑帽調用
blackhat = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)
#顯示效果
cv2.imshow('src',img)
cv2.imshow('show',blackhat)
cv2.waitKey()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM