import cv2# 加載圖像
image = cv2.imread('4.png')# 使用 Canny 邊緣檢測算法提取邊緣特征
edges = cv2.Canny(image, 100, 200)# 顯示邊緣特征
cv2.imshow('Edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()
?
代碼解析:
- 導入 OpenCV 庫:
import cv2
- 加載圖像:
image = cv2.imread('4.png')
這行代碼使用?cv2.imread()
?函數加載名為 "4.png" 的圖像文件。
- 使用 Canny 邊緣檢測算法:
edges = cv2.Canny(image, 100, 200)
cv2.Canny()
?函數是 OpenCV 中常用的邊緣檢測算法。它接受兩個參數:
image
: 要進行邊緣檢測的圖像。threshold1
: 低閾值。threshold2
: 高閾值。
Canny 算法使用這兩個閾值來過濾邊緣特征。低于低閾值的邊緣特征會被忽略,高于高閾值的邊緣特征會被保留。介于兩個閾值之間的邊緣特征則根據其連接情況來判斷是否保留。
- 顯示邊緣特征:
cv2.imshow('Edges', edges)cv2.waitKey(0)cv2.destroyAllWindows()
cv2.imshow()
?函數用于顯示圖像。第一個參數是窗口的名稱,第二個參數是圖像數據。cv2.waitKey(0)
?函數用于等待用戶按下任何鍵。cv2.destroyAllWindows()
?函數用于關閉所有窗口。
代碼運行結果:
運行這段代碼后,會彈出一個窗口,顯示 "4.png" 圖像的邊緣特征。
一些建議:
- 你可以調整?
threshold1
?和?threshold2
?的值來控制邊緣檢測的敏感度。 - 如果圖像中存在噪聲,可以使用?
cv2.GaussianBlur()
?函數對圖像進行模糊處理,以減少噪聲的影響。 - 你可以使用?
cv2.findContours()
?函數來查找圖像中的輪廓,并使用?cv2.drawContours()
?函數在圖像上繪制輪廓。