在Python中,可以使用OpenCV庫來實現圖像中的對象計數。以下是一個簡單的示例代碼,用于在圖像中檢測對象并計數它們:
import cv2
# 讀取圖像
image = cv2.imread('image.jpg')
# 將圖像轉換為灰度圖像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 使用預訓練的Haar級聯分類器來檢測對象
detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
objects = detector.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)
# 繪制邊界框并計數對象
count = 0
for (x, y, w, h) in objects:
cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2)
count += 1
# 顯示結果
cv2.putText(image, f'Objects Count: {count}', (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)
cv2.imshow('Detected Objects', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上面的代碼中,首先使用cv2.CascadeClassifier
加載了一個預訓練的Haar級聯分類器來檢測對象(如人臉)。然后使用detectMultiScale
方法在圖像中檢測對象,并使用cv2.rectangle
繪制邊界框。最后,計算檢測到的對象數量,并在圖像中顯示結果。