Python怎么實(shí)現(xiàn)圖像中的對(duì)象計(jì)數(shù)

小億
105
2024-04-29 19:09:53

在Python中,可以使用OpenCV庫(kù)來(lái)實(shí)現(xiàn)圖像中的對(duì)象計(jì)數(shù)。以下是一個(gè)簡(jiǎn)單的示例代碼,用于在圖像中檢測(cè)對(duì)象并計(jì)數(shù)它們:

import cv2

# 讀取圖像
image = cv2.imread('image.jpg')

# 將圖像轉(zhuǎn)換為灰度圖像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 使用預(yù)訓(xùn)練的Haar級(jí)聯(lián)分類器來(lái)檢測(cè)對(duì)象
detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
objects = detector.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)

# 繪制邊界框并計(jì)數(shù)對(duì)象
count = 0
for (x, y, w, h) in objects:
    cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2)
    count += 1

# 顯示結(jié)果
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加載了一個(gè)預(yù)訓(xùn)練的Haar級(jí)聯(lián)分類器來(lái)檢測(cè)對(duì)象(如人臉)。然后使用detectMultiScale方法在圖像中檢測(cè)對(duì)象,并使用cv2.rectangle繪制邊界框。最后,計(jì)算檢測(cè)到的對(duì)象數(shù)量,并在圖像中顯示結(jié)果。

0