隨著旅游業的發展,更多人開始關注景點的地標建筑。然而,為了把自己的旅行經歷分享給朋友或者記憶日記本上記錄下來,一張圖片是遠遠不夠的。Python提供了一個簡單而有效的方法來畫出一個地標的輪廓圖。
import cv2 import numpy as np # 讀取地標圖片 img = cv2.imread('landmark.jpg') # 灰度轉換 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 邊緣檢測 edge = cv2.Canny(gray, 100, 300) # 圖像膨脹 kernel = np.ones((5,5), np.uint8) dilate = cv2.dilate(edge, kernel, iterations=2) # 尋找輪廓 contours, hierarchy = cv2.findContours(dilate, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) # 繪制輪廓 res = np.zeros_like(img) for contour in contours: cv2.drawContours(res, contour, -1, (0,255,0), 3) # 顯示結果 cv2.imshow('landmark contour', res) cv2.waitKey(0)
首先,我們需要讀取一張地標圖片。然后,我們將其轉換為灰度圖像,以便在后續的圖像處理中使用。接下來,我們可以使用邊緣檢測算法(這里是Canny邊緣檢測)來檢測輪廓。我們可以對邊緣圖像應用圖像膨脹操作,以使輪廓線更加清晰。然后,我們使用findContours函數找到所有的輪廓。最后,我們可以使用drawContours函數將輪廓繪制在一張新的圖像上,然后顯示結果。
使用Python代碼繪制地標的輪廓圖不僅簡單快捷,而且對于那些對圖像處理有基本了解的人來說,也非常有趣和有啟發性。