Python是一款強大的編程語言,廣泛應用于數據處理和圖形圖像處理領域。在圖像處理領域中,矩形骨架提取是一項非常重要的任務,能夠方便地去除圖像中不必要的背景,提取對象的輪廓和形狀。本文將介紹如何使用Python進行矩形骨架提取。
import cv2 # 讀取圖像 img = cv2.imread('image.jpg', 0) # 二值化 ret, img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) # 提取骨架 size = np.size(img) skel = np.zeros(img.shape, np.uint8) element = cv2.getStructuringElement(cv2.MORPH_CROSS, (3, 3)) while True: eroded = cv2.erode(img, element) temp = cv2.dilate(eroded, element) temp = cv2.subtract(img, temp) skel = cv2.bitwise_or(skel, temp) img = eroded.copy() zeros = size - cv2.countNonZero(img) if zeros == size: break # 顯示結果 cv2.imshow('Original', img) cv2.imshow('Skeleton', skel) cv2.waitKey(0) cv2.destroyAllWindows()
在以上代碼中,我們使用了OpenCV的cv2庫來讀取圖像,并進行二值化處理。接著,我們使用了cv2.getStructuringElement()函數來創建一個交叉結構元素。在while循環中,我們使用cv2.erode()和cv2.dilate()函數來對圖像進行腐蝕和膨脹操作,然后通過cv2.subtract()函數減去原始圖像,得到提取出來的骨架。最后,我們使用cv2.bitwise_or()函數將提取出來的骨架合并起來,并用cv2.imshow()函數將原始圖像和骨架圖像顯示出來。
通過以上代碼,我們可以方便地進行矩形骨架提取的操作,并得到清晰明了的骨架圖像,大大提高了圖像處理的效率。