- OpenCV Python 教程
- OpenCV Python - 首頁
- OpenCV Python - 概述
- OpenCV Python - 環境配置
- OpenCV Python - 讀取影像
- OpenCV Python - 寫入影像
- OpenCV Python - 使用 Matplotlib
- OpenCV Python - 影像屬性
- OpenCV Python - 位運算
- OpenCV Python - 圖形和文字
- OpenCV Python - 滑鼠事件
- OpenCV Python - 新增軌跡條
- OpenCV Python - 縮放和旋轉
- OpenCV Python - 影像閾值
- OpenCV Python - 影像濾波
- OpenCV Python - 邊緣檢測
- OpenCV Python - 直方圖
- OpenCV Python - 顏色空間
- OpenCV Python - 影像變換
- OpenCV Python - 影像輪廓
- OpenCV Python - 模板匹配
- OpenCV Python - 影像金字塔
- OpenCV Python - 影像加法
- OpenCV Python - 影像混合
- OpenCV Python - 傅立葉變換
- OpenCV Python - 捕獲影片
- OpenCV Python - 播放影片
- OpenCV Python - 從影片中提取影像
- OpenCV Python - 從影像生成影片
- OpenCV Python - 人臉檢測
- OpenCV Python - 均值漂移/CamShift
- OpenCV Python - 特徵檢測
- OpenCV Python - 特徵匹配
- OpenCV Python - 數字識別
- OpenCV Python 資源
- OpenCV Python - 快速指南
- OpenCV Python - 資源
- OpenCV Python - 討論
OpenCV Python - 形態學變換
基於影像形狀的簡單操作稱為形態學變換。兩種最常見的變換是 **腐蝕和膨脹**。
腐蝕
腐蝕去除前景物件的邊界。類似於二維卷積,一個核在影像 A 上滑動。如果核下所有畫素均為 1,則保留原始影像中的畫素。
否則將其設為 0,從而導致腐蝕。邊界附近的畫素都會被丟棄。此過程可用於去除白噪聲。
OpenCV 中 **erode()** 函式的命令如下:
cv.erode(src, kernel, dst, anchor, iterations)
引數
OpenCV 中的 **erode()** 函式使用以下引數:
src 和 dst 引數是相同大小的輸入和輸出影像陣列。核是用於腐蝕的結構元素矩陣,例如 3X3 或 5X5。
錨點引數預設為 -1,這意味著錨點元素位於中心。迭代次數是指應用腐蝕的次數。
膨脹
它與腐蝕正好相反。在這裡,如果核下至少有一個畫素為 1,則畫素元素為 1。結果,它增加了影像中的白色區域。
dilate() 函式的命令如下:
cv.dilate(src, kernel, dst, anchor, iterations)
引數
**dilate()** 函式與 erode() 函式具有相同的引數。這兩個函式都可以具有其他可選引數,例如 BorderType 和 borderValue。
BorderType 是影像邊界的列舉型別(CONSTANT、REPLICATE、TRANSPERANT 等)。
borderValue 用於常數邊界。預設值為 0。
示例
下面是一個示例程式,演示了 erode() 和 dilate() 函式的用法:
import cv2 as cv
import numpy as np
img = cv.imread('LinuxLogo.jpg',0)
kernel = np.ones((5,5),np.uint8)
erosion = cv.erode(img,kernel,iterations = 1)
dilation = cv.dilate(img,kernel,iterations = 1)
cv.imshow('Original', img)
cv.imshow('Erosion', erosion)
cv.imshow('Dialation', dilation)
輸出
原始影像
腐蝕
膨脹
廣告