使用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
輸出

廣告