Python是一種非常強大的編程語言,在圖像識別方面有著較為廣泛的應用和研究。在對于道路交通的識別中,紅綠燈的判斷尤為重要。在本文中,我們將通過Python編程實現紅綠燈識別的功能。
import cv2
# 加載圖像
img = cv2.imread('/path/to/image.jpg')
# 預處理圖像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.GaussianBlur(gray, (5, 5), 0)
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, dp=1, minDist=20, param1=50, param2=30, minRadius=5, maxRadius=50)
# 判斷紅綠燈狀態
if circles is not None:
# 檢測出了圓形
if circles.shape[1] == 3:
print('綠燈')
elif circles.shape[1] == 2:
print('黃燈')
elif circles.shape[1] == 1:
print('紅燈')
else:
print('未識別到信號燈')
代碼中,我們首先使用cv2.imread加載圖像,然后通過cv2.cvtColor將圖片轉化為灰度圖,再通過cv2.GaussianBlur對圖像做高斯模糊處理;接下來,在cv2.HoughCircles函數中進行圓的檢測,參數分別為灰度圖像、檢測算法、dp、最小距離、閾值1,閾值2,最小半徑和最大半徑。最后,根據檢測到的圓的數量來判斷紅綠燈狀態:檢測到3個表示綠燈、檢測到2個表示黃燈、檢測到1個表示紅燈,未檢測到則輸出“未識別到信號燈”。