openCV程式設計基礎22 腐蝕與膨脹

2021-09-26 23:30:32 字數 1981 閱讀 3546

主要功能:

對彩色/灰度/二值影象進行腐蝕與膨脹運算

腐蝕的作用

物件大小減少乙個畫素(3*3)

平滑物件邊緣

弱化或者分割影象之間的半島型連線

膨脹的作用

物件大小增加乙個畫素(3*3)

平滑物件邊緣

減少或者填充物件之間的距離

import cv2 as cv

import numpy as np

# 腐蝕

def erode_demo(image):

print(image.shape)

gray = cv.cvtcolor(image, cv.color_bgr2gray) #影象轉灰度圖

# 將灰度圖轉為二值圖 ret是閾值 binary是二值圖

ret, binary = cv.threshold(gray, 0 ,255, cv.thresh_binary | cv.thresh_otsu)

cv.imshow('binary', binary) # 顯示二值影象

kernel = cv.getstructuringelement(cv.morph_rect, (3, 3)) # 定義覆蓋區域的大小

dst = cv.erode(binary, kernel) # 腐蝕操作

cv.imshow("erode_demo", dst)

# 膨脹

def expand_demo(image):

print(image.shape)

gray = cv.cvtcolor(image, cv.color_bgr2gray) #影象轉灰度圖

# 將灰度圖轉為二值圖 ret是閾值 binary是二值圖

ret, binary = cv.threshold(gray, 0 ,255, cv.thresh_binary | cv.thresh_otsu)

cv.imshow('binary', binary) # 顯示二值影象

kernel = cv.getstructuringelement(cv.morph_rect, (3, 3)) # 定義覆蓋區域的大小

dst = cv.dilate(binary, kernel) # 膨脹操作

cv.imshow("expand_demo", dst)

# 對彩色影象膨脹腐蝕

def color_demo(image):

kernel = cv.getstructuringelement(cv.morph_rect, (3, 3)) # 定義覆蓋區域的大小

dst1 = cv.erode(image, kernel) # 腐蝕操作

dst2 = cv.dilate(image, kernel) # 膨脹操作

輸出結果:

Opencv 膨脹與腐蝕

簡而言之 一組基於形狀處理影象的操作。形態操作將結構元素應用於輸入影象並生成輸出影象。最基本的形態作用是 侵蝕和擴張。它們有廣泛的用途,即 消除噪音 隔離單個元素並連線影象中的不同元素。查詢影象中的強度凸點或孔 我們將簡要解釋膨脹和侵蝕,使用以下影象作為示例 該操作包括將影象與某些核心 b 進行卷積...

OpenCV 膨脹與腐蝕

include include include using namespace cv using namespace std int element size 3 int max size 21 mat src,dst void callback demo int,void int main int...

Open Cv 膨脹與腐蝕

影象形態學1 膨脹 dilate 與腐蝕 是灰度與二值影象處理中的重要手段 數學集合論和拓撲集合的基礎上發展起來 膨脹 dilate 與腐蝕 erode 最值濾波 3 3模板?膨脹 3 3模板中的最大值替換中心畫素 腐蝕 3 3模板中的最小值替換中心畫素 膨脹的作用 物件大小增加乙個畫素 3x3 平...