使用OpenCV在Python中進行影像腐蝕和膨脹


在本問題中,我們將瞭解Python如何使用OpenCV模組進行一些形態學操作,例如腐蝕和膨脹。OpenCV庫主要用於計算機視覺,它是開源的,最初由英特爾設計,可在開源BSD許可下免費使用。

要使用OpenCV功能,我們需要使用pip下載它們。

sudo pip3 install opencv-python

什麼是影像腐蝕以及它是如何工作的?

在腐蝕中,它會腐蝕掉前景物件的邊界。它用於去除影像中的小噪點。腐蝕還可以用於分離兩個連線的影像。

  • 一個核是由影像形成的。核是一個矩陣,其階數為奇數,例如3、5、7。

  • 選擇影像的一個畫素。只有當核下的所有畫素都為1時,此畫素才會被選擇為1。否則,它將被腐蝕。

  • 因此,邊界附近的所有畫素都將被丟棄。

  • 因此,前景物件的厚度減小。

什麼是影像膨脹以及它是如何工作的?

在膨脹中,它會增加物件的面積。腐蝕可以去除噪點,但它也會縮小我們的影像,因此,在腐蝕之後,如果執行膨脹,我們可以獲得更好的噪點去除結果。膨脹還可以用於連線物件的某些斷裂部分。

  • 一個核是由影像形成的。核是一個矩陣,其階數為奇數,例如3、5、7。

  • 選擇影像的一個畫素。只有當核下的所有畫素都為1時,此畫素才會被選擇為1。

  • 增加影像中白色區域或前景物件的大小。

示例程式碼

import cv2 
import numpy as np
input_image = cv2.imread('TP_logo.jpg', cv2.IMREAD_COLOR)
 kernel = np.ones((3,3), np.uint8)       # set kernel as 3x3 matrix from numpy
#Create erosion and dilation image from the original image
erosion_image = cv2.erode(input_image, kernel, iterations=1)
dilation_image = cv2.dilate(input_image, kernel, iterations=1)
cv2.imshow('Input', input_image)
cv2.imshow('Erosion', erosion_image)
cv2.imshow('Dilation', dilation_image)
cv2.waitKey(0)       #wait for a key to exit

輸出

Dilation Image

更新於:2019年7月30日

689 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告